unity

BakeryでMonoSHを使う

BakeryでMonoSHを使う

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

解説

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

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

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

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

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

注意

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

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

Bakery ver.1.9+を導入する

Bakery公式のマニュアル:https://geom.io/bakery/wiki/index.php?title=Github_access

必要なもの

GitHubのアカウント作成

GitHubでアカウントを作成します(アカウントない場合)。やり方は省略。

Invoice Numberを調べる

Unity Asset Storeを開きます。

右端のアカウントのアイコンから、Order Historyを開きます。

UnityAssetStoreの注文履歴

BakeryのInvoice Numberをコピーしておきます。どれがBakeryなのかは買った時期と値段で判断してください。View Order Detailでどれか判別します。

InvoiceNumber

もしくはUnity Asset Storeから届いたメールに添付してあるpdfの請求書番号がInvoice Numberなのでコピーします。Humble Bundleで買った場合はvoucher codeが番号になります。

GitHubのアクセス権を得る

以下のページにアクセスします。

  • Invoice number:にUnity Asset Storeで取得したBakeryのInvoice Numberを入力します。
  • Github username:にGitHubのIDを入力します。
BakeryのGithubにアクセスするための入力

Submitを押して、手順通り進めるとBakeryのGitHubリポジトリにアクセスできるようになります。

Bakeryのアップデートパッチを導入する

Unity Hubで導入したいプロジェクトを開きます。Bakeryを導入していない場合は、Package Managerから導入してください。

メニューのBakery->Utilities->Check For Patchesを開きます。

Bakeryのパッチ導入
  • Lightmapper invoice:にBakeryのInvoice Numberを入力します。
  • RTPreview invoice:は空欄でOKです。
  • Github username:にGitHubのIDを入力します。
Bakeryのパッチ

Checkを押すとダウンロードが始まるので待ちます。

アップデートが完了したらEditorの再起動を求められるので、一旦プロジェクトを閉じて開き直します。

以上でBakery 1.9+の導入は終了です。

MonoSHに設定する

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

BakeryをMonoSHに設定する

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

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

BakeryStandardEnableMonoSH

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

FilementedでMonoSHを有効にする

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

余談

ゴーストクラブのCGWorld配信かなにかでSH使ってると言ってて、宍戸あくろ個展はmonoSHだと会場手掛けたtanittaさんが言ってて、Elsol2の会場にmonoSH使っていた。

 

メールアドレスが公開されることはありません。