.wp-block-jetpack-rating-star span.screen-reader-text { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal; }

サイトアイコン NegativeMindException

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

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

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

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

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



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


スポンサーリンク

関連記事

ZBrushのZmodelerとDynamic Subdivisionを学ぶ

Mechanizeで要認証Webサイトをスクレイピング

ZBrushでアヴァン・ガメラを作ってみる 脚のポーズ調整

ZBrushでアヴァン・ガメラを作ってみる 口内の微調整・身体のライン修正

Kubric:機械学習用アノテーション付き動画生成パイプライン

Google Earth用の建物を簡単に作れるツール Google Building Maker 公...

オープンソースの物理ベースレンダラ『Mitsuba』をMayaで使う

『ハン・ソロ/スター・ウォーズ・ストーリー』のVFXブレイクダウン まとめ

Webサイトのワイヤーフレームが作成できるオンラインツール

ゴジラ(2014)のメイキング

Raspberry Pi 2を買いました

ZBrushCoreのTransposeとGizmo 3D

Point Cloud Utils:Pythonで3D点群・Meshを扱うライブラリ

書籍『ゼロから作るDeep Learning』で自分なりに学ぶ

OpenCVの三角測量関数『cv::triangulatepoints』

OpenGVの用語

AnacondaとTensorFlowをインストールしてVisual Studio 2015で使う

SIGGRAPH ASIAのマスコット

OpenCLに対応したオープンソースの物理ベースレンダラ『LuxRender(ルクスレンダー)』

KelpNet:C#で使える可読性重視のディープラーニングライブラリ

Gource:バージョン管理の履歴を可視化するツール

第1回 3D勉強会@関東『SLAMチュートリアル大会』

Boost オープンソースライブラリ

1枚の画像からマテリアルを作成できる無料ツール『Materialize』

ちょっと凝り過ぎなWebキャンペーン:全日本バーベイタム選手権 (MITSUBISHI KAGAKU...

C#で使える遺伝的アルゴリズムライブラリ『GeneticSharp』

Kaolin:3Dディープラーニング用のPyTorchライブラリ

OpenCV3.3.0でsfmモジュールのビルドに成功!

OpenCV 3.1とopencv_contribモジュールをVisual Studio 2015で...

ZBrushCore

Mayaでリアルな布の質感を作るチュートリアル

UnityのTransformクラスについて調べてみた

マジョーラ

ポリゴンジオメトリ処理ライブラリ『pmp-library (Polygon Mesh Process...

オープンソースのロボットアプリケーションフレームワーク『ROS (Robot Operating S...

OpenMesh:オープンソースの3Dメッシュデータライブラリ

BlenderのPython環境にPyTorchをインストールする

ラクガキの立体化

Unityからkonashiをコントロールする

3D Gaussian Splatting:リアルタイム描画できるRadiance Fields

フリーで使えるスカルプト系モデリングツール『Sculptris 』

日本でMakersは普及するだろうか?

モバイルバージョンを終了