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

さて、CookTorranceがうまくいかないわけだが…。
関連記事
cvui:OpenCVのための軽量GUIライブラリ
DUSt3R:3Dコンピュータービジョンの基盤モデル
OpenVDB:3Dボリュームデータ処理ライブラリ
ZBrushでカスタムUIを設定する
ZBrush 4R7
openMVGをWindows10 Visual Studi...
Unite 2014の動画
書籍『仕事ではじめる機械学習』を読みました
ZScript
フルCGのウルトラマン!?
OpenCVでカメラ画像から自己位置認識 (Visual O...
ラクガキの立体化 胴体の追加
昔Mayaでモデリングしたモデルをリファインしてみようか
ラクガキの立体化 3Dプリント注文
3D復元技術の情報リンク集
Verilog HDL
Seleniumを使ったFXや株の自動取引
CreativeCOW.net
Quartus II
Raspberry Piでセンサーの常時稼働を検討する
ZBrushでゴジラ2001を作ってみる 姿勢の変更
BlenderのPython環境にPyTorchをインストー...
PythonでMayaのShapeノードプラグインを作る
Raspberry Pi 2を買いました
ZBrush 4R8 リリース!
続・ディープラーニングの資料
ZBrush 2018へのアップグレード
Google XML Sitemap Generatorプラ...
Unityで画面タッチ・ジェスチャ入力を扱う無料Asset『...
WordPressのテーマを自作する
ドラマ『ファーストクラス』のモーショングラフィックス
『スター・ウォーズ フォースの覚醒』のVFXブレイクダウン ...
ポリ男をリファイン
ヒーローに変身なりきりアーケードゲーム『ナレルンダー』
Python for Unity:UnityEditorでP...
NumSharp:C#で使えるNumPyライクな数値計算ライ...
ラクガキの立体化 1年半ぶりの続き
Unreal Engine 5の情報が公開された!
3分の動画でプログラミングを学習できるサイト『ドットインスト...
ZBrushで仮面ライダー3号を造る 仮面編 PolyGro...
フリーのUV展開ツール Roadkill UV Tool
ZBrushのZScript入門


コメント