2015-07-02 96 views
1

我能得到一個射線追蹤的啓動代碼的在線和啓動代碼有兩個「幾何圖形」:OpenGL的光線追蹤和網

類球體

類三角形

我明白三角形,因爲代碼使用三角形創建網格,並從每個像素獲取三角形與射線之間的交點。但是球體是如何發揮作用的?

所以我做了一些在線研究,其中很多人討論了三角形交叉和球形交叉。但我們如何在網格中使用球體?

+0

_「球體如何發揮作用」_ - 我們應該怎麼知道?你所告訴我們的是射線追蹤器包括一個。 –

+0

@CaptainObvlious我猜我在期待一個知道光線追蹤算法的人的回答。很多光線追蹤教科書都將三角形和球體作爲基元。我得到的三角形,但我不明白如何球體的工作,除非他們在網格中使用 – JayC

+0

@CaptainObviously我想我應該已經明確表示,我問的射線追蹤算法。即使我提供了代碼給你,我不認爲你會知道,但謝謝你評論船長遺忘。 – JayC

回答

1

網格是三角形的集合,並使用光線追蹤渲染該對象,你必須解決大量的光線追蹤方程與所有的三角形。然而,球體具有封閉形式的隱式函數,因此解決射線相交非常容易。這兩個樣本對象來自於這樣一個事實,即我們有兩種方法來表示計算機圖形中的對象,隱式對象有其隱式函數以及我們有三角形集合的多邊形網格表示。通常,在光線追蹤中,我們有一些物體,如球體,圓柱體,平面(三角形)和圓環,我們有一個閉合的形函數,我們可以找到它們與光線的交點。對於像兔子這樣的複雜物體,射線被鑄造並與一組平面(三角形)相交。