旋转pbrt渲染的图像

rotate the image rendered by pbrt

我已经使用 pbrt 来渲染我的场景。我已经在场景文件中指定了视角,并在使用 pbrt 渲染它时,我从那个特定的视角看到了图像。我想知道是否有一种方法可以使用我的鼠标实时旋转pbrt渲染的场景

没有。

要查看是否可行,请渲染一个场景并计算需要多长时间。为了实时获得它,您需要 pbrt 每秒至少渲染几帧,最好是 60 帧!

我认为这不会在 2016 年发生。

或者,您将需要类似 OpenGL 表示的东西来执行实时交互,然后渲染的场景只能显示在顶部(渲染完成后)。截锥体需要匹配才能让您执行此操作,否则用户与之交互的内容将与他们看到的渲染内容不同。

如果你编辑场景文件,听起来你不在编码领域,所以唯一的可能性是编写一些可以显示场景的程序(在 GL 中)并将场景文件信息更新为与当前相机并使用 pbrt 进行渲染。这一切都将花费很长时间(pbrt 每次都需要解析文件,并重新缓冲所有几何图形),因为提供文件意味着 pbrt 不会保存先前状态的任何内容,因此必须构建加速结构等以及渲染场景。每帧!

即使在代码中,pbrt 也不会给你很好的性能。它不是为此而设计的,更像是一个物理上准确的路径跟踪器(顾名思义)。为了让任何东西远程接近实时,你需要一些糟糕的加速结构和更好地控制你正在使用的光模型。如果您真的有兴趣,您可能需要编写自己的渲染器。查看 Metropolis Light Transport (MLT) 和 Vertex connect merge (VCM),它们是使用 Monte Carlo 方法的更多 refined/efficient 模型。

如果希望通过 Cuda 或等价物使用 SIMD,再加上一些相当不错的硬件和很多内核,或者一个不错的 gfx 卡。

[编辑] 另请注意,pbrt 渲染器基于一本书 "Physically Based Rendering (From Theory to Implementation)" ISBN-13:978-0123750792。其中概述了如何实现您自己的 pbrt 版本。