Maya GenericBRDF binormal

先日、コメントにてbinormalについてのご質問を受けました。
コメントに返信するのが面倒なので、すみませんが、この記事を返信に変えさせて頂きます。

 

そもそも3D人さんに助言を頂き、勝手な解釈でやってみただけなので、
それが本当の手順かどうかは知りません。
binormalを検索して調べてみると、いくつか数式が見つかりました。
シェーダで使われる関数なのだろう。と勝手に予測し、
それならば、色々と機能のあるGenericBRDFであればその機能も付いているのではないか?
との予測で進めただけです。結果繋がって見えたので個人的に良しとしました。

 

で、Mayaでの再現方法ですが、MayaでCgシェーダを使用するにはプラグインをロードする必要があります。
メニューバー、
ウィンドウ>設定/プリファレンス>プラグインマネージャ
2013_04_14Image_01
図だとちょっとわかりづらいですが、「cgfxShader.mll」にチェックを入れます。

 

で、ハイパーシェードを開くと、「CgFX シェーダ」が使えるようになっております。
2013_04_15Image_01
それをモデルにアサインすると、
2013_04_15Image_02
モデルがピンク色に変わります。
シェーダのアトリビュートを開き、「CgFX File」と書かれたところにあるフォルダのアイコンをクリックし、
GenericBRDFを読み込みます。二種類存在しますが、「GenericBRDF_1-1.cgfx」
を使用してみました。
2013_04_15Image_03
ファイルを読み込むとモデルが真っ白になります。
いくつかノードがぶら下がっておりますが、多くはファイルを正しく読み込めていません。
というかそもそもファイルが存在しておりません。
以前記事にした時に必要なファイルをアップしたと思いますが、特に必要ありません。

 

2013_04_15Image_04
で、ディフューズマップ、ノーマルマップを読み込みそれぞれサンプラーに接続します。
「BRDFSampler2」にグレースケールの画像を入れると、ライティングのような効果が現れます。
それらのグレースケール画像は解凍した「GenericBRDF」のフォルダにあります。

 

パラメータを適当に設定します。
スペキュラマップや、スペキュラパワーマップがないので、適度な設定ができておりません。
で、binormalですが、アトリビュートの一番下にあります。
「TexCoord」を使用するべきUVセットに変更。この場合「uv:map1」。
その他も同じように、「tangent:map1」「binormal:map1」と変更してやると、
タンジェントのノーマルが綺麗に繋がります。
2013_04_15Image_05
 

くどいようですが、これが本当のやり方なのかは知りません。
恐らく数式をHLSLやGLSLに組み込めば同じようなことはできるのだと思います。

コメント/トラックバック (2件)

  1. のコメント:

    お礼が大変遅くなり申し訳ありません。

    わざわざ記事にしていただき
    とても丁寧な解説ありがとうございました。
    仕事が一段楽したら、自分でも試してみようと思います。

  2. 研究員 A のコメント:

    いえいえ、とんでもありません。
    自分でも書いておいたほうが良いのかなぁ、
    と感じていたことです。
    しつこいようですが、確かな情報ではないのであしからず。

コメントする

post date*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トラックバックする

トラックバック用URL:

アニメーションが親切に解説されております

レンダリング、ライティングの基本が分かります

図版が見やすい美術解剖書です