昨天,我開始研究光線追蹤,似乎有很多演算法可以重新渲染球體和其他常見形狀。但是,我希望能夠渲染由任意多元函式定義的任意 3D 形狀。
問題似乎出在光線相交演算法中:如果一個形狀的方程已知,那么求解該形狀和光線的交點的方程在某種意義上可以“預先計算”,然后求解運行。如果在編譯時不知道形狀方程,則必須在運行時構造求解交點的方程。因此,似乎必須有一個符號代數系統才能使其實際作業,這似乎有點矯枉過正。
我知道我只能找到形狀的多邊形表示,但我不想這樣做;那時我還不如進行光柵化而不是光線追蹤。是否可以使用任意多元函式進行光線追蹤?
這個問題可能是微不足道的,但是我在研究這個問題時沒有發現太多,我對光線追蹤的了解也不夠,無法回答我自己的問題。謝謝你所有的答案。
uj5u.com熱心網友回復:
我聽說過有關如何渲染https://www.imaginary.org/gallery/herwig-hauser-classic或https://www.imaginary.org/gallery/oliver-labs 之類的影像的討論。
射出射線時,多元多項式變為單變數,沿射線方向引數化。現在您將尋找這個多項式的根,更具體地說,是具有最小正實引數的根,對應于相機前面的第一個交點。如果我沒記錯的話,突擊序列在其中發揮了作用。找到根后,多元多項式的梯度將指示法線方向,因此您可以根據該法線進行照明。
我不知道是否有任何通用的光線追蹤軟體可以處理這樣的代數變體。那里有一些專門的軟體。用于上述影像的影像稱為SURFER。還有一個基于 GPU 的版本,我在一次演講中聽到描述。我不太確定他們是否會進行完整的光線追蹤或僅進行光線投射。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/520209.html
標籤:C算法数学光线追踪代数
