我在寫一個使用C++和DirectX 11的小型渲染引擎。我設法使用索引頂點渲染模型。現在我想支持紋理和頂點法線。我正在使用Wavefront OBJ文件,它使用索引來引用正確的紋理和法線座標(很像索引頂點)。這是我第一次將頂點,紋理和法線組合在一起,所以這對我來說有點新鮮。如何一起使用頂點,法線和紋理索引?
我面臨的問題是,頂點,法線和紋理座標的索引數量不相同,我試圖找到一個正確的方式在頂點着色器中使用所有這些索引。爲了更清楚地說明問題,我做了一些圖片。
http://oi43.tinypic.com/2cegtih.jpg http://oi39.tinypic.com/33l1o46.jpg
左邊的圖像是一個簡單的piramid對象的線框和右圖像是其UV座標佈局(具有piramid的位於中心的底部)。在左邊的圖像中,你可以看到piramid有4個頂點,所以有4個頂點索引。右UV佈局有6個UV座標,所以有6個紋理索引。對於金字塔的每個面都有自己的法線,所以只有4個正態分佈。
我發現this問題,同時搜索和它似乎理論上工作(我還沒有嘗試過)。這是解決這種問題的常用方法,還是有更好的方法?你會推薦我做什麼?
謝謝:)
P.S。:我的頂點,正常和紋理數據被存儲在CPU側單獨的陣列。
什麼問題了嗎? – zdd