【发布时间】:2018-06-05 14:07:13
【问题描述】:
结果出现一些错误,出现波纹墙,正常情况下应该没有波纹,应该是简单的漫反射材质,但现在有波纹,但我找不到问题。请帮助我,谢谢。
路径跟踪代码:
if (r.depth >= max_ray_depth)
return L_out;
float pdf;
Vector3D w_in;
Spectrum f = isect.bsdf->sample_f(w_out, &w_in, &pdf);
double cos_theta = std::max(0.0, w_in[2]);
if (cos_theta > 0.0 && pdf > 0.0 )
{
Vector3D pdir = (o2w * w_in - hit_p ).unit();
pdir.normalize();
Ray pr(hit_p, pdir, int(r.depth + 1));
L_out += (f*cos_theta*trace_ray(pr)*(1.0/pdf));
}
【问题讨论】:
-
你能贴出实际的sn-p代码,而不仅仅是一张图片吗?
-
对不起,我发布了代码。
-
您能否指定更多内容,而不是“它有错误”。什么不起作用?它会崩溃吗?您能否提供一些案例的输入、接收输出和预期输出?
-
然后编辑问题来说明这一点。另外,将所有代码发布为代码,而不是图像。
-
这个问题应该被关闭,因为它没有在问题中提供代码作为文本。如果您的代码太大,请提供一个较小的示例来重现问题。
标签: graphics raytracing