有没有办法比较不同着色器的两个'凹凸'属性?

时间:2017-05-04 22:55:02

标签: shader maya mel renderman

我正在尝试创建一个插件,该插件使用选定的着色器并从所选类型(从所有着色器列表中)创建另一个着色器。

创建一个新着色器并将其命名并将其替换为对象并不是一个问题,但我也试图重新连接其所有属性,并且我有一个真正的问题。

如果源着色器是Phong且目标类型是Blinn,则重新连接所有公共属性没有问题(我在循环中用循环列出了目标着色器的所有属性,我对它们进行了比较,如果有类似的话,我们会尝试连接。

对于BlinnPhong,bump属性的名称为:.normalCamera

但我的问题是:

    例如,对于PxrDisney
  • 命名为bump属性: .bumpNormal

  • 对于PxLMPlastic
  • ,凹凸被命名为:.diffuseNn

有关如何绕过此问题的一些想法?

1 个答案:

答案 0 :(得分:0)

你不是 - 它是玛雅。

不幸的是,没有可靠的方法可以做到这一点。不能保证两个着色器将使用相同的名称用于相同的功能,或者具有相似命名属性的两个着色器将以相同的方式使用它们。

您可以尝试维护属性的映射并使用它来查找最接近的匹配,但它始终是近似值。