The shader that lays down tiles takes 3 sets of UV coordinates, one for the base tile image, one for the damage texture, and one for the bevel. The damage and bevel images are made of two parts, a greyscale image that applies the Photoshop “overlay” blend effect to brighten or darken the tile color, and a normal map that is blended with the original normal map. The key here that because the bevel adjustment is not your typical alpha blending operation, it has to happen in the shader when you are drawing the original sprite. Overlay blending is simple, but you have many options with Normal Map blending; see http://blog.selfshadow.com/publications/blending-in-detail/ for details.
There are 17 edge images for different tile arrangements and 6 sets of edges used in the game. Full Bore’s image data is unpacked if you want to check it out. Check out FullBore\images\tiles.png and FullBore\images\tilesnormal.png]]>
I notice some of your background tiles are meant to repeat, obviously. However, while the tiles themselves are visually the same, their normal-mapped versions may not be.
For example, in the normal image above, you can notice some tiles have a bevel applied to them since they’re at the edge of a wall. However, these same tiles which are not at the edge do not have this bevel.
I’m just wondering if this is done manually. Do you just have 9 versions of each repeatable tile to account for the 9 different positions in could be placed in (top-left, top-middle, top-right, etc…)? Or is it somehow done with code?
In case I fail at explaining, only the top one has a bevel applied: http://i.imgur.com/3rvooZW.png]]>
If you look at the shader here: http://en.wikipedia.org/wiki/Blinn%E2%80%93Phong_shading_model
the diffuse component of the light (in Full Bore’s case, the only component) is the dot-product of the surface normal and the light vector:
float NdotL = dot( normal, lightDir );
I think that in Photoshop terms that would make the falloff spherical.]]>