我正在开发一个基于optix的项目。我需要使用渐进式光子映射,因此我尝试使用样本中的渐进式光子映射,但未实现透明度材料。 我搜索了很多,并试图了解其他包含透明材料的样本(例如Glass,Tutorial,whitted)。最后,我得到了如下解决方案;
通过以下你也可以找到该部分的代码,我不明白为什么我得到新生成的光线的黑色(.0f,.0f,0.f)(上面的第3部分)。
optix::Ray ray( h, t, rtpass_ray_type, scene_epsilon );
HitPRD refr_prd;
refr_prd.ray_depth = hit_prd.ray_depth+1;
refr_prd.importance = importance;
rtTrace( top_object, ray, refr_prd );
result += (1.0f - reflection) * refraction_color * refr_prd.attenuation;
任何想法都将受到赞赏。 请注意,使用函数rtTrace()后, refr_prd.attenuation 应包含一些颜色。我已经提到了反射和reflaction_color来帮助你更好地理解这个过程。你可以简单地忽略它们。
答案 0 :(得分:1)
有许多方法可以诊断您的问题。