Re: [程式] DirectX有做object culling嗎?

看板GameDesign (遊戲設計)作者 (Qoo~)時間18年前 (2007/02/25 15:15), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/6 (看更多)
※ 引述《littleshan (我要加入劍道社!)》之銘言: : 因為你的視角會變 也就是 viewing frustum 會變 : 所以事先對 model 做 clipping 沒辦法得到什麼好處 : 每次視角改變你都要重新 clip 一次 : 這和丟給 GPU 做 clipping 沒什麼不同 ㄟ...原提問者可能把 clipping 跟 object culling (或稱 visibility culling)搞 混了。 clipping: 在 rendering pipeline 中,在 vertex transform 之後,把 viewport 外的 polygon 部份切除掉。 object culling: 在 rendering pipeline 之前,預先把看不見的物體整個地(或部 分地)過濾掉,該物體就不進 rendering pipeline 去描繪了。 就描繪來說,用對方法和地方的話,object culling 會有很大的效能提升,前提是 用對方法和地方,並沒有一個通用的方法對所有的場景都得到最好的效果,例如: 對於室內場景,有很多牆壁去遮擋住另一個房間的物體,可以考慮用遮擋測試的方法 來做 object culling。 對於飛行模擬,物體分散地來自四面八方,用 frustum culling 或 octree 或許會 得到最好的效果。 對於地圖式遊戲,物體平鋪在某個平面上,直接檢查座標範圍就好。 然而對於所有物體緊密排列,或觀察範圍遍及整個場景,使得 object culling 幾乎 沒有效果的場景,對這種場景做 object culling 反而是傷害效能。 因為沒有通用的 object culling 方法,必須因時因地制宜採用不同方法,所以 DirectX 沒有內建 object culling 機制。 -- /* 免費軟體與視窗程式設計教學: * http://shukaiyang.myweb.hinet.net/indextc.htm */ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.124.101.93
文章代碼(AID): #15uJU3QQ (GameDesign)
文章代碼(AID): #15uJU3QQ (GameDesign)