This tutorial is part of a Collection: Braynzar Soft Tutorials
7596
views
02. DirectX 10 - Braynzar Soft Tutorials [Collection]
This is a collection of Braynzar Softs DirectX 10 tutorials.
01. Setting Up in VS 2010
0
rating
1541
views
This is just a quick lesson on how to set up your environment in MS Visual Studio 2010.
02. Creating a Window
0
rating
1745
views
Before we get started with DirectX, we first need to create the window which we will draw our graphics on.
03. Initializing Direct3D
0
rating
1965
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
0
rating
1652
views
We'll learn how to display simple font with Direct3D's ID3DX10Font Interface!
05. Begin Drawing
0
rating
1769
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!
0
rating
1386
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
0
rating
1453
views
Index buffers are used to tell direct3d how to put the vertices together to form primitives.
08. Depth Buffer
0
rating
1413
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
0
rating
1352
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
0
rating
1422
views
Heres a more exciting lesson on transformations! We will show you how to do translating, scaling, and rotating!
11. Render States
0
rating
1425
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
0
rating
1423
views
Here we will learn how to add textures to our objects. This lesson modifies the Transformation lesson code.
13. Blending
0
rating
1962
views
In this lesson, we will go over how to create a simple transparent cube in DirectX.
14. Pixel Clipping
0
rating
1352
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
0
rating
1755
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
0
rating
1671
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
0
rating
3256
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
0
rating
2704
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)
0
rating
4904
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
0
rating
3276
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
0
rating
1595
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)
0
rating
1397
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
0
rating
3948
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
0
rating
7448
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
0
rating
1580
views
Here is a very short short lesson on how to update our camera function to be a free look camera
26. Heightmap (Terrain)
0
rating
2354
views
This lesson will teach you how to load a greyscale bitmap as a heightmap to render some terrain.
Sign in to comment