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

可以在“灯光编辑器”(Light Editor)中创建所有插件灯光。加载插件之后,Maya 会自动将插件灯光添加到“灯光编辑器”(Light Editor)并加上默认图标。然后,可以通过单击灯光图标在场景中创建插件灯光。

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

若要验证插件节点是否使用灯光分类字符串,请运行以下 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)显示各种模板中列出的所有属性对应的列。但是,仅当 xml 模板文件中存在特定灯光类型的属性时,才能为灯光修改该属性。在此示例中,“发射漫反射”(Emit Diffuse)是“灯光编辑器”(Light Editor)中的一列,因为它位于 LEapiDirectionalLightShapeTemplate.mel 模板文件中。同时,由于“发射漫反射”(Emit Diffuse)不在 LEdirectionalLightTemplate.mel 模板文件中,因此无法通过“灯光编辑器”(Light Editor)编辑本地平行光的此属性。