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

さて、CookTorranceがうまくいかないわけだが…。
関連記事
オープンソースのロボットアプリケーションフレームワーク『RO...
UnityでTweenアニメーションを実装できる3種類の無料...
網元AMIで作ったWordpressサイトのインスタンスをt...
3Dモデルを立体視で確認できるVRアプリを作っている
手を動かしながら学ぶデータマイニング
クラスの基本
OpenCVでカメラ画像から自己位置認識 (Visual O...
ファンの力
ZBrushで仮面ライダー3号を造る 仮面編 Dam Sta...
SIGGRAPH ASIA 2009で学生ボランティア募集し...
Raspberry PiでIoTごっこ
ブログが1日ダウンしてました
Pylearn2:ディープラーニングに対応したPythonの...
AnacondaとTensorFlowをインストールしてVi...
Quartus II
このブログのデザインに飽きてきた
CEDEC 3日目
Digital Emily Project:人間の顔をそっく...
ラクガキの立体化 胴体の追加
UnityのAR FoundationでARKit 3
単純に遊びに行くのはだめなのか?
『ゴジラ キング・オブ・モンスターズ』のVFXブレイクダウン
iOSデバイスのためのフィジカル・コンピューティングツールキ...
ゴジラ三昧
Structure from Motion (多視点画像から...
MB-Lab:Blenderの人体モデリングアドオン
uGUI:Unityの新しいGUI作成システム
HD画質の無駄遣い
ニンテンドー3DSのGPU PICA200
BSDF: (Bidirectional scatterin...
池袋パルコで3Dのバーチャルフィッティング『ウェアラブル ク...
プロシージャル手法に特化した本が出てるみたい(まだ買わないけ...
ZBrushでゴジラ2001を作ってみる 姿勢の変更
スクレイピング
OpenCVでPhotoshopのプラグイン開発
OpenCVで顔のランドマークを検出する『Facemark ...
書籍『OpenCV 3 プログラミングブック』を購入
ブログの復旧が難航してた話
Amazon EC2ログイン用の秘密鍵を無くした場合の対処方...
ジュラシック・パークの続編『ジュラシック・ワールド』
3Dスキャンしたテクスチャから照明を除去するUnityツール...
ZBrushでリメッシュとディティールの転送


コメント