2011-10-01 109 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