3D引擎應當怎樣組織渲染物件?

時間 2021-06-01 10:41:44

1樓:凱丁

你這樣大體思路其實沒什麼問題

首先做visibility檢測,這個可以用當前camera去遍歷當前的Scene Graph(八×,四×,B×,隨便啦),當然還有別的更上牛的辦法

遍歷的過程中把看得見的RenderObject 挑出來,根據這個RenderObject的某些屬性放到對應的array裡面,比如透明的,不透明的,2D的等等,然後做排序啦(按照遠近,按照材質型別等等).

這個時候大部分情況下你的RenderObject已經組織好了,但是有些array還可以優化,比如可以把相同的Mesh合併做Instancing啦,把所有2D的東西合併在一起啦等等

最後總結:以上方法最後出來的組織完了,就是幾個Array!有些是按照遠近排序的,有些是按照材質(Program)排序的,有些Array裡面是Batch後的結果!

當然這些Array基本上來說每幀都要清空!有例外,比如UI,沒有改動時,完全可以不清空下幀直接畫!

順便推薦一本書,是 @Milo Yip翻譯的《遊戲引擎架構》

3d渲染效果圖 怎麼使渲染速度變快 怎麼渲染大圖

野狼不野 優化場景,優化引數,很多細微的優化能提公升不少的渲染速度 上傳給渲染平台,批量渲染,批量出結果,在不改變本地硬體配置的情況下就能享受高配置 高記憶體 高效能伺服器,且成本。 66966 加快渲染速度可以從一下幾個方面入手 1.優化場景通過降低一些引數,比如細分 材質引數 刪減一些不必要的模...

3d引擎開發需要那些技能儲備

向宇波 同作為小白,我嘗試過寫乙個簡單的遊戲引擎,應該不能稱之為遊戲引擎,只是對學過知識的一次嘗試運用。遊戲引擎架構 這本書真的得看,不然都不知道引擎有哪些功能,這個就很尷尬了。其次最好用遊戲引擎做過小遊戲,對遊戲引擎感性上有認識。有些開源的引擎還可以進去瞅瞅原始碼,思考為什麼人家這麼寫,可以有哪些...

256位元組3D程式是如何實現3D引擎的呢?

Mack 利用演算法生成資源的方式。有個第三方外掛程式substance也利用這種方式極大壓縮貼圖,可以使用他的材質庫或者工具生成貼圖,遊戲在執行時還原貼圖,極大的壓縮貼圖。和很多實時生成的大地形,無限種賽道等有些類似,利用時間換空間。 戴文宗 稍微補充下。這類效果和體積的Demo一般只會用到 ra...