首先,聲明一下:
個人感覺這一章節有點雞肋,因為通過“紋理映射”的方式給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.