March 15, 2008
Normal mapping
I've added normal mapping to each of the skinned shadowing routines. To achieve this binormals and tangents were added to my vertex declaration and exported. The normal map is decoded in the pixel shader and a simple dot product used against the light vector made from multiplying the world space light vector and 3x3 matrix formed from tangent, binormal and normal.
March 10, 2008
Queried Virtual Shadow Maps
The latest uploaded shadow map technique is QVSM. The QVSM paper describes an approach where a large virtual texture can be used for the shadow map through several tiling and rendering schemes.
'Tech' demo 11 uses their brute force approach to tile shadow maps with multi-pass rendering. This is slow, but the paper goes on to discuss improved algorithms. I'm going to try these next.
I realised the first shadow map examples used a perspective matrix. I should have used an orthogonal perspective matrix for the light projection. This makes better use of the texture so the shadow map has a higher effective resolution.
'Tech' demo 11 uses their brute force approach to tile shadow maps with multi-pass rendering. This is slow, but the paper goes on to discuss improved algorithms. I'm going to try these next.
I realised the first shadow map examples used a perspective matrix. I should have used an orthogonal perspective matrix for the light projection. This makes better use of the texture so the shadow map has a higher effective resolution.
March 04, 2008
Archived shaders
I use archives to organise data at a packing stage. They also reinforce a stringent memory layout as the game is running. Archives are just a collection of resources. For example, a vertex buffer, material and texture are resources.
The HLSL shaders are now resources. This enables the renderer to hot-swap between different shaders for the same model. "Tech" demo 10 shows a comparison between shadow maps and Variance Shadow Maps. The shader resource has enabled easy shadowing of the motion capture guy.
The HLSL shaders are now resources. This enables the renderer to hot-swap between different shaders for the same model. "Tech" demo 10 shows a comparison between shadow maps and Variance Shadow Maps. The shader resource has enabled easy shadowing of the motion capture guy.
February 25, 2008
Variance Shadow Map
Variance Shadow Maps use a floating point texture to hold the values of the mean and mean squared distance from light source to shadowed pixel. The original paper published by William Donnelly and Andrew Lauritzen can be found here on the Variance Shadow Map page.
This technique is great because it allows the graphics hardware to be used to blur the shadow map and produce soft shadows. My first attempt at this routine doesn't use any filtering but this means it can be compared with the previous standard shadow map demo. The screenshot shows a single case where the standard shadow map had a banded shadow, and where the Variance Shadow Map has an artefact free shadow.
This technique is great because it allows the graphics hardware to be used to blur the shadow map and produce soft shadows. My first attempt at this routine doesn't use any filtering but this means it can be compared with the previous standard shadow map demo. The screenshot shows a single case where the standard shadow map had a banded shadow, and where the Variance Shadow Map has an artefact free shadow.
February 22, 2008
Shadow maps
No percentage closer filtering or bias as used in the yacht demo. Just a simple 512 square shadow map and sharp edged shadows. I have programmed this simple shadow map algorithm so I can make comparisons with other shadowing routines.
February 16, 2008
Blend shapes
I've added something in the middle of the test level that looks like a reshaping biscuit. This is a blend shape, blending between cube, sphere and pyramid. This can be used for deformable objects.
February 03, 2008
Picking algorithm

The current "tech" demo demonstrates a picking algorithm which lets the user control the placement of objects through the mouse pointer. A ray cast is used from the eye to determine both the object for selection, and the drop point. The picking logic determines the best position to place on the drop point. This takes some getting used to, but the speed which objects can be positioned shows it's effectiveness.
Subscribe to:
Posts (Atom)
.jpg)