2017-05-04 4 views
1

私は、選択されたシェーダを取るプラグインを作成しようとしていて、選択したタイプから別のシェーダを作成しようとしています(すべてのシェーダのリストから)。異なるシェーダーの2つの「バンプ」属性を比較する方法はありますか?

新しいシェーダを作成してオブジェクトに置き換えるだけでなく、すべての属性を再接続しようとしていますが、そこには本当の問題があります。

ソースシェーダがPhongで、ターゲットタイプがBlinnの場合、共通の属性をすべて再接続するのに問題はありません(ターゲットシェーダのすべての属性をループ内にループでリストしました。類似のものがあれば接続する)。

BlinnPhongの場合、バンプ属性の名前は.normalCameraです。

しかし、私の問題は次のとおりです。PxrDisneyため

  • 、例えば、バンプ属性の名前は: .bumpNormal

  • PxLMPlasticの場合、バンプの名前は.diffuseNnです。

この問題を回避する方法のいくつかのアイデアはありますか?

答えて

0

これはあなたです - それはMayaです。

残念ながら、それを行う信頼できる方法はありません。 2つのシェーダが同じ機能に同じ名前を使用することや、同様の名前の属性を持つ2つのシェーダが同じ方法でそれらを使用するという保証はありません。

属性のマッピングを維持し、それを使って最も近い一致を見つけることはできますが、それは常に近似値です。

関連する問題