使用灯光编辑器创建插件灯光

可以在“灯光编辑器”(Light Editor)中创建所有插件灯光。加载插件之后,Maya 会自动将插件灯光添加到带有默认图标的“灯光编辑器”(Light Editor)

稍后,您可以在场景中创建插件灯光,方法为:单击灯光图标;或者,通过标记菜单在一个组上单击鼠标右键,就像处理 Maya 本地灯光一样。

只要插件节点使用灯光分类字符串,系统就会自动添加所有插件灯光。

若要验证插件节点是否使用灯光分类字符串,请运行以下 MEL 命令:

getClassification <nodeType>

例如,getClassification pointLight 将返回 drawdb/light/pointLight:light

返回的字符串中的 light 表示灯光分类。

drawdb/light/<灯光类型> 表示 Viewport 2.0 灯光分类。如果插件使用现有的内部分类之一(例如,drawdb/light/directionalLight),则 Maya 将在视口中自动使用相应着色器进行照明,并使用内部 Viewport 2.0 几何体求值器绘制 UI。

注: 如果在加载插件时已打开“灯光编辑器”(Light Editor),则必须先关闭并重新打开编辑器以刷新其显示,然后才能看到插件灯光创建图标和标记菜单项。

在灯光编辑器中自定义插件灯光的显示

创建模板文件以自定义编辑器中显示的插件灯光属性、创建 MEL 命令和使用的图标。

可以进行自定义,但这不是硬性要求。如果未提供图标,则将使用默认图标。如果未提供 MEL 命令,则将执行命令

shadingNode -asLight <lighttype>

以创建光源。

示例模板文件位于安装目录的 ../scripts/AETemplates 文件夹中并带有前缀 LE;例如,LEspotLightTemplate.mel(对于聚光灯)。

插件示例

开发人员工具包示例 apiDirectionalLightShape 是一个样例插件,允许使用 light 以及内部 drawdb 分类创建插件节点。节点属性已与 Maya 的点光源、平行光和聚光灯类型相匹配。示例灯光编辑器模板随插件提供(例如,LEapiDirectionalLightShapeTemplate.mel),并位于安装目录的 ../scripts/AETemplates 文件夹中。

以下示例演示了一个已创建所有这三类插件灯光节点的场景。每个灯光均使用不同的属性和多个自定义图标列出。其中两个插件灯光被选中,如视口中所示。

“灯光编辑器”(Light Editor)显示各种模板中列出的所有属性对应的列。但是,仅当特定灯光类型存在某个属性时,才能为灯光修改该属性。在本示例中,“发射漫反射”(Emit Diffuse)是“灯光编辑器”(Light Editor)中的一列,因为它位于 LEapiDirectionalLightShapeTemplate.mel 模板文件中。同时,尽管“发射漫反射”(Emit Diffuse)不在 LEdirectionalLightTemplate.mel 模板文件中,但由于平行光具有发射漫反射属性,因此仍可通过“灯光编辑器”(Light Editor)为本地平行光编辑该属性。