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

MayaのDGNodeを使ったShaderの書き方をサンプルコード読みながら勉強してたんだけど、そもそも参考にしてたサンプルコード自体に間違いがあることに気づいた。
前にも貼ったPhongShaderのサンプル
サンプルをそのままビルドして実行してみればわかるんだけど、specular処理がちょっとおかしなことになる。

これはごく初歩的なミスで、要するに値の丸め忘れ。
サンプルコードだと、compute関数の中でif文使って( blindDataがNullな時とそうでない場合を)振り分けた後に、ほぼ同じShading処理を二箇所に書く構造になっていて、その内の一箇所に丸め忘れがある。
不思議なことにコードを見てると、二箇所のShading処理で別々の人が書いたように書き方が変わってたりする。(コメントの書き方も何か違う)

それで思ったんだけど、そもそもこのコードの書き方がミスを犯しやすい構造になってる気がする。if文書く位置をちょっと変えるだけでもっとメンテナンスしやすいのに…(この方が実行速度が速いんだろうか)
とか書いてたらまたおかしいところ見つけたぞ。(まあ良いか)
たぶん、最初に誰かが書いたのをバージョンアップか何かで他の誰かが書き換えて行くうちにおかしなことになっちゃったんだろう。

そんで、コード直すついでにDiffuseに関してはこの考えに従って書き換えてみた。(デザイン系ではあまり考えなくて良い部分ではある)



さて、CookTorranceがうまくいかないわけだが…。


スポンサーリンク

関連記事

AndroidもopenGLも初心者さ (でもJavaは知ってるよ)
Webスクレイピングの勉強会に行ってきた
Deep Learningとその他の機械学習手法の性能比較
映画から想像するVR・AR時代のGUIデザイン
Unity Scriptコーディング→Unreal Engine Scriptコーディング
CycleGAN:ドメイン関係を学習した画像変換
ブラウザ操作自動化ツール『Selenium』を試す
顔モデリングのチュートリアル
Physics Forests:機械学習で流体シミュレーションを近似する
顔追跡による擬似3D表示『Dynamic Perspective』
ZBrushのZScript入門
OpenCVでPhotoshopのプラグイン開発
TensorSpace.js:ニューラルネットワークの構造を可視化するフレームワーク
書籍『ゼロから作るDeep Learning』で自分なりに学ぶ
Theia:オープンソースのStructure from Motionライブラリ
1枚の画像からマテリアルを作成できる無料ツール『Materialize』
UnrealCLR:Unreal Engineで.NET Coreを利用できるプラグイン
ZBrushで仮面ライダー3号を造る 仮面編 リファレンス画像の表示
プロシージャル手法に特化した本が出てるみたい(まだ買わないけど)
マイケル・ベイの動画の感覚
UnrealCV:コンピュータビジョン研究のためのUnreal Engineプラグイン
『スター・ウォーズ フォースの覚醒』のVFXブレイクダウン まとめ
OpenGVの用語
この本読むよ
ラクガキの立体化 分割ラインの変更・バランス調整
写真から3Dメッシュの生成・編集ができる無料ツール『Autodesk Memento』
Paul Debevec
オープンソースの人体モデリングツール『MakeHuman』のAPI開発プロジェクトがスタート
参考書
Russian3DScannerのトポロジー転送ツール『WrapX』
フリーのUV展開ツール Roadkill UV Tool
AR (Augmented Reality)とDR (Diminished Reality)
OpenCVで平均顔を作るチュートリアル
粘土をこねるようなスカルプトモデリング
ZBrush 4R8 リリース!
タマムシっぽい質感
ZBrushの練習 手のモデリング
JavaScriptとかWebGLとかCanvasとか
ZBrushでアヴァン・ガメラを作ってみる 全体のバランス調整
Blenderでよく使うaddon
COLMAP:オープンソースのSfM・MVSツール
SIGGRAPH ASIA 2009で学生ボランティア募集してるみたい

コメント