会社員になってからすっかり画像認識の人になってしまったけど、最近のCGレンダリング事情にキャッチアップしておきたい。
リアルタイムレンダリング系の書籍を買っておきながらしばらく積んでいた↓


画像認識もCGも、リアルタイム化を目指す際の考え方は共通点が多いと最近感じる。
極力ユースケースを絞って重い処理はなるべく事前計算へ追いやり、キャッシュをフル活用してリッチな処理を近似する。実行時の自由度と処理負荷のバランスを調整していく。。
応答のリアルタイム性を追求するとどんなジャンルでも考え方は似通ってくるのかな。
レンダラやGPUアーキテクチャの話もあるけど、基本はやっぱりBRDF(反射)なので、とりあえずミクロなスケールでShaderの話からキャッチアップして行こう。
今月のCG WORLDはPBR (Physically Based Rendering)特集だったね。
![CGWORLD (シージーワールド) 2020年 09月号 [雑誌]](https://m.media-amazon.com/images/I/514B48Yqg+L.jpg)
BRDFの近年までの歴史を概観するのにTeppei Kuritaさんが公開している資料がとても分かりやすい↓
Cook-Torrance
この分野は長らく遠ざかっていたので、オイラの実装知識はCook-Torranceぐらいまでで止まっている↓
学生の頃、C++の勉強も兼ねてCook-TorranceをMayaのShaderプラグインとして実装したことがある↓
https://github.com/NegativeMind/Maya-Plugins
当時、Mayaの標準レンダラに搭載されていたShaderはBlinnやPhongぐらいだった。(mentalrayにはCook-Torranceも搭載されていた)
幾何減衰項G、フレネル項F、マイクロファセット分布項Dで構成されたパラメーターが、オイラにとっては模型の塗装みたいで直感的だった。プログラミングを習得する題材としてちょうどよかったな。
PBR Shader
現在多くのDCCツールでデファクトスタンダードとなっている通称PBR Shaderと呼ばれる反射モデルは、2012年にDisneyが発表したDisney Principled BRDFがベース。
物理モデルBRDFでは、物体の質感を以下の要素で定義する↓
- Albedo (反射比率)
- Metalness (金属か誘導体か)
- Roughness (表面の粗さ)
- IOR (屈折率)
Disney Principled BRDFは物理モデルをベースに、アーティストが直感的に質感を調整できるようパラメーターが設計されている。それまでDCCツールで主流だったLambertやPhongといった推論モデルに対して、物理モデルを裏付けとしたShaderだからPBR(Physically Based Rendering) Shaderと呼ばれるわけですね。
追記:ご指摘いただいたので補足。Lambertを推論モデルに括るのは雑でした。
ここで言いたかったのはLambert反射の定義ではなく、当時のDCCツール(というかMaya)に搭載されていたLambertマテリアルの話。
DCCツール、というか多くのCGプログラムでLambertは実装が省略されていて、エネルギー保存が成立していなかった。定義に従ってLambert Shaderを書き直してみたことがある↓

2015年、Disney Principled BRDFをさらに発展させて、BRDF(反射)だけでなくBTDF(屈折・透過)も合わせたBSDFモデルが発表され、現在に至る。

BlenderデフォルトマテリアルのPrincipled BSDFもDisney Principled BRDFがベース↓
各パラメータの解説はこちらの記事が詳しい↓
http://bluebirdofoz.hatenablog.com/entry/2019/10/05/091604
ここ数年はSIGGRAPHでも毎年Physically Based Shading in Theory and Practiceのコースが設けられている。
今年のコースのスライド↓
https://blog.selfshadow.com/publications/s2020-shading-course/
結局、スライドだけでなくセッション動画も公開されましたね↓
関連記事
JavaによるCGプログラミング入門サイト (日本語)
ZBrushの練習 手のモデリング
3D映画のポストプロダクション 2D-3D変換
MeshLab:3Dオブジェクトの確認・変換に便利なフリーウ...
LuxCoreRender:オープンソースの物理ベースレンダ...
タマムシっぽい質感
『ゴジラ キング・オブ・モンスターズ』のVFXブレイクダウン
Autodesk Mementoでゴジラを3次元復元する
Shader.jp:リアルタイム3DCG技術をあつかうサイト
SIGGRAPH論文へのリンクサイト
CLO:服飾デザインツール
ZBrushで仮面ライダー3号を造る 仮面編 Dam Sta...
Iridescence:プロトタイピング向け軽量3D可視化ラ...
フリーのUV展開ツール Roadkill UV Tool
『シン・ゴジラ』のコンセプトアニメーションのメイキング動画が...
ZBrushで仮面ライダー3号を造る 仮面編 Clay Po...
この連休でZBrushの スキルアップを…
『パシフィック・リム: アップライジング』のVFXブレイクダ...
ZBrushのZmodelerとDynamic Subdiv...
SIGGRAPH Asia
写真から3Dメッシュの生成・編集ができる無料ツール『Auto...
Maya 2015から標準搭載されたMILA
日立のフルパララックス立体ディスプレイ
法線マップを用意してCanvas上でShadingするサンプ...
タダでRenderManを体験する方法
Blenderでよく使うaddon
GAN (Generative Adversarial Ne...
PolyPaint
Blender 2.81でIntel Open Image ...
ZBrushのUndo Historyをカメラ固定で動画化す...
ZBrushでゴジラ2001を作ってみる 側頭部のボリューム...
シン・ゴジラのファンアート
ガメラ生誕50周年
UnityでARKit2.0
粘土をこねるようなスカルプトモデリング
adskShaderSDK
NVIDIA GeForce RTX 3080を購入
顔モデリングのチュートリアル
Blendify:コンピュータービジョン向けBlenderラ...
色んな三面図があるサイト
テスト
ポリ男からMetaHumanを作る



コメント