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

さて、CookTorranceがうまくいかないわけだが…。
関連記事
このブログのデザインに飽きてきた
BlenderでPhotogrammetryできるアドオン
OpenMVSのサンプルを動かしてみる
Webスクレイピングの勉強会に行ってきた
HerokuでMEAN stack
BGSLibrary:OpenCVベースの背景差分ライブラリ
Theia:オープンソースのStructure from M...
グローバルイルミネーションに手を出す前に、やり残したことがあ...
ZBrushでアヴァン・ガメラを作ってみる 下半身のバランス...
ZScript
RSSフィードを読込んで表示するWordpressプラグイン...
PolyPaint
ハリウッド版「GAIKING」パイロット映像
uGUI:Unityの新しいGUI作成システム
Google Chromecast
ラクガキの立体化 1年半ぶりの続き
SIGGRAPH 2020はオンライン開催
ラクガキの立体化 3Dプリント注文
PGGAN:段階的に解像度を上げて学習を進めるGAN
OpenAR:OpenCVベースのマーカーARライブラリ
『PIXARのひみつ展』に行ってきた
Physically Based Rendering
OpenCVでカメラ画像から自己位置認識 (Visual O...
網元AMIで作ったWordpressサイトのインスタンスをt...
続・ディープラーニングの資料
Stanford Bunny
白組による『シン・ゴジラ』CGメイキング映像が公開された!
Polyscope:3Dデータ操作用GUIライブラリ
注文してた本が届いた
Mitsuba 2:オープンソースの物理ベースレンダラ
BlenderのGeometry Nodeで遊ぶ
ヒーローに変身なりきりアーケードゲーム『ナレルンダー』
書籍『仕事ではじめる機械学習』を読みました
ZBrushのZScript入門
Point Cloud Utils:Pythonで3D点群・...
ZBrush用トポロジー転送プラグイン『ZWrap Plug...
UnrealCV:コンピュータビジョン研究のためのUnrea...
IronPythonを使ってUnity上でPythonのコー...
Amazon Web ServicesでWordPress
PyTorch3D:3Dコンピュータービジョンライブラリ
参考になりそうなサイト
ゴジラの造形


コメント