Richards Software Ramblings

Profile
Southern New Hampshire
45 comments
4 followers
64 entries
Advertisement
ericrrichards22
November 03, 2013
Windows 8.1 and SlimDX
[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…
2,124 views
ericrrichards22
October 29, 2013
Shadow Mapping with SlimDX and DirectX 11
[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…
1,955 views
ericrrichards22
October 26, 2013
Expanding our BasicModel Class
[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…
1,272 views
ericrrichards22
October 21, 2013
Particle Systems using Stream-Out in DirectX 11 and SlimDX
[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 …
3,310 views
ericrrichards22
October 15, 2013
Skinned Models in DirectX 11 with SlimDX and Assimp.Net
[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…
3,361 views
ericrrichards22
October 03, 2013
Loading 3D Models using Assimp.Net and SlimDX
[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…
5,946 views
ericrrichards22
October 01, 2013
Generating Random Terrains using Perlin Noise
[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…
3,177 views
ericrrichards22
September 30, 2013
Drawing a Loading Screen with Direct2D in SlimDX
[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…
1,965 views
ericrrichards22
September 27, 2013
Terrain LOD for DirectX 10 Graphics Cards, using SlimDX and Direct3D 11
[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…
1,571 views
ericrrichards22
September 21, 2013
Dynamic Terrain Rendering with SlimDX and Direct3D 11
[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…
1,859 views
ericrrichards22
September 17, 2013
Diving into the Tessellation Stages of Direct3D 11
[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…
1,523 views
ericrrichards22
September 16, 2013
Bump and Displacement Mapping with SlimDX and Direct3D 11
[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]. T…
1,669 views
ericrrichards22
September 11, 2013
Dynamic Environmental Reflections in Direct3D 11 and C#
[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…
1,424 views
ericrrichards22
September 08, 2013
Skyboxes and Environmental Reflections using Cube Maps in Direct3D 11 and SlimDX
[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…
1,410 views
ericrrichards22
September 01, 2013
Camera Picking in SlimDX and Direct3D 11
[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 …
1,573 views
ericrrichards22
August 30, 2013
A Look-At Camera in SlimDX and Direct3D 11
[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…
1,484 views
ericrrichards22
August 28, 2013
Hardware Instancing and Frustum Culling using SlimDX and Direct3D 11
[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…
1,624 views
ericrrichards22
August 23, 2013
An FPS Camera in SlimDX
[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…
1,478 views
ericrrichards22
August 16, 2013
Geometry Shader Billboards with SlimDX and DirectX 11
[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…
2,351 views
ericrrichards22
August 13, 2013
Planar Reflections and Shadows using the Stencil Buffer in SlimDX and Direct3D 11
[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 (…
1,853 views
ericrrichards22
August 12, 2013
Alpha-Blending Demo
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 m…
1,218 views
ericrrichards22
August 10, 2013
Blending Theory
[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 D…
1,255 views
ericrrichards22
August 08, 2013
Using a Texture Atlas for Animation
[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=A…
1,513 views
ericrrichards22
August 06, 2013
Textured Hills Demo
[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…
1,576 views
ericrrichards22
August 05, 2013
Texturing 101
[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 …
1,175 views
ericrrichards22
August 04, 2013
Three-point Lighting
[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 scene…
1,341 views
ericrrichards22
August 03, 2013
Lighting, Take 1
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, …
1,022 views
ericrrichards22
August 02, 2013
Dynamic Vertex Buffers: Waves Demo
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…
1,051 views
ericrrichards22
August 01, 2013
Loading a Mesh From a File: Skull Demo
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…
1,237 views
ericrrichards22
July 31, 2013
Shapes Demo with Direct3D11 and SlimDX
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…
1,427 views
Advertisement

Popular Blogs

shawnhar
Generalist
101 Entries
9 Followers
15 Entries
10 Followers
johnhattan
Programmer
1,277 Entries
47 Followers
ApochPiQ
Generalist
628 Entries
44 Followers
dgreen02
Generalist
338 Entries
56 Followers
Advertisement