MayaのDGNodeを使ったShaderの書き方をサンプルコード読みながら勉強してたんだけど、そもそも参考にしてたサンプルコード自体に間違いがあることに気づいた。
前にも貼ったPhongShaderのサンプル。
サンプルをそのままビルドして実行してみればわかるんだけど、specular処理がちょっとおかしなことになる。
これはごく初歩的なミスで、要するに値の丸め忘れ。
サンプルコードだと、compute関数の中でif文使って( blindDataがNullな時とそうでない場合を)振り分けた後に、ほぼ同じShading処理を二箇所に書く構造になっていて、その内の一箇所に丸め忘れがある。
不思議なことにコードを見てると、二箇所のShading処理で別々の人が書いたように書き方が変わってたりする。(コメントの書き方も何か違う)
それで思ったんだけど、そもそもこのコードの書き方がミスを犯しやすい構造になってる気がする。if文書く位置をちょっと変えるだけでもっとメンテナンスしやすいのに…(この方が実行速度が速いんだろうか)
とか書いてたらまたおかしいところ見つけたぞ。(まあ良いか)
たぶん、最初に誰かが書いたのをバージョンアップか何かで他の誰かが書き換えて行くうちにおかしなことになっちゃったんだろう。
そんで、コード直すついでにDiffuseに関してはこの考えに従って書き換えてみた。(デザイン系ではあまり考えなくて良い部分ではある)

さて、CookTorranceがうまくいかないわけだが…。
関連記事
BlenderProc:Blenderで機械学習用の画像デー...
C++始めようと思うんだ
タマムシっぽい質感
Quartus II
Faster R-CNN:ディープラーニングによる一般物体検...
ドラマ『ファーストクラス』のモーショングラフィックス
Gource:バージョン管理の履歴を可視化するツール
ポリゴン用各種イテレータと関数セット
Transformers ”Reference & Buli...
ZBrushで仮面ライダーBLACK SUNを作る 頭部~バ...
WordPressの表示を高速化する
Unityで強化学習できる『Unity ML-Agents』
白組による『シン・ゴジラ』CGメイキング映像が公開された!
ZBrush 2018へのアップグレード
『シン・ゴジラ』のコンセプトアニメーションのメイキング動画が...
clearcoat Shader
WordPress on Google App Engine...
日本でMakersは普及するだろうか?
ブログの復旧が難航してた話
HerokuでMEAN stack
Faceshiftで表情をキャプチャしてBlender上でM...
SIGGRAPH論文へのリンクサイト
Blender 4.2以降のWindowsPortable版...
ZBrushでゴジラ2001を作ってみる 頭の概形作り
ZBrushでアヴァン・ガメラを作ってみる 爪とトゲを追加
UnityのTransformクラスについて調べてみた
機械学習手法『Random Forest』
Unityからkonashiをコントロールする
日立のフルパララックス立体ディスプレイ
「ベンジャミン·バトン数奇な人生」でどうやってCGの顔を作っ...
OpenMayaRender
PolyPaint
ZBrushでアマビエを作る その2
Google Earth用の建物を簡単に作れるツール Goo...
クラスの基本
Alice Vision:オープンソースのPhotogram...
昔Mayaでモデリングしたモデルをリファインしてみようか
ZBrush キャラクター&クリーチャー
布のモデリング
Theia:オープンソースのStructure from M...
iOSデバイスと接続して連携するガジェットの開発方法
Raytracing Wiki


コメント