gpt4 book ai didi

c# - 光线追踪出了问题

转载 作者:行者123 更新时间:2023-11-30 15:42:20 26 4
gpt4 key购买 nike

我正在尝试使用 c#(从 python 移植)进行简单的光线追踪分配。我已经设法使示例代码显示正确的图片,但是当我尝试使其适应我的任务时出现了问题。

如果我知道出了什么问题,我会发布一些我认为可能有用的代码,但我不知道从哪里开始。

基本上我的作业输出是这样的:

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

开启镜面高光

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

关闭它。它应该看起来像:

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

我的 Phong 照明公式如下所示:

Colour I = diffuse_colour;
Vector L = light.vector;
Vector N = normal; //FIXME!
Colour Is = diffuse_colour * light.intensity;
Colour Ia = new Colour(1,1,1) * light.ambient;
Colour Kd = specular_colour;
Colour Ka = Kd;
double Ks = sharpness ?? 0.4;
Vector H = Vector.unit(view + L);

//Phong Illumination
//I = KaIa + KdIs max(0,L.N) + KsIs (H.N)^n

I = Ka * Ia
+ Kd * Is * Math.Max(0, L.dot(N))
+ Ks * Is * Math.Pow(H.dot(N),200); //FIXME?

我从工作示例代码中复制了它,所以我知道它有效。

任何想法都会很棒,因为我很难过。

最佳答案

您有同一算法的两个实现。你声称它们产生不同的结果。找出错误似乎很简单:同时在各自的调试器中逐步运行两种算法。仔细观察两个程序的状态。当它们产生不同的程序状态时,您的错误就出现了。

关于c# - 光线追踪出了问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7617524/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com