【问题标题】:Calculate image height based on image width in Povray?根据Povray中的图像宽度计算图像高度?
【发布时间】:2021-03-07 16:06:01
【问题描述】:

要渲染 1000 像素宽和 1500 像素高的图像, 我必须从命令行传递 both 变量:

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 会做其他可怕的事情,但也不会改变渲染大小。)

有什么方法可以在脚本中实现,可以从命令行实现什么?

(这里的重点是我想避免将特定场景的正确大小添加到控制台命令的额外步骤。我还必须复制到控制台的任何其他内容都不能解决这个初始问题。有复制正确的大小或正确的因子基本相同。)

【问题讨论】:

    标签: povray


    【解决方案1】:

    您可以读取脚本内部为输出宽度和高度设置的值:这些值位于预设变量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 的调用包装在另一个脚本中,该脚本将为您计算参数。 Artisan 的答案很简单,使用 Bash 可以做到这一点。更复杂的脚本可以添加更多参数,例如可以改进您可以执行的操作的“纵横比”。

    【讨论】:

      【解决方案2】:

      如果你使用 Linux 并且 bash 你就是你的 shell,你可以在你的 .bashrc 中添加一个 bash 函数:

      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。

      【讨论】:

      • 是的,或者我可以在一行中完成:width=1000; height=$(expr $width \* 3 / 2); povray scene.pov Width=$width Height=$height 但这也不是我所说的实用。我想知道这是否可以在 Povray 中完成。
      猜你喜欢
      • 2011-03-28
      • 2019-05-31
      • 1970-01-01
      • 1970-01-01
      • 2017-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-04
      相关资源
      最近更新 更多