本文列举了Direct3D中各种纹理应用实现:黑暗贴图,发光贴图,漫反射映射贴图,细节纹理,纹理混合,有较详尽的注解。其中黑暗贴图,发光贴图,细节纹理都是采用多重纹理的方法实现(也可以采用多次渲染混合实现)。
示例代码使用Beginning direct3D game programming中的框架,省去不少事情,可以专注纹理话题。代码:点此下载
下面来看代码与效果:
正常的纹理贴图效果:
正常的纹理贴图代码:
1
//基本纹理
2
void drawNormalTexture()
3
}
2
3
黑暗纹理贴图效果:
黑暗纹理贴图代码:
1
//黑暗映射纹理
2
void drawDarkMapTexture()
3
}
2
3
漫反射映射贴图效果:夜光镜效果
漫反射映射贴图代码:
1
//漫射光映射纹理
2
void drawDiffuseTexture()
3
}
2
3
发光映射纹理贴图效果:
发光映射纹理贴图代码:
1
//发光映射纹理
2
void drawGlowMapTexture()
3
}
2
3
细节映射纹理贴图:实现粗糙的凹凸效果
细节映射纹理贴图代码:
1
//细节映射纹理:实现凹凸效果
2
void drawDetailMapTexture()
3
}
2
3
alpha纹理混合效果:多次渲染实现
alph纹理混合代码:
1
//alpha混合纹理
2
void drawAlphaBlendTexture()
3
}
2
3