首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >路径追踪中的视场深度:我该如何处理二次射线?

路径追踪中的视场深度:我该如何处理二次射线?
EN

Computer Graphics用户
提问于 2016-12-03 06:51:09
回答 1查看 3K关注 0票数 6

如何在路径跟踪器中实现场的深度?我读过这个文章,它解释了一切背后的理论&我已经很好地理解了这种效果需要达到的效果,基于以前使用DSLR的经验,但是我对如何编写所有东西感到有点困惑,尽管我理解了大部分涉及的计算(在阅读了上面链接的文章之后)。

我知道如何计算焦点、焦距和二次射线。但我搞不懂如何把这一切结合起来,创造出所需要的“模糊”。我在网上没有发现多少,所以我希望这里的人能用一些代码来解释这个问题。

有人能给我看看他们的实施情况吗?

EN

回答 1

Computer Graphics用户

回答已采纳

发布于 2016-12-03 15:23:44

缺失步骤

如果你已经知道如何产生第二射线,那么你已经掌握了困难的部分。你现在要做的就是找到这个次级射线所产生的颜色。这是完全相同的过程,使用初级射线寻找颜色,在基本射线追踪。

在对大量的次级射线重复这一过程之后,所有这些颜色的平均值就是你分配给所讨论的像素的颜色(你不使用初级射线--它的唯一目的是产生次级射线)。这是与基本射线追踪的唯一区别。

为什么要工作

当我试图理解这一点时,我个人的困难是,我试图理解光线是如何从镜头上的不同点返回到眼睛/摄像机的。需要理解的是,这只是镜头的近似值,光线根本不需要考虑眼睛/照相机。

镜头正被一个圆盘近似。

如果你直视某个点(焦点),所有这些不同的次级射线都向你展示了你从光盘上的不同点看到的东西。

  • 对于焦点上的对象,所有这些不同的视点都会在对象上看到相同的点,并且对象将看起来清晰地定义。
  • 对于焦点后面的对象,所有这些不同的观点都会看到物体上略有不同的位置,而有些视点会忽略物体,看物体的侧面是什么。物体的边缘将与其一侧的任何物体的颜色混合。
  • 对于焦点前面的物体,不同的视点会看到物体上略有不同的位置,产生模糊的边缘。

如果一条初级射线在焦距处撞到一个物体,但是有一个较近的物体,它并不是完全阻挡在路上,但几乎,那么一些次射线会在到达焦点之前击中更近的物体。这将给更近的物体一个模糊的边缘,使焦点的物体部分模糊,即使物体本身是清晰的焦点。

所有这些都是我们所期望的。对于这个层次的解释,这模仿了一个真正的镜头的效果,根本不必考虑折射。

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

https://computergraphics.stackexchange.com/questions/4344

复制
相关文章

相似问题

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