要呈现1000 an宽和1500 an高的图像,我必须从命令行传递两个变量:
povray scene.pov Width=1000 Height=1500 (或povray scene.pov +W1000 +H1500)
只写一篇
povray scene.pov Width=1000 (或povray scene.pov +W1000)
并根据脚本中的宽度计算高度。
人们可能会认为,解决方案应该如下所示:#declare Height = 1.5 * Width;
但这行不通。(Povray不知道变量Width。)
并且在脚本中定义Width和Height不会改变输出大小。(或者其他任何事情)
(使用image_width和image_height会做其他糟糕的事情,但也不会改变呈现大小。)
在脚本中有什么方法可以从命令行实现什么呢?
(这里的要点是,我希望避免将特定场景的正确大小添加到控制台命令的额外步骤。我还必须复制到控制台的任何其他东西都不能解决这个最初的问题。必须复制正确的大小或正确的因子基本上是相同的。
发布于 2021-03-23 17:30:49
您可以从脚本内部读取输出宽度和高度的设置值:这些值位于预置变量image_width和image_height中。博士:https://www.povray.org/documentation/view/3.6.1/228/
不幸的是,没有办法从脚本中设置它们中的任何一个--您只需检查它们的值,并使用它们来设置摄像机参数(例如,获得最终图像的正确的纵横比)。
另外,检查相关问题:POV-Ray: Setting output resolution or width/heigh ratio within the script \
(当它询问高宽比时,这个不是重复的)。
尽管如此,唯一的出路似乎是将对povray的调用封装在另一个脚本中,该脚本将为您计算参数。工匠的回答有很多种使用Bash的方法。一个更复杂的脚本可以添加更多的参数,比如一个“纵横比”,它可以提高你的能力。
发布于 2021-03-07 17:16:13
如果您正在使用Linux,而bash是您的shell,则可以将bash函数添加到您的.bashrc中。
function pov() {
h=$(expr $2 \* 3 / 2)
povray $1 +W$2 +H$h $3 $4 $5 $6 $7 $8 $9
}如果你进入
pov scene.pov 1000它将执行:
povray scene.pov +W1000 +H1500第一个参数必须是您的.pov文件,第二个参数必须是没有+W的宽度。
https://stackoverflow.com/questions/66518538
复制相似问题