我寫我自己的3D遊戲引擎(我花了一年),我想創造我的CPU上運行的光線跟蹤(而不是GPU!)減少計算而光線追蹤
就目前而言,射線追蹤過程如下簡化:
- 爲每個輸出像素投射射線。
- 如果當前射線碰到物體,設置輸出像素的顏色爲「白色」
- 否則設置爲黑色
爲了提高光線跟蹤器的速度,我添加了一個球形邊界框每個實體。如果當前射線與邊界框相交,它將運行與實體的每個三角形的相交測試。
我在射線三角交點和射線點距離上使用了最快的方法,但每條射線都必須測試每個可能相交的實體的每個三角形。
因此,使用大約10000多個多邊形渲染一個對象(1920x1080)需要5分多鐘,我想這不是我想要的。
有什麼辦法減少我需要檢查的三角形數量嗎?
問候,芬蘭人
你的問題是一個廣泛的問題,但我可以給你一些指示。有很多關於光線追蹤(計算機視覺)的論文,文章,......。您可以對此主題進行一些研究。有各種各樣的方法和方法。 – KarelG
所以你基本上是說有一種方法可以減少多邊形的數量,而不是條目的數量。我會試一試:)謝謝 – Luecx
你現在正在進入加速度數據結構,主要是Bounding Volume Hierarchy和K-d樹。你可以在這個主題上找到大量關於sciencedirect和ieee上k-d樹遍歷的研究論文。 –