Povray 中是否有一种简单的方法来计算对象可能出现在渲染图像中的位置?

Is there an easy way in Povray to calculate where an object might appear in the rendered image?

我正在使用 Povray 渲染图像,然后使用 LaTeX/TikZ 文件添加标签。

目前我的做法是手动确定特征的位置。这行得通,但意味着我每次更改图像的视角(即移动相机)时都必须重做。因此我考虑自动生成这些位置。

现在当然原则上我可以重新实现 Povray 所做的所有相机计算,但这可能比手动确定坐标更费力。但鉴于 Povray 无论如何都必须进行这些计算,我想知道是否有一种简单的方法来获取该数据,因此我可以在渲染期间输出它,然后在我的 LaTeX 文件中使用该数据。

澄清一下,我不是在谈论像镜像或折射这样的事情之后的位置;这只是个问题,如果我的场景在给定点只包含一个小物体,那么在给定当前相机设置的情况下,该物体会出现在渲染图像中的哪个位置。

这是不可能的 - PovRay 没有任何功能 "reading" 对象开始的位置或范围(我过去曾尝试定位文本对象)。

当一个人停下来思考它时,它是有道理的 - POVRay 毕竟是关于光线追踪的:因此,只有在渲染一个像素后,如果该像素受到特定对象的影响,才执行 POVRay "know"。此时将任何参数重新插入场景描述文件显然为时已晚。

好吧,与我试图在场景本身内定位对象不同,您不希望位置数据被 POV 本身消耗 - 所以可能某些 POVRay 输出或连接到某些输出可能提示对象在哪里。

(/me 暂停以使用最大详细度渲染球体 - 无济于事)

因此,在查看文档时,有 "generating an histogram" 的选项 - 这将输出在每个像素上花费的时间。显示对象的像素上的时间应该更长。但是,文档显示 "not all POVRay versions can generate histograms, that will depend on the operating system and the file type being rendered"。我无法生成直方图输出 - Povray 3.7 在直方图命令行选项上给了我解析错误,尽管我认为直方图的 CSV 输出文件对你有用,如果你能让它工作的话。

否则,如果您的对象被放置在一个空文件中,我认为比重新创建所有相机计算更好的方法是使用可以检查图像并为您找到对象坐标的外部脚本。 Python 将是一种很好的语言,因为它有很多库可以内省图像,甚至可以处理您的 LaTex 文件并通过模板将坐标嵌入其中。