首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >光线跟踪:仅使用单一光线,而不是反射和折射光线

光线跟踪:仅使用单一光线,而不是反射和折射光线
EN

Stack Overflow用户
提问于 2012-03-28 18:58:46
回答 2查看 781关注 0票数 5

我目前正在尝试理解Kevin Beason (smallpt:http://www.kevinbeason.com/smallpt/)开发的光线跟踪器,如果我正确理解了代码,他会随机选择反射或折射光线(如果表面既反射又折射)。

第71-73行:

代码语言:javascript
复制
return obj.e + f.mult(depth>2 ? (erand48(Xi)<P ?   // Russian roulette
radiance(reflRay,depth,Xi)*RP:radiance(Ray(x,tdir),depth,Xi)*TP) :
radiance(reflRay,depth,Xi)*Re+radiance(Ray(x,tdir),depth,Xi)*Tr);

有人能解释一下只投射一条光线而不是投射两条光线的缺点吗?我从来没有听说过这种技术,我很好奇它的权衡是什么,因为它可以极大地降低复杂性。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-28 19:15:05

这是一台蒙特卡洛光线跟踪器。它的优点是你不会产生成倍增长的射线--在一些简单的几何图形中可能会出现这种情况。缺点是,您需要对大量样本进行平均。通常,您需要采样,直到与真实值的预期偏差“足够低”。计算出需要多少样本需要一些统计数据--或者你只需采集大量样本。

票数 3
EN

Stack Overflow用户

发布于 2012-03-28 19:07:53

据推测,他依赖于超采样像素,并相信平均颜色将大致正确,尽管不是那么准确。

即通过一个像素发射4条光线,平均2条光线被反射,2条光线被折射。

将它们组合在一起以获得反射和折射的光线的近似值。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9906093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档