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

さて、CookTorranceがうまくいかないわけだが…。
関連記事
2012 昨日のクローズアップ現代を見た
Adobe Photoshop CS5の新機能
HD画質の無駄遣い
3Dグラフィックスの入門書
Live CV:インタラクティブにComputer Visi...
Dlib:C++の機械学習ライブラリ
ZBrushでアヴァン・ガメラを作ってみる 歯を配置
Google XML Sitemap Generatorプラ...
ZBrushでゴジラ2001を作ってみる 身体のシルエット出...
ZBrushでゴジラ2001を作ってみる 側頭部のボリューム...
『スター・ウォーズ/スカイウォーカーの夜明け』のVFXブレイ...
Mitsuba 2:オープンソースの物理ベースレンダラ
Multi-View Environment:複数画像から3...
WordPress on Windows Azure
Blender 4.2以降のWindowsPortable版...
Raspberry PiのGPIOを操作するPythonライ...
ZBrushで仮面ライダー3号を造る 仮面編 PolyGro...
OpenAR:OpenCVベースのマーカーARライブラリ
布地のシワの法則性
Blender 2.81でIntel Open Image ...
フリーのUV展開ツール Roadkill UV Tool
Raytracing Wiki
ZBrushで仮面ライダー3号を造る 仮面編 Dam Sta...
Amazon EC2ログイン用の秘密鍵を無くした場合の対処方...
Unityからkonashiをコントロールする
3D復元技術の情報リンク集
顔のモデリング
オープンソースの顔認識フレームワーク『OpenBR』
AfterEffectsプラグイン開発
レンダラ制作はOpenGL とか DirectX を使わなく...
OpenCV3.3.0でsfmモジュールのビルドに成功!
オープンソースの物理ベースGIレンダラ『appleseed』
ジュラシック・パークのメイキング
このブログのデザインに飽きてきた
第1回 3D勉強会@関東『SLAMチュートリアル大会』
iOSで使えるJetpac社の物体認識SDK『DeepBel...
スターウォーズ エピソードVIIの予告編
書籍『OpenCV 3 プログラミングブック』を購入
pythonもかじってみようかと
ZBrushでアヴァン・ガメラを作ってみる 全体のバランス調...
Gource:バージョン管理の履歴を可視化するツール
ゴジラ(2014)のメイキング


コメント