在工程myTutorialD3D11_17中,我们重新定义我们的cube顶点法向,每个三角形面的顶点法向都是和这个三角形的面法向是一致的。如下图所示:
在该工程中,我们还修改了CubeModelClass文件,从一个cube.txt文件中读cube顶点位置、法向、纹理坐标。
cube.txt的格式为:
Vertex Count: 36
Data:
-1.0 1.0 -1.0 0.0 0.0 0.0 0.0 -1.0
数据行前三个数据为顶点位置,接着两个数据为纹理坐标,最后的三个数据为顶点法向。
为了实现读取cube.txt,我们增加了函数LoadModel,该函数把模型数据读取到m_model中去,之后在初始化缓冲函数中,又会从m_model中读取数据。
程序的执行效果如下,可以看到由于使用面法向,再加上是平行光光源,所有cube的每个面颜色都是一样的,效果很差。
完整的代码请参考:
工程文件myTutorialD3D11_17
代码下载: