unity

BakeryでMonoSHを使う

BakeryでMonoSHを使う
 ver1.9+の工程が要らなくなったのでちょっと書き直し

BakeryのDirectional ModeでMonoSHを使う方法を書きます。従来(SH,RNM)よりメモリ消費少なく高品質なライトベイク結果が得られます。MonoSHを使うにはBakeryのバージョンは1.9以上にする必要があります。

解説

Unityのライトマップベイクでも、GPUライトベイクアセットであるBakeryにもディレクショナルモードという設定があります。

平たく言うとディレクショナルモードだとライトマップに方向性の情報を持たせられるのでノーマルマップ(と疑似的なスペキュラ)がちゃんと効くようになってディテールが増します。しかし、その分負荷も増します。

Directional LightのOn/OffDirectionalのオン/オフの違い (c)Mr F

Bakeryのディレクショナルモードは方式がいくつかあって、高品質なのはSHです。しかし、ライトマップをHDR1枚+xyz各方向LDR3枚=4枚出力するためメモリ消費が大きいのがネックです。Bakeryのバージョン1.9で追加されたmonoSHはHDR1枚+LDR1枚(xyzの方向情報をグレースケールとしてRGB各チャンネルに格納して1枚にまとめる)になるので、SHより軽量(Unityのディレクショナルモードと比べて半分)でなおかつ、SHとほぼ同じ品質が得られます。

また、MaterialPropertyBlocksが必要ないため、VRChatでアップロードするときにVRC Bakery Adapterが不必要で手間が省けます。

注意

・ライトベイクするマテリアルのシェーダーがmonoSHに対応している必要があって、Filamented Standard ShaderOrels Unity Shader、BakeryのStandard Shaderが対応しています。ライトベイクしないものはMonoSHの設定は要りません。

・モデルのテクスチャ、特にノーマルマップとラフネスマップをちゃんと作ってる場合でないと十全に効果を発揮しないので、それらがない場合は導入しないほうが負荷やベイク時間減らせてよいかもしれません。

Bakery ver.1.9+パッチを導入する

Bakeryのアップデートによりこの工程は要らなくなりました。

MonoSHに設定する

BakeryのWindowを開いて、Directional modeのプルダウンからMono SHを選びます。

BakeryをMonoSHに設定する

ライトベイクするマテリアルをBakery StandardかFilamented Standard Shaderに変更します。

Bakery Standardの場合はForward Rendering OptionsにあるEnable Mono SHにチェックを入れます。

BakeryStandardEnableMonoSH

Filamentedの場合はLightmap OptionsのBakery ModeをMonoSHにします。

FilementedでMonoSHを有効にする

あとは通常通りBakeryでベイクしてください。

余談

ゴーストクラブのCGWorld配信かなにかでSH使ってると言ってて、宍戸あくろ個展はmonoSHだと会場手掛けたtanittaさんが言ってて tanittaさんに聞いたところ、私の聞き間違いで、宍戸あくろ個展はmonoSHではないそうです。monoSHどこで知ったんだ、私…

メールアドレスが公開されることはありません。 が付いている欄は必須項目です