Arnold to Maya MultiSub Shader

Maya244 字

### 功能:
mtoa多维材质实现方法,以实现将多种材质或者多种纹理通过ID方式分配给不同物体。

### 思路:
aiSwitch是将多种shader切换输出,但aiSwitch的切换方式是以index值为准,比如当输入0时,则输出0的shader,这样我们可以给每个物体添加不同的index值,并将其传递到aiSwitch的index属性上。

### 实现方法:
依次将多个shader连接到aiSwitch的输入中,创建一个`aiUserDataFloat`节点,将`outvalue`输出到`aiSwitch`的`index`上:

![](https://aduvfx-1252404142.cos.ap-beijing.myqcloud.com/uploads/2018/07/微信截图_20180723031451.png)

`aiUserDataFloat`节点上的attribute上填写传递的属性名称,比如`index`。

![](https://aduvfx-1252404142.cos.ap-beijing.myqcloud.com/uploads/2018/07/20180723031604.png)

选择物体的Shape节点,并给其添加一个浮点类型的属性,mtoa对自定义属性命名格式如下:

```
mtoa_constant_
```

在这里,我们建立一个`index`的属性名称,则为`mtoa_constant_index`。数据类型为浮点,其它默认:

![](https://aduvfx-1252404142.cos.ap-beijing.myqcloud.com/uploads/2018/07/20180723031653.png)

创建属性完毕后会在物体的Shape节点下多出`index`属性:
![](https://aduvfx-1252404142.cos.ap-beijing.myqcloud.com/uploads/2018/07/20180723031711.png)

给每个物体设置好`index`的编号,最后渲染就能得到对应的shader结果:
![](https://aduvfx-1252404142.cos.ap-beijing.myqcloud.com/uploads/2018/07/20180723031749.png)

admin
博学之,审问之,慎思之,明辨之,笃行之。
OωO
开启隐私评论,您的评论仅作者和评论双方可见