技術ブログ

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の設定方法でした!

 

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

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

 




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

■VRアカデミーオススメの講座・コース紹介

VRアカデミーではVR・AR開発を学びたい様々な年齢、スキルの方を対象に、目的に合わせたコース選択が可能になっています。ここではその中で現在オススメしているコースを一部紹介します。


★【VRエキスパート】



VRエキスパートコースは、Unityの学習経験のある方やC言語系・Java系等のプログラミング経験者を対象にした5ヵ月間の中級コースです。

VRアプリ開発のためのプロフェッショナルな知識と技術を修得するための実践コースです。

 


■オープンキャンパス・個別相談会の紹介

 

VRアカデミーはスキルアップや新規事業の創出。またはVRコンテンツ開発企業に就職・転職を目指す様々な方の目的を支援しています。

生徒には様々なバックグラウンド・年齢層の方もいらっしゃいますので是非一度オープンキャンパスや個別相談会に参加していただくとより詳しい学校説明をご案内しています。

更にオープンキャンパス・相談会参加者には特別割引を実施中!是非お気軽にお申し込みください。

 

 

【土曜日開催】オープンキャンパス




開催日:毎週土曜日

時 間:60〜90分 (11:00〜18:00)

日 付: 毎週土曜日(下記リンクの予約表を確認してください)

場 所:新宿区西新宿1丁目5-11.新宿三葉ビル1F「NEUU」(新宿駅西口から徒歩3分)

※詳しくは申込み時にメールにてご案内させていただきます。

参加申込⇒https://vracademy.jp/opencampus/

専任のキャリアアドバイザーの学校説明と合わせて実際の授業の様子を見学できます。

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

 

 

【平日10:30~21:00】オンライン個別相談会(現地相談も可)

開催日:平日の月〜金曜日開催

時 間:60〜90分 (10:30〜21:00)

参加申込⇒https://vracademy.jp/freesession/

各コースの詳細はもちろん、VRソフトの体験や業界についての質問等、様々な質問に個別で対応します。

入学をご検討中の方は是非お申し込みください。