看板 GameDesign 關於我們 聯絡資訊
上兩篇是正解 一堆bsp octree之類的切割 都是為了不想送進graphic pipeline 但弔詭的是近幾年隨著硬體的進步 有時侯直接丟給GPU算比你在那邊切半天還快 Orz ※ 引述《insightful (彩虹總在轉身後看見)》之銘言: : ※ 引述《ppaass (Qoo~)》之銘言: : : ㄟ...原提問者可能把 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 機制。 : 哈哈.....原來如此.....真是謝謝各位前輩的回答...... : 我果然有一點點搞混了.....原來 object culling 是這麼一回事.... : 終於懂了......^^" -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.167.73.119