天天看點

Q95:紋理映射(Texture Mapping)(3)——Triangle Meshes1,理論分析2,圖形測試3,其他說明

首先,聲明一下:

個人感覺這一章節有點雞肋,因為通過“紋理映射”的方式給Triangle Meshes圖形添加紋理貌似不太常用。

1,理論分析

能夠通過“紋理映射”的方式給Triangle Meshes圖形添加紋理的前提條件是“圖形對應的PLY檔案中每個頂點包含紋理參數u、v”(如下圖所示)。但是,這樣的PLY檔案貌似不太好找(反正本人是沒有找到)。

Q95:紋理映射(Texture Mapping)(3)——Triangle Meshes1,理論分析2,圖形測試3,其他說明

書上也隻是拿之前介紹過的“兩個三角形”來說明方法的可行性。

(這裡的書指的是《Ray Tracing from the Ground Up》;“兩個三角形”的PLY檔案如上圖所示。之前生成的圖形如下圖所示)

Q95:紋理映射(Texture Mapping)(3)——Triangle Meshes1,理論分析2,圖形測試3,其他說明

基于目前的程式,通過“紋理映射”的方式給Triangle Meshes圖形添加紋理,我們需要做如下修改:

1,讀取PLY檔案中的u、v資料;

2,對u、v的值進行插值得到撞擊點的u、v值;

1.1,讀取PLY檔案中的u、v資料;

相關代碼截圖如下:

Q95:紋理映射(Texture Mapping)(3)——Triangle Meshes1,理論分析2,圖形測試3,其他說明

1.2,對u、v的值進行插值得到撞擊點的u、v值

首先,按照如下繼承關系添加兩個新的類:

Q95:紋理映射(Texture Mapping)(3)——Triangle Meshes1,理論分析2,圖形測試3,其他說明

相關代碼截圖如下:

Q95:紋理映射(Texture Mapping)(3)——Triangle Meshes1,理論分析2,圖形測試3,其他說明
Q95:紋理映射(Texture Mapping)(3)——Triangle Meshes1,理論分析2,圖形測試3,其他說明

2,圖形測試

測試代碼:

Q95:紋理映射(Texture Mapping)(3)——Triangle Meshes1,理論分析2,圖形測試3,其他說明
Q95:紋理映射(Texture Mapping)(3)——Triangle Meshes1,理論分析2,圖形測試3,其他說明

輸出圖形:

紋理圖檔:

Q95:紋理映射(Texture Mapping)(3)——Triangle Meshes1,理論分析2,圖形測試3,其他說明

輸出圖形:

前邊是平坦(flat)着色的圖形;後邊是平滑(smooth)着色的圖形:

Q95:紋理映射(Texture Mapping)(3)——Triangle Meshes1,理論分析2,圖形測試3,其他說明
Q95:紋理映射(Texture Mapping)(3)——Triangle Meshes1,理論分析2,圖形測試3,其他說明

3,其他說明

完整代碼下載下傳路徑:

http://download.csdn.net/detail/libing_zeng/9792810

Referrance:

[1]. Kevin Suffern, Ray Tracing from theGround Up, A K PetersLtd, 2007.

繼續閱讀