2011-10-01 104 views
3

我想在c#(從python移植)中做一個簡單的光線追蹤任務。 我已經設法使示例代碼顯示正確的圖片,但是當我嘗試將其適應於我的任務時出現了問題。錯誤的光線追蹤

如果我知道發生了什麼問題,我會發布一些我認爲可能有用的代碼,但我不知道從哪裏開始。

基本上我的作業輸出是這樣的:

http://i56.tinypic.com/2vcdobq.png

隨着鏡面高亮顯示,並

http://i53.tinypic.com/2e1r38o.png

有了它關閉。 它假設看起來是這樣的:

http://i56.tinypic.com/2m7sxlh.png

我的Phong光照計算公式如下:

​​

我從工作示例代碼複製它,所以我知道它的工作原理。

任何想法都會很棒,因爲我很難過。

回答

4

您有兩個相同算法的實現。你聲稱他們產生不同的結果。發現錯誤似乎很簡單:在兩個調試器中同時運行兩種算法。仔細觀察這兩個程序的狀態。當他們產生不同的程序狀態時,就有你的錯誤。

0

它不是那麼簡單,因爲一個實現是在python中,另一個在c#中。 原來有兩件事是錯誤的。

首先,在我的點類中,我的一個重載操作符是錯誤的。 (運營商 - 在2分,我有它返回向量(p1.x - p2.x,p1.y - p2.y,p1.x - p2.x)...最後一對應該是pz的地方。

其他錯誤我提出是在我保存的位圖圖像,我得到混合起來的列和行,在x和y的條款。(西= X,行= Y)

希望這幫助遇到像我這樣的隨機問題的其他人:P

0

在寫我的光線跟蹤器時,我已經學習了這篇文章以便對Phong照明有一個很好的理解 所以看看這裏,我相信你會得到一個想法:

www.gamedev.net/page/resources/_/technical/graphics-programming-and-theory/phong-illumination-explained-r667