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

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

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

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

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



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


スポンサーリンク

関連記事

ZBrush 4R7
WordPressプラグインの作り方
株式会社ヘキサドライブの研究室ページ
CGALDotNet:計算幾何学ライブラリ CGALのC#ラッパー
FreeMoCap Project:オープンソースのマーカーレスモーションキャプチャ
OpenCV 3.1のsfmモジュールを試す
ZBrushのお勉強
日立のフルパララックス立体ディスプレイ
Windows10でPyTorchをインストールしてVSCodeで使う
HerokuでMEAN stack
ZBrushで仮面ライダー3号を造る 仮面編 リファレンス画像の表示
KelpNet:C#で使える可読性重視のディープラーニングライブラリ
Mitsuba 3:オープンソースの研究向けレンダラ
Mayaのプラグイン開発
DensePose:画像中の人物表面のUV座標を推定する
映画『シン・ウルトラマン』 メイキング記事まとめ
SIGGRAPH 2020はオンライン開催
日本でMakersは普及するだろうか?
『スター・ウォーズ/スカイウォーカーの夜明け』のVFXブレイクダウン
ゴジラ三昧
ゴジラの造形
ニューラルネットワークで画像分類
ブラウザ操作自動化ツール『Selenium』を試す
フリーのUV展開ツール Roadkill UV Tool
『パシフィック・リム: アップライジング』のVFXブレイクダウン まとめ
WordPressプラグインによるサイトマップの自動生成
HTML5・WebGLベースのグラフィックスエンジン『Goo Engine』
ブログをGoogle App EngineからAmazon EC2へ移行
Deep Fluids:流体シミュレーションをディープラーニングで近似する
ZBrushでゴジラ2001を作ってみる 目元だけ作り込んでバランスを見る
WebGL開発に関する情報が充実してきている
Konashiを買った
フィーリングに基づくタマムシの質感表現
ZBrushの練習 手のモデリング
Live CV:インタラクティブにComputer Visionコーディングができるツール
CreativeCOW.net
TensorSpace.js:ニューラルネットワークの構造を可視化するフレームワーク
ZBrushでアヴァン・ガメラを作ってみる 口内の微調整・身体のライン修正
iOSデバイスのためのフィジカル・コンピューティングツールキット『konashi(こなし)』
html5のcanvasの可能性
UnityでTweenアニメーションを実装できる3種類の無料Asset
OpenCVの超解像(SuperResolution)モジュールを試す

コメント