如何建立合适的镜头/相机物镜模型进行路径追踪?


13

在对smallpt进行学习和试验之后,我写了一个小路径跟踪器。

我自己没有写(也不理解)的唯一一件事就是如何计算初始光线并从相机发射它们。我的原则是正确的,但是我正在寻找一些资源来描述如何:

  • 计算射线的初始方向
  • 模拟一个真实的镜头(与针孔相机相反),据说可以实现像景深这样的效果?

不需要最先进的数学和物理学,但如果进行了详尽的解释,则可以。

Answers:


13

针孔相机模型的下一步是薄透镜模型,我们将透镜建模为无限薄的光盘。这仍然是一种理想化,与为真实相机建模还差得很远,但是它将为您提供基本的景深效果。

薄镜型号

上图来自panohelp.com,显示了基本思想。对于图像上的每个点,都有多条光线经过2D透镜表面上的每个点到达该图像点。因此,使用蒙特卡洛生成这样的图像将需要为每条光线拾取像平面上的2D采样点和透镜表面上的独立2D采样点。

要设置的面向用户的参数将是镜头半径(以场景单位为物理半径),它控制聚焦范围的浅浅(较大的镜头=较浅的聚焦范围),以及希望物体处于的距离焦点。

为了使光线进入场景,您可以计算光线离开镜头表面的位置和方向。在此模型中,无需显式模拟像平面和通过透镜的折射。基本上,请以镜头为中心位于相机位置并面向相机的方向定位。

根据图像位置,从相机位置(镜头中心)到场景中构造光线,就像在针孔模型中一样。然后找到它与焦平面的交点。那是来自该图像位置的所有光线都应该会聚的地方。现在,您可以将光线的起点偏移到镜头上随机选择的点,并将其方向设置为朝向会聚点。

您可以通过允许焦平面为平面以外的其他物体或镜头为圆盘以外的其他物体并遵循相同的过程来对此进行概括。这可能会产生一些有趣的,甚至不是相当物理的效果。还可以通过对相机镜头元素进行更真实逼真的模拟来超越此简单模型,但这超出了我的专业知识。


4

参见Kolb等人,《计算机图形的现实相机模型》,SIGGRAPH 95。

但是,请记住,模仿真实世界相机的相机模型不一定是渲染阶段所需的。在视觉效果/后期制作场景中,相机模型引入的模糊/渐晕/失真越多,合成器/色彩计时器的效果就越差。通常最好将其作为后期通过。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.