我有一個BSP樹加載到內存中。我首先發現我在什麼葉子。接下來,我解碼PVS。然後,我瀏覽該PVS中的每個區域,看看它是否在我的平截頭體內。我是否錯誤地渲染BSP樹?
我被告知這是渲染的不正確方式,而且實際上我應該通過遍歷BSP樹進行回到前面的渲染。我到底該怎麼做?我已經看到了許多不同的做法,這就是爲什麼我問。
例如,Quake 3 BSP渲染說: 遍歷BSP以確定攝像機位於哪個葉中。 檢索並解壓縮該葉子的PVS,遍歷PVS並在BSP中標記葉子。 穿越遠處的BSP 如果一個節點沒有標記,請跳過它。 測試節點邊界框對着相機Frustrum。 將當前頁面添加到再現列表中
這仍然是今天完成的標準方式,或者至少對於更簡單的遊戲。
從前到後是現今的首選渲染;只有畫家的算法需要回到前面(即在壓縮之前,高帶寬的Z緩衝區使它們更好)。從前到後考慮到早期的z-rejects(除了確定和檢查其z值之外,在現代硬件中,除了你所繪製的任何東西都會被拒絕,之前做了很多工作)。當我多點時,我會再次發表評論。 – 2012-01-16 15:07:57