UnityでOcclusion Cullingを使ってCGレンダリングの負荷を軽減する方法 | VRプロフェッショナルアカデミー/No1.VR/AR専門プロフェッショナルスクール

技術ブログ

Top  >   技術ブログ  >   UnityでOcclusion Cullingを使ってCGレンダリングの負荷を軽減する方法

UnityでOcclusion Cullingを使ってCGレンダリングの負荷を軽減する方法

2021/02/04

◇はじめに

以前に負荷軽減でMesh Bakerを使った負荷軽減についての記事を投稿しました。

今回はOcclusion Cullingを用いた負荷軽減の方法について見ていきましょう!。

 

◇Occlusion Cullingとは

参照:Unity公式:Unity Manual Occlusion culling

オクルージョンカリングは、他のゲームオブジェクトによって完全に非表示(オクルージョン)になっているゲームオブジェクトのレンダリング計算をUnityが実行できないようにするプロセスです。

 

カメラに映ってないオブジェクトを非表示にする(レンダリングしない)ことで処理を軽減できます。

 

◇開発環境

Unity2020.1.6f1

Windows

 

今回確認するシーンについて

 

大きさが様々のCubeを複数配置しただけのシーンです。

このCube全てにOccluder Static と Occludee Staticを設定します。

 

Occlusion Cullingを行う

Occluder Static と Occludee Staticを設定する

他のオブジェクトを遮蔽するものにOccluderを設定し、他のオブジェクトに遮蔽されるものにOccludeeを設定します。

両方設定する事も可能です。

 

対象のオブジェクトを選択し、InspectorのStaticの▽をクリックします。

Occluder Static と Occludee Staticをクリックします。

 

また、複数選択していっぺんに変更することが可能です。

 

Occlusionの設定を行う

Window > Rendering > Occlusion Cullingをクリックして設定画面を表示します。

Bakeをクリックします。

 

<Smallest Occluder>

この値は遮蔽で遮るための最小の値を設定します。

つまり、ここで設定した大きさより小さいオブジェクトでは遮蔽物になることができません。

 

この値を小さくすると遮蔽の精度が上がりますがその分データサイズが大きくなります。

 

設定する大きさの単位はメートルです。デフォルトでは5メートルになっています。

ここでは1に設定します。

 

<Smallest Hole>

遮蔽物と遮蔽物の間の最小値の設定です。この値が小さいほど隙間の向こう側にあるオブジェクトがカリングされずに見える精度が上がります。

その分データサイズが大きくなります。

 

Smallest Holeで設定する大きさの単位はメートルです。デフォルトでは0.25メートル(25センチ)になっています。

今回はデフォルトのまま使用します

 

<Backface Threshold>

100未満にするとモデルの裏面の見えない部分のメッシュを削除して軽量化していきます。

 

背面の描画が遮蔽に関わる場合などは100に設定しておく方が良いので、一旦100のまま使用してもっと軽量化したい場合などに細かく設定すると良いでしょう。

今回はデフォルトのまま使用します。

 

設定が完了したらBakeをクリックします。

 

◇Occlusion Culling結果を確認する

Occlusion Culling > Edit でBake結果を確認する

Bakeが完了したら青い格子状のものがシーンに表示されます。

表示されてない場合はOcclusion CullingをEditにし、View Volumesを有効にすると表示されます。

 

Occlusion Culling > Visualizeでカメラを動かして遮蔽によってオブジェクトが消えていることを確認する

Occlusion CullingをVisualizeに設定してヒエラルキーのCameraを選択します。

 

 

カメラを左右に動かしてみるとシーン上でオブジェクトが消えたり現れたりしていることが確認できます。

<エディタ上で実行してカメラを動かす>


 

◇静的なオブジェクト以外も遮蔽で消す

Dynamic Occlusionのチェックをオンにすると動的なオブジェクトに対しても遮蔽で消えるように設定できます。

 

最後に

以上がOcclusion cullingの設定方法でした!

 

設定自体は意外と手軽ですね!

見えない範囲の不要な描画をカットできるのは負荷軽減にとても有効なので設定して確認してみてください。

 




◇アカデミーからのお知らせ

ARエキスパートコース

VRエキスパートコース

現在VRアカデミーではVisionProを始めとするゴーグル型のARデバイスを活用したARアプリ開発の方法をより深く学べる授業を取り組んでいます。

またゴーグルだけに囚われず、WebAR・スマホARそれぞれの特徴と実装方法について学習し、目的に合わせた適切なデバイス選定と実際に開発が出来るエンジニアを目指すことが出来るカリキュラムをご案内しています。より詳しくスキルを学びたい方は是非受講をご検討してみてはいかがでしょうか。

さらにARだけではなくVRエキスパートコースも申し込み受付中です。

VRエキスパートはARと違い360度世界に没入することを目的としたコンテンツです。そこでVRエキスパートではより没入感を得られるようなCGの演出技術やシナリオマネジメント。そしてメタバースに代表されるマルチ通信処理など。様々な技術を体系的に学習することが可能です。

是非合わせて検討してみていただければ幸いです。

★VRプロフェッショナルアカデミーオンライン個別相談会&オープンキャンパス実施中

VRアカデミーについてより詳しく知りたい方は下記相談会・オープンキャンパスの参加がオススメです。

どんなカリキュラムなのか。卒業生のVR・AR作品を体験したい方は是非お気軽にお申し込みください。

◎オンライン個別相談会

日  時:平日開催 10:30〜21:00 
場  所:オンライン or 対面による面談選択可
説明時間:60分程度
申込み先:個別相談会の詳しくは→ https://vracademy.jp/freesession/

◎オープンキャンパス

日  時:毎週土曜日開催 11:00〜18:00 
場  所:XR施設『NEUU』(新宿駅西口から徒歩3分)
    ※WEB申込み完了後、詳細はメールにてご案内します

説明時間:60~90分程度
申込み先:オープンキャンパスの詳しくは→ https://vracademy.jp/opencampus/