サンプルコードにも間違いはある?

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入門

コメント