首先,声明一下:
个人感觉这一章节有点鸡肋,因为通过“纹理映射”的方式给Triangle Meshes图形添加纹理貌似不太常用。
1,理论分析
能够通过“纹理映射”的方式给Triangle Meshes图形添加纹理的前提条件是“图形对应的PLY文件中每个顶点包含纹理参数u、v”(如下图所示)。但是,这样的PLY文件貌似不太好找(反正本人是没有找到)。
书上也只是拿之前介绍过的“两个三角形”来说明方法的可行性。
(这里的书指的是《Ray Tracing from the Ground Up》;“两个三角形”的PLY文件如上图所示。之前生成的图形如下图所示)
基于当前的程序,通过“纹理映射”的方式给Triangle Meshes图形添加纹理,我们需要做如下修改:
1,读取PLY文件中的u、v数据;
2,对u、v的值进行插值得到撞击点的u、v值;
1.1,读取PLY文件中的u、v数据;
相关代码截图如下:
1.2,对u、v的值进行插值得到撞击点的u、v值
首先,按照如下继承关系添加两个新的类:
相关代码截图如下:
2,图形测试
测试代码:
输出图形:
纹理图片:
输出图形:
前边是平坦(flat)着色的图形;后边是平滑(smooth)着色的图形:
3,其他说明
完整代码下载路径:
http://download.csdn.net/detail/libing_zeng/9792810
Referrance:
[1]. Kevin Suffern, Ray Tracing from theGround Up, A K PetersLtd, 2007.