Keyshot脚本开发-渲染环境光遮蔽

作者:炫云 2023-11-29

渲染环境光遮蔽 (Render Ambient Occlusion) 将渲染场景的环境光遮蔽通道。

脚本工作原理:

在大多数脚本的顶部,我们首先导入外部 Python 库:

import os, re.

一:创建 main 函数,定义属性,并在用户提示符中显示它们。

使用 lux.getSceneInfo 函数获取场景信息。

在第 10 行和第 17 行之间,lux.DIALOG 函数定义以下属性:

输出目标文件夹,文件夹。

输出文件的名称,名称。

图像尺寸、宽度和高度。

渲染时间由用户定义,时间。

无论用户是否要将图像发送到队列,队列。

无论用户是否希望在添加作业后处理队列,都要处理。

在第 18 行到第 21 行中,使用 lux.getInputDialog 打开实际的用户提示窗口。在第 21 行,“id”标签调用最近的输入值。

二:检查错误,如果出现错误,则和平退出。将用户输入分配给相应的变量。请参阅下面的逐行代码细分。

如果输出文件夹无效或留空,请提供错误消息。

如果文件名留空,则给出错误消息。

使用 lux.getEnvironmentImage 获取当前环境映像,并将其分配给变量 env。

使用 lux.getMaterialMapping 从模型中获取当前材料,并将其分配给变量 mmap。

使用 lux.setEnvironmentImage 将环境更改为“All White.hdr”。

第 34 行和第 35 行使用 lux.getSceneTree 遍历场景树中的所有部分,并使用 lux.setMaterial 将“哑光白”材质分配给所有部分。

将输出路径分配给 path 变量。

将所需的宽度分配给 width 变量。

将所需的高度分配给高度变量。

将所需的渲染时间分配给时间变量

创建名为 queue 的布尔表达式,并根据用户的选择将其设置为“True”或“False”。

将布尔表达式命名为 process,并根据用户的选择将其设置为“True”或“False”。

三:设置渲染选项。

使用 lux.getRenderOptions 将渲染选项分配给 ropts 变量。

使用 setMaxTimeRendering 变量将渲染选项设置为“max time”。

如果用户将 “添加到队列 ”设置为 “True”,那么它将被添加到内部KeyShot队列中。

四:渲染图像并设置所有先前的参数备份。

使用 lux.renderImage 函数渲染图像。

将旧环境应用于场景。

将旧材料应用回模型。

对于第 53 行到第 55 行,如果用户请求处理队列,请这样做。

调用 main 函数。