概要
Unityの「StandardShader」ってダサいイメージありませんか?
最初からあるし無料だし、カードゲームならスタンダードセットっていうと初心者が買う基本パーツを手に入れる為のものだし、絵を綺麗にする時ってStandardShaderの話よりPost Processing Stackの方が出てくるし、ポスプロでブルームと被写体深度と色収差で助走付けて殴った方がよさそうって感じするし…
そんな事ない?分かる?
分かる!って人はこの記事読むといいかもしれないです。
StandardShaderの正体
UnityのstandardShaderは**「物理ベースレンダリング」に基づいて設計されたShaderである。
っていうとよく分からないので「ピクサーがシュガーラッシュ作る時に考えたヤツ(に基づいて実装されたShader)」**っていうと(オッ?)ってなるんじゃないでしょうか。
そもそもCGのレンダリングは何かの法則をシミュレーションして絵を出してます。
ただ、厳密にシミュレーションすると非常に時間がかかってしまうので、疑似的な方法や近似する手法がとられています。ある程度の精度は犠牲にして高速化しているわけです。
そんなこんなで色々なShaderが生まれたわけです。
で、色々なShaderがあると便利なように見えますが、**その分パラメータや調整項目も増えるので「アーティストが狙った絵を出すにはどないすればええねん」**ってなるわけですね。
そこで、ピクサーの偉い人は**「世の中の物質って金属と非金属、表面の粗さでだいたい分類できるよね」っていう物理法則に気づいて、この法則に従ったShaderを作りました。
これが物理ベースレンダリング(PBR)**と呼ばれている概念です。
(めちゃくちゃざっくり言うと)**「その物質が金属であるか・非金属であるか?」「表面がツルツルか?ざらざらか?」の質問に答えると、そういう物質の絵を出してくれるShaderです。
これでアーティストは狙った絵を出せるようになりました!**やったね。
物理ベースシェーディング フリー百科事典『ウィキペディア(Wikipedia)』
物理ベースレンダリングを詳しく
How to Use Blender's New "Ultimate" Shader: The Principled BSDF
こちらの動画が参考になります。
英語なのでこの記事では字幕の出し方だけ捕捉しておきます。
Unityでやるにはどうするの?
Standard Shader Unity DOCUMENTATION
↑のリンクにアクセスする
おわり
CGや3Dつよつよな人にとっては当たり前の超常識なんですが、意外と体系的に学ぶパスが少ない気がする…
CGって意外と歴史が浅くて、そもそも物理ベースレンダリングの考え方は2012年(約8年前)に出たものだし、おしゃれなノイズのアルゴリズムも意外と最近出たんだなってものも多い。
毎年シーグラフをおっかけるのが手っ取り早そうだけど、英語だし論文を読めないといけないし、数式も理解する必要があって一定のハードルがある。
で、そこらへん分かりやすくしたCG関係の書籍に関しても、ニッチなのでドカドカ情報が出るわけでもない。
というわけで 知ってる人にとっては当たり前だけど、知らない人が知るキッカケが少ない みたいなのは漠然と感じる。
VRChatとかでリアリスティックなワールドをセットアップしたい場合、StandardShaderを使いこなしてゆくのがいいかもしれない。