可以在“灯光编辑器”(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。
创建模板文件以自定义编辑器中显示的插件灯光属性、创建 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)编辑本地平行光的此属性。