2014-03-29 47 views
0

我有一個關於射線追蹤的問題。我可以創造球體,但我不能給一個影子。您必須在命令行(cmd)中編譯此代碼。我們如何才能在這三個球體上投下陰影。當你編譯這個代碼時,你可以看到3個球體和光線也發出光芒。但沒有影子會幫助我。 謝謝我怎樣才能把陰影射線追蹤球體

+1

你是認真的嗎?你在這裏轉儲大量的代碼,期望我們讀取和擴展它?基本想法是在照亮一個點之前添加另一個交叉點測試。該測試檢查從命中位置到光線的射線是否被物體阻擋。 –

+0

對於每個像素,不應將'seenTri'設置爲'-1'?此外,'computeColor'用於球體和三角形,但該功能僅適用於球體。 – pat

回答

2

您需要將場景/射線交叉點邏輯推廣到一個函數中。該功能可用於跟蹤來自相機的光線以及其他物體上的交點。

這個想法是,當一個攝像機光線碰到一個物體時,您會從該交點創建一條新光線到每個光源,然後再次運行光線/場景交點。如果其中一條光線與比光源更近的物體相交,那麼它不會爲該點提供任何能量。

您還可以計算反射光線並遞歸確定其顏色,並用對象的表面屬性進行調製。你會想限制遞歸的深度,所以你不會被困在無限的鏡子大廳裏。