POV-Ray:在脚本中设置输出分辨率或宽高比

9
我有一个生成一堆 *.pov 文件的代码,用于使用 POV-Ray 进行可视化。不幸的是,它们具有不同的宽高比(即宽度/高度)。这些信息以上下向量的形式包含在脚本中。然而,当我渲染一个没有任何额外参数的脚本,即通过 povray test.pov 命令,POV-Ray 强制使用标准的 4/3 宽高比。因此,图像会变形。
问题:是否有任何方法可以请求特定的宽高比或分辨率?
3个回答

7
这是我的做法(抱歉回答晚了):
在.pov文件中,指定“up”和“right”关键字:
camera {
   up <0,9,0>
   right <16,0,0>  // right,up -> 16:9
}

此外,在 .ini 文件中,我还指定了输出的高度和宽度:
Width=1600
Height=900

如果您不想使用 .ini 文件,您也可以在命令行中指定高度和宽度:

povray -H900 -W1600 ...

也许这更接近于您的脚本解决方案。

3
@Fabian所说,您可以使用image_widthimage_height。以下假设像素是正方形。然后,任何+H+W设置都将在保持高度不变的同时裁剪图像的边缘:
camera {
    location <0, 2, -3>
    look_at <0, 1, 2>
    right image_width/image_height*x
}

我个人认为,为什么像这样的东西不是默认设置呢?因为大多数人关心的是像素的形状而不是目标屏幕的纵横比。例如,我可能正在制作一张图像,它只应该填充屏幕的一小部分,但我的像素是正方形,那么上述方法就可以使用了。或者如果您的像素宽度是高度的两倍,只需使用 right 2*image_width/image_height*x (具有这种像素的显示器会有效地沿着X轴拉伸图像,因此如果在具有正方形像素的显示器上查看该图像,则会看起来沿着X轴被挤压)。

1

根据文档: http://www.povray.org/documentation/view/3.6.0/153/

您可以在相机块中使用“right”关键字设置纵横比。设置图像尺寸的正确纵横比的一般方法是:

camera
{ right x*ImageWidth/ImageHeight
(other camera settings...)
}

不幸的是,当我输入 up y * 3.5/5.0 以获得 5/3.5 的宽高比时,调用 povray test.pov 渲染出来的是 800x600,这个尺寸的宽高比为 4/3,因此我的图像被拉伸了。 - ANSI C Mastah
请注意,有两个变量:image_widthimage_height,它们将具有正确的值。您不需要在其中放入值。 - Fabian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接