BumpMapping types
How much bumpmapping types are? I have heard dot3, emboss, tangent ... which are the differences ?
Note that this is a VERY BRIEF overview of the different techniques and does not include all of them. Note that DOT3 is the most used for diffuse/specular bumpmapping on modern hardware.
EMBOSS: essentially sliding two textures (light and dark) around based on light direction. This doesn't work very well and should be avoided on modern (GF1+) cards.
DOT3: Store surfaces normals in a texture map and do dot3 operation on per-pixel light direction and per-pixel normal.
LocalSpace: Bumpmap normals are defined in object local space, fast but limited (no tiling, unique bumpmap per-model).
TangentSpace: Generate a tangent space per-vertex, think of the plane defined by the normal of each vertex, and you define the axis on the plane (TANGENT and BINORMAL) so that you can transform the light vector into tangent space, allowing the bumpmap normals to be relative to this plane, this means that you can tile the bumpmap or use it on different models.
EMBM: Offset bumpmapping. You store du, dv signed offsets in a texture, do an environment map lookup then offset by the per-pixel du, dv. Used for things like bumped spheremap or planar reflections.
Reflective Bumpmapping: Similar to the above, but the bumpmap normal (and per-pixel tangent space) defines a lookup into a cubemap texture, so you can do true bumpmapped reflections.
[edited by - blueknight on October 12, 2003 4:11:21 AM]
EMBOSS: essentially sliding two textures (light and dark) around based on light direction. This doesn't work very well and should be avoided on modern (GF1+) cards.
DOT3: Store surfaces normals in a texture map and do dot3 operation on per-pixel light direction and per-pixel normal.
LocalSpace: Bumpmap normals are defined in object local space, fast but limited (no tiling, unique bumpmap per-model).
TangentSpace: Generate a tangent space per-vertex, think of the plane defined by the normal of each vertex, and you define the axis on the plane (TANGENT and BINORMAL) so that you can transform the light vector into tangent space, allowing the bumpmap normals to be relative to this plane, this means that you can tile the bumpmap or use it on different models.
EMBM: Offset bumpmapping. You store du, dv signed offsets in a texture, do an environment map lookup then offset by the per-pixel du, dv. Used for things like bumped spheremap or planar reflections.
Reflective Bumpmapping: Similar to the above, but the bumpmap normal (and per-pixel tangent space) defines a lookup into a cubemap texture, so you can do true bumpmapped reflections.
[edited by - blueknight on October 12, 2003 4:11:21 AM]
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement