我正在使用Povray渲染图像,然后使用LaTeX / TikZ文件添加标签。
目前,我的操作方式是仅手动确定要素的位置。这行得通,但是这意味着我每次更改图像的视角(即移动相机)时都必须重做一次。因此,我考虑过自动生成这些职位。
当然,现在原则上我可以重新执行Povray所做的所有摄影机计算,但是与手动确定坐标相比,这可能甚至需要更多的精力。但是考虑到Povray无论如何都必须进行这些计算,我想知道是否有一种简单的方法来获取该数据,因此我可以在渲染过程中将其输出,然后在LaTeX文件中使用该数据。
为了澄清,我不是在谈论镜像或折射之后的位置;只是一个问题,如果我的场景在给定点上仅由一个小物体组成,那么根据当前的相机设置,该物体将出现在渲染图像中的位置。
答案 0 :(得分:1)
那是不可能的-PovRay没有任何功能可以“读取”对象的起始位置或范围(我过去曾尝试放置文本对象)。
当人们停止思考时,这是有道理的-POVRay毕竟是关于光线追踪的:因此,只有渲染了一个像素之后,POVRay才会“知道”该像素是否受特定对象的影响。此时,将任何参数重新插入场景描述文件显然为时已晚。
好吧,与我尝试在场景内部定位对象不同,您不希望POV自己使用位置数据-因此,某些POVRay输出或连接到某些输出可能会给一个提示对象在哪里。
((/ me暂停以最大的详细程度渲染球体-无济于事)
因此,在检查文档时,有一些用于“生成直方图”的选项-将输出在每个像素上花费的时间。显示对象的像素上的时间应该更长。但是,文档指出“并非所有POVRay版本都可以生成直方图,这将取决于操作系统和所呈现的文件类型”。我无法生成直方图输出-Povray 3.7在直方图命令行选项上给了我解析错误,尽管我认为直方图的CSV输出文件可以为您工作。
否则,我认为如果将对象放置在否则为空的文件中,则比重新创建所有相机计算更好的方法是使用外部脚本,该脚本可以检查图像并为您找到对象坐标。 Python将是一种不错的语言,因为它有很多可以反思图像的库,甚至可以处理LaTex文件并通过模板将坐标嵌入其中。