一半君的总结纸

听话只听一半君

#65 如何使用 MEL 读取和设置 Render Globals?

大部分设置都在 “defaultRenderGlobals” node 里. 通过查询这个node的属性就可以得到render的设置. 当然, 你得首先知道要查询的属性的名字, 还有属性的值所代表的含义.

首先, 使用 listAttr 命令可以得到这个node上所有的 attributes . 下面的 MEL 会返回一个排过序的 list:

string $globals[] = `listAttr defaultRenderGlobals`;
$globals = `sort $globals`;
print $globals;

你可以打开 Script Editor 的”Echo All Commands” ,然后在 Render Globals window里随便改个什么设置,这样你就可以知道怎么改相应的属性了.

当搞清楚所有的 settings 对应什么属性之后,你就可以用 getAttr 和 setAttr 来读取或者设置”defaultRenderGlobals” node上的属性,从而改变render globals设置了.

分辨率(Resolution)

Render Globals 里的resolution设置 是从”resolution” node 来的,对应的属性是 ‘.resolution’:

listConnections defaultRenderGlobals.resolution;
// Result: defaultResolution //

你可以这样查询 “resolution” node的 width 和 height :

getAttr defaultResolution.width;
// Result: 640 //

getAttr defaultResolution.height;
// Result: 480 //

找到其他有可能的resolutions:

ls -type "resolution";
// Result: defaultResolution resolution1 //

getAttr resolution1.width;
// Result: 320 //
getAttr resolution1.height;
// Result: 240 //

下面的 tip 是由 Mark Adams (Pixar Animation Studios) 和John Cassella (Red Paw FX)提供的. 原出处是 Highend3D Maya 论坛, 我把讨论内容总结在下面了,已得到原作者许可.

Maya 把所有可选的分辨率存在 global variable $gImageFormatData里, 他是在这里定义的:

C:/Program Files/Autodesk/Maya2014/scripts/others/imageFormats.mel

你可以编一个 script 清空这个 global variable 然后添加你自己的分辨率:

"<Preset Name>   <width> <height> <aspect>"

你也可以把自定义的 resolutions 保存在 “userImageFormats.mel“里. 使用方法见帮助 “Rendering: Render Globals, Resolution Presets”.

可渲染的相机(Renderable Cameras)

renderable camera 的设置不在”defaultRenderGlobals” node上, 而在每个camera的‘.renderable’ attribute里. 你必须查询每个 Camera to 才能知道哪些是 renderable的; 比如.

int $isRenderable = `getAttr perspShape.renderable`;

MEL Tip(估计已经过时了)

如何得到老的 Render Globals window ( Maya2.0 以前):

string $globals[] = `ls -head 1 -renderGlobals`;
showEditor $globals[0];

致谢

Mark Adams, Pixar Animation Studios

John Cassella, Red Paw FX

Wednesday, August 29, 2001

Advertisements

2 responses to “#65 如何使用 MEL 读取和设置 Render Globals?

  1. Funky_QiQi 四月 9, 2016 @ 8:42 下午

    求助 怎么用python实现maya2014中 窗口>渲染编辑>渲染设置 里面图像大小分栏中的分辨率设置?

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s

%d 博主赞过: