我要開發的directX應用程序可以通過兩種方式實現 - 一種是我們有大量三角形和相關顏色,另一種是三角形數量較少但通過生成紋理的紋理貼圖添加細節。頂點處理與像素着色的相對費用
我已經足夠新的GPU硬件,我沒有這兩種方法的代價直覺 - 我的猜測是處理大量的頂點比少量的頂點更昂貴,但有些從像素着色器中添加細節,但無法在硬件方面證明這一點。
任何人都可以解釋如何思考這個問題,或者這是否是正確的思維方式?
任何幫助表示讚賞
Anondev
我要開發的directX應用程序可以通過兩種方式實現 - 一種是我們有大量三角形和相關顏色,另一種是三角形數量較少但通過生成紋理的紋理貼圖添加細節。頂點處理與像素着色的相對費用
我已經足夠新的GPU硬件,我沒有這兩種方法的代價直覺 - 我的猜測是處理大量的頂點比少量的頂點更昂貴,但有些從像素着色器中添加細節,但無法在硬件方面證明這一點。
任何人都可以解釋如何思考這個問題,或者這是否是正確的思維方式?
任何幫助表示讚賞
Anondev
更有效地使用大量的多邊形和他們使用的紋理細節。這就是紋理映射存在的原因。這是試圖使平面顯得更加細緻。凹凸貼圖技術通過使光照像多邊形不平坦一樣進一步增強效果。
然而,這絕不會看起來像使用多邊形作爲現實的,因爲問題,如silouette是平等
如果你想象的三角形如此之小,他們最終採取了一個像素在屏幕上。每個像素必須使用矩陣數學計算其位置,每個多邊形將被交給光柵器並轉換爲單個像素,每個像素將被髮送到像素着色器。這是很多工作,像素着色器仍然需要運行以計算出該像素的光照。
如果相反,我們有一個填滿屏幕的大三角形,只有三個頂點用矩陣數學轉換,光柵器會將一個三角形轉換爲像素。像素着色器的執行次數與前面的示例中執行次數相同。唯一的區別是像素着色器需要進行紋理映射查找,這相對便宜。
看看遊戲是如何處理這個問題的。他們使用凹凸貼圖等技術來僞造較低的多邊形數量。我認爲你的邏輯是正確的,因爲你想要保守你的多邊形。如果我是你,我會問自己,如果我不能使用更多的多邊形,我是否可以使用着色器。 –