我正在創建一個體素引擎。除了一些簡單的單純噪聲集成之外,我還創建了塊生成,但由於每個四邊形的所有面都被繪製,即使是您看不到的面,也非常滯後。光線投射,以避免繪製看不見的面孔
根據我的理解,這通常是使用光線投射處理的,其中我瞭解基本理論:從相機中畫出若干光線並檢查碰撞,如果未發現碰撞,則臉部不在視線內,因此應該不被渲染。即使我理解了它的理論,但由於缺乏先驗知識以及我在互聯網上發現的缺乏知識,所以我還沒有能夠實現它,即它們給出了代碼而不是知識。
我能想象我需要採取的步驟如下:
- 瞭解OpenCL的(雖然我以前沒有使用過它我的理解它可以讓你通過更好地利用你的顯卡使用我在心智上與OpenGL着色器關聯的'內核')。
- 瞭解光線投射背後的理論和數學。我也聽說過我認爲具有不同用途的光線追蹤。
- 瞭解如何使用此信息不呈現隱藏的面孔。假設我得到了一個工作實現,我該如何去告訴OpenGL不要渲染隱藏的面部?立方體是一個對象,據我所知,沒有辦法在OpenGL中只操作頂點的對象的面。 OpenCL如何與OpenGL進行通信? OpenCL不是圖形api,因此它不能繪製光線。
任何人都可以指向正確的方向嗎?我也相信也有純粹的OpenGL實現,但我想保留OpenCL方面,因爲這是一種學習體驗。
在此期間,我想我可以開始在GUI上工作 – SemperAmbroscus