對於渲染較多個相似模型的渲染問題這兩種方法哪種效率高?

時間 2021-06-09 05:22:57

1樓:

首先明確一下問題:

每個模型的頂點資料都相同,但位置或大小或方向不同,顏色或貼圖也有可能不同。

根據模型頂點數目和模型總體數目大致分為三種情況及其解決方案:

當每個模型具有較多的頂點(大約100個以上),模型數量不多時,可以通過多次繪製命令,配合不同的模型矩陣(uniform)來實現多個模型的渲染。這個做法是比較簡單基礎,也比較容易實時修改每乙個模型。

當每個模型頂點較少(比如3個頂點的三角形),但模型數量較多時,可以通過快取所有模型的頂點,來實現繪製。其實這個更基礎,相當於把多個模型統一成乙個mesh模型來繪製了。

當每個模型有較多頂點,且模型數量巨大時,最好通過例項化渲染來加速。大致思路是將計算好的變數一次性傳輸給 GPU,然後只使用一次繪製命令(例項化渲染),節省了cpu和gpu的通訊時間,並且利用GPU強大的平行計算功能,加速渲染。這種方法最快,但是相對複雜。

具體例子可以參考:例項化 - LearnOpenGL CN

如何渲染有多個光源的場景?

topameng 因為最早內建的只是簡單的Foward Render Pipeline.適合手機,在手機應用場景上光源也多不起來。如果是PC 可以用Deferred Lighting Render Pipeline.不過已經有了scriptable render pipeline 可以定製渲染管線。...

對於秒殺 搶購等場景,主從結構,多個redis之間同時讀寫,怎麼確保資料一致性?

gao xinge 相同點 都會走加購,下單,支付的標準流程 都需要防止超賣 不同點 因為秒殺商品相當於從某個時刻開始做活動的商品,所以從該時刻開始,可能會有大量的請求和流量湧入,去搶購相對只有少量庫存的商品。因此需要防止大量的請求和流量直接達到資料庫上,防止資料庫崩潰 前端 nginx servi...

對於手機乙個系列多個版本,你有什麼看法?

得意餐桌 這是人家的 產品陣容 我家店裡就一種蓋澆飯 番茄炒雞蛋蓋澆飯 對面店裡有 蓋澆飯矩陣 二兩公尺飯配番茄炒雞蛋小容量版本 三兩公尺飯配番茄炒雞蛋大容量版本 二兩公尺飯配番茄炒雞蛋 例湯Pro小容量版 三兩公尺飯配番茄炒雞蛋 例湯Pro大容量版 二兩公尺飯配番茄炒雞蛋 蛋Pro Plus小容量...