我從頭開始製作3D渲染器,沒有外部庫。正如我試圖優化的那樣,我想知道畫家的算法是否比Z-Buffering快。假設我正在渲染一個相同的立方體,這會更快。但我不希望相交的多邊形搞亂,所以我可能想要實施紐維爾的Painter算法版本,該算法切割多邊形,使它們不會相交和混亂。Z緩衝通常比Painter算法更快嗎?
所以我能有什麼將平均更快渲染一個多維數據集的順序:
此外,如果任何人有任何其他好的建議我可以可能使用?
我從頭開始製作3D渲染器,沒有外部庫。正如我試圖優化的那樣,我想知道畫家的算法是否比Z-Buffering快。假設我正在渲染一個相同的立方體,這會更快。但我不希望相交的多邊形搞亂,所以我可能想要實施紐維爾的Painter算法版本,該算法切割多邊形,使它們不會相交和混亂。Z緩衝通常比Painter算法更快嗎?
所以我能有什麼將平均更快渲染一個多維數據集的順序:
此外,如果任何人有任何其他好的建議我可以可能使用?
在計算機圖形畫家算法被稱爲Z-Sorting
有時有時快不行。這取決於您擁有多少個對象,您渲染的分辨率有多大,以及您需要的座標精度。
Z-Buffering
爲更好:
動態場景(對象或相機的移動/旋轉)
它需要額外的緩衝器中相同的分辨率渲染後的圖像,並且每個片段執行單個條件(每個多邊形的渲染像素甚至看不見)。在渲染之後,每個可見像素的座標都處於許多高級渲染技術所需的位置。
Z-Sorting
是爲了更好:
如果很少的內存是在處置(上8位電腦最3D使用的應用程序Z-sorting
,因爲沒有用於Z-buffer
的內存)
它需要索引緩衝區來存儲所有的對象/多邊形索引,並且它對每個場景變化執行排序(通過Z座標排序許多對象可能會很慢)。如今它被使用,因爲:
透明的多邊形需要Z分級
有時這兩種技術結合在一起
尤其對於高動態範圍的Z
座標,因爲標準Z緩衝區(24/32位寬)在整個範圍內的分辨率非常差。它可以通過使用線性或對數刻度Z-buffer
來部分解決,但是如果您需要在全範圍內定義準確度/分辨率,則需要使用某種類型的Z分類組合,並將更多frustrums合併在一起,或將自定義Z-Buffer
與高動態範圍,目前不支持HW
謝謝你的提問。 – Hyden
這很愚蠢,我20分鐘前就問這個問題,在「最新」上已經是8頁了 – Hyden