2014-03-30 71 views
0

我有兩個光源,三個球體和兩個三角形。球體放置在兩個三角形上。 我alrady確實intersectSphere和computeColorSphere函數。 我以某種方式開始實現intersectTriangle和computeColorTriangle函數。 它應該與Sphere功能有什麼不同? 以及如何在三角形平面上實現球體的陰影? http://i60.tinypic.com/a3zg2w.jpg射線追蹤球體三角形陰影

+0

「它應該和球體功能有什麼不同?」:相當神祕的問題。 –

回答

2

計算投射陰影如下完成:當您用光線照射表面並在其中應用光照模型時,您添加所有光源的貢獻(就像您一樣);但是您需要通過將來自點的二次射線投射到源頭來檢查光源是否沒有障礙。如果您發現障礙,請忽略此來源的貢獻。

非常類似地,您可以通過在反射方向(入射角=反射角)上投射次級光線並觀察是否碰到另一個表面來實現反射。

+0

我生成射線到所有像素的函數:Ray generateRay(攝像機凸輪,int i,int j)..我如何創建從這些像素到光源的輔助光線? – cmnl

+0

您必須重寫光線投射功能以使其更通用,並允許從任何點和任何方向進行工作,而不僅僅是從原點到像素。這只是一個稍微不同的計算射線方程的問題。 –

+0

@ user2932645完成後請更新圖片;-) –