🎉 Celebrating 25 Years of GameDev.net! 🎉
Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!
![Windows 8.1 and SlimDX](https://uploads.gamedev.net/monthly_2018_05/imported-photo-212813.thumb.jpeg.07d31f2e3d4a630b82c96e79fcf21c12.jpeg)
[font=Arial]
This weekend, I updated my home workstation from Windows 8 to Windows 8.1. Just before doing this, I had done a bunch of work on my SSAO implementation, which I was intending to write up here once I got back from a visit home to do some deer hunting and help my parents get their firewo…
This weekend, I updated my home workstation from Windows 8 to Windows 8.1. Just before doing this, I had done a bunch of work on my SSAO implementation, which I was intending to write up here once I got back from a visit home to do some deer hunting and help my parents get their firewo…
![Shadow Mapping with SlimDX and DirectX 11](http://lh6.ggpht.com/-oPm7ioVRB7s/Um8T1C1WgMI/AAAAAAAADY4/Qra73d9uL50/image_thumb%25255B1%25255D.png?imgmax=800)
[font=Arial]
Shadow mapping is a technique to cast shadows from arbitrary objects onto arbitrary 3D surfaces. You may recall that we implemented planar shadows earlier using the stencil buffer. Although this technique worked well for rendering shadows onto planar (flat) surfaces, this technique do…
Shadow mapping is a technique to cast shadows from arbitrary objects onto arbitrary 3D surfaces. You may recall that we implemented planar shadows earlier using the stencil buffer. Although this technique worked well for rendering shadows onto planar (flat) surfaces, this technique do…
![Expanding our BasicModel Class](http://lh4.ggpht.com/-KKqYyie9AR4/Ums5jdlXVdI/AAAAAAAADV0/VLQMfoiBns0/image_thumb%25255B1%25255D.png?imgmax=800)
[font=Arial]
I had promised that we would move on to discussing shadows, using the shadow mapping technique. However, when I got back into the code I had written for that example, I realized that I was really sick of handling all of the geometry for our stock columns & skull scene. So I decide…
I had promised that we would move on to discussing shadows, using the shadow mapping technique. However, when I got back into the code I had written for that example, I realized that I was really sick of handling all of the geometry for our stock columns & skull scene. So I decide…
![Particle Systems using Stream-Out in DirectX 11 and SlimDX](http://lh4.ggpht.com/-MbwnhX9dfBM/UmU3VGuKd2I/AAAAAAAADVc/8VL2NyS6KPU/image_thumb%25255B1%25255D.png?imgmax=800)
[font=Arial]
Particle systems are a technique commonly used to simulate chaotic phenomena, which are not easy to render using normal polygons. Some common examples include fire, smoke, rain, snow, or sparks. The particle system implementation that we are going to develop will be general enough to …
Particle systems are a technique commonly used to simulate chaotic phenomena, which are not easy to render using normal polygons. Some common examples include fire, smoke, rain, snow, or sparks. The particle system implementation that we are going to develop will be general enough to …
![Skinned Models in DirectX 11 with SlimDX and Assimp.Net](http://lh4.ggpht.com/-J5w0vmSa_kQ/Ul2bb_5HJVI/AAAAAAAADU0/AR2E4xkx8PA/skinnedModels_thumb%25255B1%25255D.png?imgmax=800)
[font=Arial]
Sorry for the hiatus, I've been very busy with work and life the last couple weeks. Today, we're going to look at loading meshes with skeletal animations in DirectX 11, using SlimDX and Assimp.Net in C#. This will probably be our most complicated example yet, so bear with me. This ex…
Sorry for the hiatus, I've been very busy with work and life the last couple weeks. Today, we're going to look at loading meshes with skeletal animations in DirectX 11, using SlimDX and Assimp.Net in C#. This will probably be our most complicated example yet, so bear with me. This ex…
![Loading 3D Models using Assimp.Net and SlimDX](http://lh4.ggpht.com/-GYS5QhaWn9A/Uk2Dtfc9QMI/AAAAAAAADUA/5IoOXCE5x-s/image_thumb%25255B1%25255D.png?imgmax=800)
[font=Arial]So far, we have either worked with procedurally generated meshes, like our boxes and cylinders, or loaded very simple text-based mesh formats. For any kind of real application, however, we will need to have the capability to load meshes created by artists using 3D modeling and animation…
![Generating Random Terrains using Perlin Noise](http://lh4.ggpht.com/-wjgseEP9Q3A/Ukra_XCsFiI/AAAAAAAADTU/45nrXsTIdh8/random1_thumb%25255B1%25255D.png?imgmax=800)
[font=Arial]
Previously, we have used our Terrain class solely with heightmaps that we have loaded from a file. Now, we are going to extend our Terrain class to generate random heightmaps as well, which will add variety to our examples. We will be using Perlin Noise, which is a method of generatin…
Previously, we have used our Terrain class solely with heightmaps that we have loaded from a file. Now, we are going to extend our Terrain class to generate random heightmaps as well, which will add variety to our examples. We will be using Perlin Noise, which is a method of generatin…
![Drawing a Loading Screen with Direct2D in SlimDX](http://lh5.ggpht.com/-P8PlhRpe8b8/Ukms1POrCII/AAAAAAAADS8/sFflp8ZP1kI/progressBar_thumb%25255B1%25255D.png?imgmax=800)
[font=Arial]
I know that I have been saying that I will cover random terrain generation in my next post for several posts now, and if all goes well, that post will be published today or tomorrow. First, though, we will talk about Direct2D, and using it to draw a loading screen, which we will displa…
I know that I have been saying that I will cover random terrain generation in my next post for several posts now, and if all goes well, that post will be published today or tomorrow. First, though, we will talk about Direct2D, and using it to draw a loading screen, which we will displa…
![Terrain LOD for DirectX 10 Graphics Cards, using SlimDX and Direct3D 11](http://lh5.ggpht.com/-cZynwlIm_8I/UkWn2gmNbLI/AAAAAAAADP4/DJAIj16-oac/dx10-terrain_thumb%25255B1%25255D.png?imgmax=800)
[font=Arial]
Last time, we discussed terrain rendering, using the tessellation stages of the GPU to render the terrain mesh with distance-based LOD. That method required a DX11-compliant graphics card, since the Hull and Domain shader stages are new to Direct3D11. According to the latest Steam Har…
Last time, we discussed terrain rendering, using the tessellation stages of the GPU to render the terrain mesh with distance-based LOD. That method required a DX11-compliant graphics card, since the Hull and Domain shader stages are new to Direct3D11. According to the latest Steam Har…
![Dynamic Terrain Rendering with SlimDX and Direct3D 11](http://lh5.ggpht.com/-3JFu9EjGvGA/Uj4w6IoWmDI/AAAAAAAADNc/eeRGLY-5pUk/image_thumb%25255B3%25255D.png?imgmax=800)
[font=Arial]
A common task for strategy and other games with an outdoor setting is the rendering of the terrain for the level. Probably the most convenient way to model a terrain is to create a triangular grid, and then perturb the y-coordinates of the vertices to match the desired elevations. Thi…
A common task for strategy and other games with an outdoor setting is the rendering of the terrain for the level. Probably the most convenient way to model a terrain is to create a triangular grid, and then perturb the y-coordinates of the vertices to match the desired elevations. Thi…
![Diving into the Tessellation Stages of Direct3D 11](https://uploads.gamedev.net/monthly_2018_05/imported-photo-212813.thumb.jpeg.07d31f2e3d4a630b82c96e79fcf21c12.jpeg)
[font=Arial]
In our last example on normal mapping and displacement mapping, we made use of the new Direct3D 11 tessellation stages when implementing our displacement mapping effect. For the purposes of the example, we did not examine too closely the concepts involved in making use of these new fea…
In our last example on normal mapping and displacement mapping, we made use of the new Direct3D 11 tessellation stages when implementing our displacement mapping effect. For the purposes of the example, we did not examine too closely the concepts involved in making use of these new fea…
![Bump and Displacement Mapping with SlimDX and Direct3D 11](http://lh4.ggpht.com/-gPazCXYaGcs/Ujbe7cscW2I/AAAAAAAADLA/AUcfzo7PKzU/image_thumb1.png?imgmax=800)
[font=Arial]Today, we are going to cover a couple of additional techniques that we can use to achieve more realistic lighting in our 3D scenes. Going back to our first discussion of [/font]lighting[font=Arial]
, recall that thus far, we have been using per-pixel, [/font]Phong lighting[font=Arial]
.…
![Dynamic Environmental Reflections in Direct3D 11 and C#](http://lh5.ggpht.com/-GBzUN907tdQ/UjCCDWujhII/AAAAAAAADKo/kZbzYOb3p5I/image_thumb%252525255B3%252525255D%25255B1%25255D_thumb%25255B1%25255D.png?imgmax=800)
[font=Arial]
Last time, we looked at using cube maps to render a skybox around our 3D scenes, and also how to use that sky cubemap to render some environmental reflections onto our scene objects. While this method of rendering reflections is relatively cheap, performance-wise and can give an additi…
Last time, we looked at using cube maps to render a skybox around our 3D scenes, and also how to use that sky cubemap to render some environmental reflections onto our scene objects. While this method of rendering reflections is relatively cheap, performance-wise and can give an additi…
![Skyboxes and Environmental Reflections using Cube Maps in Direct3D 11 and SlimDX](http://lh6.ggpht.com/-wc5EFIPws44/UiyrP192zCI/AAAAAAAADJQ/IPPs4LHbHHg/cubemap_thumb%25255B3%25255D.png?imgmax=800)
[font=Arial]
This time, we are going to take a look at a special class of texture, the cube map, and a couple of the common applications for cube maps, skyboxes and environment-mapped reflections. Skyboxes allow us to model far away details, like the sky or distant scenery, to create a sense that t…
This time, we are going to take a look at a special class of texture, the cube map, and a couple of the common applications for cube maps, skyboxes and environment-mapped reflections. Skyboxes allow us to model far away details, like the sky or distant scenery, to create a sense that t…
![Camera Picking in SlimDX and Direct3D 11](http://lh3.ggpht.com/-FUJ-MEAKuP4/UiDv_Vi9JPI/AAAAAAAADGI/9vM3nReiO5U/Picking_thumb%25255B1%25255D.png?imgmax=800)
[font=Arial]
So far, we have only been concerned with drawing a 3D scene to the 2D computer screen, by projecting the 3D positions of objects to the 2D pixels of the screen. Often, you will want to perform the reverse operation; given a pixel on the screen, which object in the 3D scene corresponds …
So far, we have only been concerned with drawing a 3D scene to the 2D computer screen, by projecting the 3D positions of objects to the 2D pixels of the screen. Often, you will want to perform the reverse operation; given a pixel on the screen, which object in the 3D scene corresponds …
![A Look-At Camera in SlimDX and Direct3D 11](http://lh6.ggpht.com/-M9huFe4AX7A/Uh9z_0_z9NI/AAAAAAAADFw/Den7Z2N5d-k/lookat_thumb%25255B4%25255D.png?imgmax=800)
[font=Arial]
Today, we are going to reprise our Camera class from the Camera Demo. In addition to the FPS-style camera that we have already implemented, we will create a Look-At camera, a camera that remains focused on a point and pans around its target. This camera will be similar to the very bas…
Today, we are going to reprise our Camera class from the Camera Demo. In addition to the FPS-style camera that we have already implemented, we will create a Look-At camera, a camera that remains focused on a point and pans around its target. This camera will be similar to the very bas…
![Hardware Instancing and Frustum Culling using SlimDX and Direct3D 11](http://lh6.ggpht.com/-CyTOlq5ecQw/Uh5jkord3UI/AAAAAAAADDY/VkIzwAofc54/instancing_and_culling_thumb%25255B1%25255D.png?imgmax=800)
[font=Arial]
One of the main bottlenecks to the speed of a Direct3D application is the number of Draw calls that are issued to the GPU, along with the overhead of switching shader constants for each object that is drawn. Today, we are going to look at two methods of optimizing our drawing code. Ha…
One of the main bottlenecks to the speed of a Direct3D application is the number of Draw calls that are issued to the GPU, along with the overhead of switching shader constants for each object that is drawn. Today, we are going to look at two methods of optimizing our drawing code. Ha…
![An FPS Camera in SlimDX](http://lh4.ggpht.com/-tL7cjdhc3aA/UhTQ300U4ZI/AAAAAAAADCQ/clCPfbfMaAM/camera_thumb%25255B1%25255D.png?imgmax=800)
[font=Arial]Up until now, we have been using a fixed, orbiting camera to view our demo applications. This style of camera works adequately for our purposes, but for a real game project, you would probably want a more flexible type of camera implementation. Additionally, thus far we have been includ…
![Geometry Shader Billboards with SlimDX and DirectX 11](http://lh5.ggpht.com/-KaaYRDxicvw/Ug5h1VpBqmI/AAAAAAAADBY/pLtisi7jDUI/billboard_thumb%25255B1%25255D.png?imgmax=800)
[font=Arial]
When I first learned about programming DirectX using shaders, it was back when DirectX 9 was the newest thing around. Back then, there were only two stages in the shader pipeline, the Vertex and Pixel shaders that we have been utilizing thus far. DirectX 10 introduced the geometry sha…
When I first learned about programming DirectX using shaders, it was back when DirectX 9 was the newest thing around. Back then, there were only two stages in the shader pipeline, the Vertex and Pixel shaders that we have been utilizing thus far. DirectX 10 introduced the geometry sha…
![Planar Reflections and Shadows using the Stencil Buffer in SlimDX and Direct3D 11](http://lh5.ggpht.com/-A3i7Wxn-iN4/UgjIpPFAQnI/AAAAAAAAC-A/mQWCasQmHPU/mirror_thumb%25255B1%25255D.png?imgmax=800)
[font=Arial]In this post, we are going to discuss applications of the Direct3D stencil buffer, by porting the example from Chapter 10 of [/font]Frank Luna's Introduction to 3D Game Programming with Direct3D 11.0[font=Arial]
to C# and SlimDX. We will create a simple scene, consisting of an object …
![Alpha-Blending Demo](http://lh5.ggpht.com/-GAG9imR5OW0/Uf__TZV4jmI/AAAAAAAAC68/sXA-m2U88u4/blendDemo2_thumb%25255B2%25255D.png?imgmax=800)
Last time[font=Arial]
, we covered some of the theory that underlies blending and distance fog. This time, we'll go over the implementation of our demo that uses these effects, the BlendDemo. This will be based off of our previous demo, the [/font]Textured Hills Demo[font=Arial]
, with an added box…
![Blending Theory](http://lh5.ggpht.com/-2ZUhqTbcCk8/Ufv0lAjBXMI/AAAAAAAAC6g/ThAQdSqLobc/blendDemo_thumb%25255B1%25255D.png?imgmax=800)
[font=Arial]This time around, we are going to dig into Chapter 9 of [/font]Frank Luna's Introduction to 3D Game Programming with Direct3D 11.0[font=Arial]
. We will be implementing the BlendDemo in the next couple of posts. We will base this demo off our previous example, the [/font]Textured Hills …
![Using a Texture Atlas for Animation](http://lh5.ggpht.com/-LYICO3y21FE/UfsHQs6ntMI/AAAAAAAAC54/mhue3xj6gIY/firebox_thumb%25255B1%25255D.png?imgmax=800)
[font=Arial]We're going to wrap up our exploration of Chapter 8 of [/font]Frank Luna's Introduction to 3D Game Programming with Direct3D 11.0[font=Arial]
by implementing one of the exercises from the end of the chapter. This exercise asks us to render a cube, similar to our [/font]Crate Demo[font=…
![Textured Hills Demo](http://lh6.ggpht.com/-vQLm7YdJTaA/UfltRfxDSpI/AAAAAAAAC5I/JUgCXuhc2uU/texHills_thumb%25255B1%25255D.png?imgmax=800)
[font=Arial]This time around, we are going to revisit our old friend, the Waves Demo, and add textures to the land and water meshes. We will also be taking advantage of the gTexTransform matrix of our Basic.fx shader to tile our land texture multiple times across our mesh, to achieve more detail, a…
![Texturing 101](http://lh3.ggpht.com/-UKUAuKApF3I/UfZLW0VFkbI/AAAAAAAAC4Y/XfxSLmuQwbs/crate_thumb%25255B1%25255D.png?imgmax=800)
[font=Arial]This time around, we are going to begin with a simple texturing example. We'll draw a simple cube, and apply a crate-style texture to it. We'll need to make some changes to our Basic.fx shader code, as well as the C# wrapper class, BasicEffect. Lastly, we'll need to create a new vertex …
![Three-point Lighting](http://lh6.ggpht.com/-r34IVdKotuU/UfFYEhW-TuI/AAAAAAAAC3E/ODv2vdLlF4E/litskull1_thumb.png?imgmax=800)
[font=Arial]This time, we are going to take the scene that we used for the [/font]Shapes Demo[font=Arial]
, and apply a three-point lighting shader. We'll replace the central sphere from the scene with the skull model that we loaded from a file in the [/font]Skull Demo[font=Arial]
, to make the sce…
![Lighting, Take 1](http://lh5.ggpht.com/-m3yqhm3aEf0/Ue8Qo-wWHEI/AAAAAAAAC1c/QJ3DJ3TEfbg/waves_thumb.png?imgmax=800)
Last time, we finished up our exploration of the examples from Chapter 6 of Frank Luna's Introduction to 3D Game Programming with Direct3D 11.0. This time, and for the next week or so, we're going to be adding lighting to our repertoire. There are only two demo applications on tap in this chapter, …
![Dynamic Vertex Buffers: Waves Demo](http://lh6.ggpht.com/-rFD6MgAt3so/Ue05nnBa7VI/AAAAAAAAC00/JV_5hytikns/waves_thumb%25255B1%25255D.png?imgmax=800)
We'll wrap up the slate of examples from Chapter 6 of Frank Luna's Introduction to 3D Game Programming with Direct3D 11.0 by taking a look at updating a vertex buffer each frame, as opposed to the immutable vertex buffers we have been working with previously. We will be using the Hills Demo that w…
![Loading a Mesh From a File: Skull Demo](http://lh3.ggpht.com/-7rQ4k-4hKjA/Ueq95AqQmYI/AAAAAAAAC0c/TdzBtkHJtsc/skull_thumb1.png?imgmax=800)
This time around, we are going to be loading a pre-defined mesh from a simple text-file format. This will be a rather quick post, as the only thing different that we will be doing here is altering our CreateGeometryBuffer function to load the vertex and index data from a file, rather than creating…
![Shapes Demo with Direct3D11 and SlimDX](http://lh6.ggpht.com/-VENjRltMumQ/UeleWe4TduI/AAAAAAAACzM/ycmcovUJ9lI/shapes_thumb%25255B1%25255D.png?imgmax=800)
This time up, we are going to add some additional shape types to our GeometryGenerator class, and look at how to redraw the same geometry at different locations and scales in our scene. This example corresponds to the ShapesDemo from Frank Luna's Introduction to 3D Game Programming with Direct3D 11…
Advertisement
Popular Blogs
Advertisement