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

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

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

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

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



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


スポンサーリンク

関連記事

iPhone・iPod touchで動作する知育ロボット『ROMO』
ZBrushでゴジラ2001を作ってみる 頭の概形作り
シン・ゴジラのファンアート
『ゴジラ キング・オブ・モンスターズ』のVFXブレイクダウン
今年もSSII
3Dスキャンに基づくプロシージャルフェイシャルアニメーション
Unreal Engine 5の情報が公開された!
ガメラ生誕50周年
OpenCV3.3.0でsfmモジュールのビルドに成功!
ZBrushで仮面ライダー3号を造る ベース編
読みやすくて高速なディープラーニングのフレームワーク『Caffe』
ZBrushでアヴァン・ガメラを作ってみる 歯を配置
ZBrushのZmodelerとDynamic Subdivisionを学ぶ
ブログをGoogle App EngineからAmazon EC2へ移行
HD画質の無駄遣い
ZBrushでアヴァン・ガメラを作ってみる 脚のポーズ調整
バージョン管理の履歴を可視化するツール『Gource』
ゴジラ三昧
Adobe Photoshop CS5の新機能
BSDF: (Bidirectional scattering distribution funct...
Blender 2.8がついに正式リリース!
1枚の画像からマテリアルを作成できる無料ツール『Materialize』
株式会社ヘキサドライブの研究室ページ
OpenCVでカメラ画像から自己位置認識 (Visual Odometry)
書籍『ゼロから作るDeep Learning』で自分なりに学ぶ
hloc:SuperGlueで精度を向上させたSfM実装
Boost オープンソースライブラリ
Webサイトのワイヤーフレームが作成できるオンラインツール
ヒーローに変身なりきりアーケードゲーム『ナレルンダー』
WordPress on Google App Engineを1週間運用してみて
Google Earth用の建物を簡単に作れるツール Google Building Maker 公...
オープンソースの物理ベースレンダラ『Mitsuba』をMayaで使う
布のモデリング
Transformers ”Reference & Bulid” Siggraph 2007
uGUI:Unityの新しいGUI作成システム
ZBrushでゴジラ2001を作ってみる 側頭部のボリュームを探る
フリーのUV展開ツール Roadkill UV Tool
『スター・ウォーズ 最後のジェダイ』のVFXブレイクダウン まとめ
CreativeCOW.net
TeleSculptor:空撮動画からPhotogrammetryするツール
TVML (TV program Making language)
ZBrushCore

コメント