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

さて、CookTorranceがうまくいかないわけだが…。
関連記事
PolyPaint
OpenAR:OpenCVベースのマーカーARライブラリ
ZBrushでアヴァン・ガメラを作ってみる 甲羅のバランス調...
MPC社によるゴジラ(2014)のVFXブレイクダウン
3Dスキャンに基づくプロシージャルフェイシャルアニメーション
オープンソースの人体モデリングツール『MakeHuman』の...
Quartus II
フルCGのウルトラマン!?
ZBrushのキャンバスにリファレンス画像を配置する
3D Gaussian Splatting:リアルタイム描画...
libigl:軽量なジオメトリ処理ライブラリ
Amazon Web ServicesでWordPress
アニゴジ関連情報
ZBrushのUndo Historyをカメラ固定で動画化す...
『パシフィック・リム: アップライジング』のVFXブレイクダ...
ニューラルネットワークで画像分類
Unite 2014の動画
マイケル・ベイの動画の感覚
Mitsuba 3:オープンソースの研究向けレンダラ
実写と実写の合成時の色の馴染ませテクニック
OpenMVS:Multi-View Stereoによる3次...
Maya API Reference
Unreal Engine 5の情報が公開された!
ROMOハッカソンに行ってきた
AndroidもopenGLも初心者さ (でもJavaは知っ...
Stanford Bunny
iPhone 3GSがますます欲しくなる動画
ZBrushでアヴァン・ガメラを作ってみる 下アゴと頭部を作...
OpenCV 3.1のsfmモジュールを試す
UnityのGlobal Illumination
Mayaでリアルな布の質感を作るチュートリアル
ラクガキの立体化 目標設定
Composition Rendering:Blenderに...
Google App Engineのデプロイ失敗
オープンソースの物理ベースレンダラ『Mitsuba』をMay...
Runway ML:クリエイターのための機械学習ツール
顔追跡による擬似3D表示『Dynamic Perspecti...
3DCGのモデルを立体化するサービス
オーバーロードとオーバーライド
PythonでBlenderのAdd-on開発
ZBrushでアヴァン・ガメラを作ってみる 歯茎を別パーツへ...
Google App EngineでWordPress


コメント