如何用Python或MEL保存Maya Arnold RenderView中已渲染的图像?
如何保存Arnold RenderView中的渲染图像(Python/MEL)
你之前的代码没生效,核心问题是指定的renderView是Maya默认渲染器的窗口,Arnold的RenderView对应的编辑器名称是arnoldRenderView,换对编辑器名称就能正常保存了。
Python 实现代码
import maya.cmds as cmds # 目标编辑器为Arnold RenderView editor = "arnoldRenderView" # 先检查编辑器是否存在,避免报错 if cmds.renderWindowEditor(editor, exists=True): # 写入图像,路径用正斜杠或双反斜杠都可以 cmds.renderWindowEditor(editor, e=True, writeImage="C:/test_arnold.jpg")
MEL 实现代码
string $editor = "arnoldRenderView"; if (`renderWindowEditor -exists $editor`) { renderWindowEditor -e -writeImage "C:/test_arnold.jpg" $editor; }
额外技巧:渲染完成自动保存
如果想让程序在Arnold渲染完成后自动保存图像,可以注册Arnold的渲染回调:
import maya.cmds as cmds import maya.mel as mel def auto_save_arnold_image(*args): editor = "arnoldRenderView" if cmds.renderWindowEditor(editor, exists=True): cmds.renderWindowEditor(editor, e=True, writeImage="C:/auto_saved_arnold.png") # 注册渲染完成后的回调 mel.eval('arnoldRenderCallbacks -addCallback "auto_save_arnold_image" "postRender"')
注意:执行保存命令前要确保渲染已经完成,否则可能保存空白图像。
内容的提问来源于stack exchange,提问作者Tom
相关产品推荐
相关产品推荐

