LoginSignup
9
7

More than 3 years have passed since last update.

Unity 2018でVRChatワールドをGPUベイクしてみた

Last updated at Posted at 2019-11-08

Unity 2018.4では標準でGPUベイクできるライトマッパーが付属しています。
VRChatのUnityバージョンが2018になるので、自宅ワールドをGPUベイクしてみました。
Unity 2018.4.11f1での記録です。
公式のマニュアルはここ。
https://docs.unity3d.com/2018.4/Documentation/Manual/GPUProgressiveLightmapper.html

GPUベイクの有効化方法

Lightingタブのここを「Progressive GPU (Preview)」に変える

image.png

つまづいたところ

オンボードGPUが使われる

使用されているGPUはここに表示される。

image.png

Unityが勝手に選んでいるらしい1が、IntelのオンボードGPUが使われる場合は手動でつよつよGPUに変更した方がベイクが速い。
まず、GPUのplatform番号とdevice番号をUnityのEditor.logから調べる必要がある。
Editor.logは %LOCALAPPDATA%\Unity\Editor\Editor.log にある。

image.png

Editor.logを開き、「Listing OpenCL platforms」で検索する。こんな感じでplatformとdeviceの番号が書いてあるので、オンボードではない方の番号を調べる。この例だとplatformもdeviceも0番がNVIDIA。

image.png

番号がわかったら、Unityの起動引数に -OpenCL-PlatformAndDeviceIndices <platform番号> <device番号> を指定する。

UnityHubの場合はここでプロジェクト毎に設定する。

image.png
image.png

UnityHubを使ってない場合はショートカットの後ろに書けば良いと思う。

image.png

一部のライトの影が無い、ライト自体が消えてる、影の付き方が違う

Cast Shadowsをオフにしているメッシュに埋め込んだライトが想定通り動いていなかった。
Progressive GPUではCast Shadowsが強制オンのため、メッシュの影になっていた。
メッシュから外に出すように位置調整して解決。でも影の付き方は少々変わった。

image.png
↑ProgressiveライトマッパーによるCPUベイク。ライトスタンドの傘以外の部分をCast Shadowsオフにしている。

image.png
↑GPUベイクに切り替えた直後。ライトスタンドに埋め込んだPoint Lightがうまく動いていない。

image.png
↑修正後。画像には映っていないが天井の照明も同様に傘の影になったため、間接照明としての影響力を上げるためにIntensityとIndirect Multiplierを上げた。


  1. Editorで使われているGPUが選ばれる? 

9
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
7