This tutorial is part of a Collection: Braynzar Soft Tutorials
rate up
0
rate down
2552
views
bookmark
02. DirectX 10 - Braynzar Soft Tutorials [Collection]

This is a collection of Braynzar Softs DirectX 10 tutorials.

There are no files for this tutorial
01. Setting Up in VS 2010
01. Setting Up in VS 2010
0
rating
443
views
This is just a quick lesson on how to set up your environment in MS Visual Studio 2010.
02. Creating a Window
02. Creating a Window
0
rating
576
views
Before we get started with DirectX, we first need to create the window which we will draw our graphics on.
03. Initializing Direct3D
03. Initializing Direct3D
0
rating
609
views
This is where we finally initialize direct3d. All lessons after this will build off of this base code. The final product of this lessons will be a screen which changes colors! Lets get started!
04. Simple Font
04. Simple Font
0
rating
547
views
We'll learn how to display simple font with Direct3D's ID3DX10Font Interface!
05. Begin Drawing
05. Begin Drawing
0
rating
485
views
We finally get to the fun part of drawing geometry! I know it doesn't look like much, but this is a big step and very important to the future of our 3d games. Almost EVERYTHING you will draw on the screen consists of triangles, lines, points, and squares. In this lesson i will cover the pipeline stages as well, some only breifly as we will cover them in more detail later on. Also, we have an addition of a new file called an effect file. We need this file to draw anything on the screen. I will breifly go over it in this lessons, but later we can talk more about it.
06. Color!
06. Color!
0
rating
402
views
Here is a short lesson on what we need to do to get some color in our scene. This lesson builds off of the last one, begin drawing.
07. Index Buffer
07. Index Buffer
0
rating
379
views
Index buffers are used to tell direct3d how to put the vertices together to form primitives.
08. Depth Buffer
08. Depth Buffer
0
rating
387
views
Here we will learn how to bind a depth buffer to our render target. A depth buffer tests each pixel on the back buffer before presenting it to the screen. If there is a primitive in front of another primitive, then the primitive in front will get its pixels drawn, and the pixels in the primitive behind that are covered up by the pixels in the primitive in front will not get drawn.
09. World, View, and Local Space
09. World, View, and Local Space
0
rating
399
views
We get to learn about the World, View and Local spaces in Direct3D, and how to initialize them, set them, and convert them!
10. Transformations
10. Transformations
0
rating
409
views
Heres a more exciting lesson on transformations! We will show you how to do translating, scaling, and rotating!
11. Render States
11. Render States
0
rating
370
views
I want to cover the Render states before we start doing anything else, so here we will learn about the different render states and how to use them! The outcome of this lesson will be a nice little blue wireframe grid!
12. Textures
12. Textures
0
rating
371
views
Here we will learn how to add textures to our objects. This lesson modifies the Transformation lesson code.
13. Blending
13. Blending
0
rating
445
views
In this lesson, we will go over how to create a simple transparent cube in DirectX.
14. Pixel Clipping
14. Pixel Clipping
0
rating
361
views
Here is a very short lessons on how to create a wire box type thing using the HLSL clip() function in an effect file.
15. Simple Lighting
15. Simple Lighting
0
rating
405
views
To make our scenes more realistic and fun, we can use a technique called lighting. In this lesson, we will learn about the different kinds of light, and the math that is involved. At the end of the lesson, you will have learned how to impliment a simple lighting technique called Directional Lighting. Remember that the fixed function pipeline was taken out of directx 10, and structures and types used to impliment lighting in directx 9 were part of the fixed function pipeline. What this means, is lighting must now be done manualy in directx 10, making it a bit more tedious, but also giving you much more control over it.
16. Direct Input
16. Direct Input
0
rating
429
views
In this lesson, we will learn how to use Direct Input to get keyboard and mouse information from the user. This is a pretty short lesson that builds off the last lesson, Simple Lighting.
17. Loading 3D Models
17. Loading 3D Models
0
rating
681
views
In this lesson, we will learn how to use the ID3D10Mesh interface to store a 3d model file exported from a 3d modeler such as 3D Studio Max. Since you can find free loaders for almost any 3d model format, we will load a custom 3d model format exported from 3ds max, just to show you how it is done. We will be learning about and using the ID3D10Mesh interface, which we will use to store our 3d model into. This lesson builds off the last lesson, Direct Input.
18. First Person Camera
18. First Person Camera
0
rating
735
views
Here we will make a simple functional first person camera. We will create a function that updates the camera, and we will call that function after we test for input from the user. Of course, it would be much better coding practice to use a camera class, but I try to keep things as explicit as possible, and use functions as often as possible. This lesson builds off the Direct Input lesson, but its "blended" with the render states lesson. Since we have already covered a wireframe grid, I will not explain that stuff in this lesson, only the new code.
19. Skybox (Cube Mapping)
19. Skybox (Cube Mapping)
0
rating
864
views
This lesson will show you how to create a skybox through a technique called cube mapping. We will learn how to create a cube texture using the directx texture tool.
20. Picking
20. Picking
0
rating
432
views
Here we will build off the previous lesson, the skybox. We will learn how to translate a point on the screen (mouse position), to a ray which we will then find out whether it intersects with an object on the screen (if the object was "picked") or not. We will also learn how to go fullscreen!
21. High Resolution Timer
21. High Resolution Timer
0
rating
435
views
We will learn how to create a high resolution timer, which we will use to find and display the frame rate (frames per second). We will also use this timer to make sure the speed of our camera does not fluxuate with the frames per second, keeping it's speed nice and smooth. You can also use this timer to keep animations smooth.
22. Bounding Volumes (Box)
22. Bounding Volumes (Box)
0
rating
435
views
As games can have quite complex and detailed models, containing thousands of triangles, checking every triangle in the entire scene for an intersection EVERY frame would slow the game down considerably. In this lesson we will learn a how to impliment a technique to cut down the amount of triangles we test every frame for an intersection by creating a bounding box for each of our models. That way, we only test the few triangles in each models bounding box for an intersection, and if there was an intersection, we can test the actual model for an intersection. This will be a huge gain in performance later when you have thousands of models to test for intersections.
23. Bounding Sphere Collision Detection
23. Bounding Sphere Collision Detection
0
rating
463
views
Sphere-Sphere Collision Detection: Most games wouldn't be much without collision detection. In this lesson, which builds off the last lesson, we will learn how to create a binding sphere from the binding box we created in the last one. Then we will use this binding sphere to test if the objects on the screen are colliding. If they are, we will move the object that is being collided with, depending on the angle at which they are colliding at. We will only learn how to test binding spheres for collisions in this lesson, but my next lesson will be aimed at Triangle-Triangle collision detection, which of course would be much much much more accurate for the average model than using a binding sphere.
24. Triangle to Triangle Collision Detection
24. Triangle to Triangle Collision Detection
0
rating
535
views
This lesson builds directly off the last lesson, Bounding Sphere Collision Detection. In this lesson, we will learn how to impliment a very accurate collision detection model, Triangle to Triangle. Although the idea is pretty simple, the math can get a little complex, so you might want to brush up on your math skills. I will try to explain as best as I can though. The only new things in this lesson are two new functions. One function for detecting a triangle to triangle collision (which calls the second function to complete the detection) and another function to test whether a point is inside a triangle. I did this so you could easily put these function into your own project, and/or use the point in triangle function to test for accurate picking, when picking a 3d model.
25. Free-Look Camera
25. Free-Look Camera
0
rating
572
views
Here is a very short short lesson on how to update our camera function to be a free look camera
26. Heightmap (Terrain)
26. Heightmap (Terrain)
0
rating
598
views
This lesson will teach you how to load a greyscale bitmap as a heightmap to render some terrain.