SlideShare a Scribd company logo
1 of 57
Download to read offline
2020/08/31
ホロモン
 最強の軽量化テクニック ~5min
 軽くHoloLens紹介 ~8min
 3Dモデル軽量化の基本テクニック ~12min
 MRTKとBlenderで軽量化実践(前編) ~15min
 MRTKとBlenderで軽量化実践(後編) ~18min
 軽量化の応用テクニック ~20min
※ 全てUnityとBlenderベースでのお話
 軽くHoloLens紹介
 3Dモデル軽量化の基本テクニック
 MRTKとBlenderで軽量化実践(前編)
 MRTKとBlenderで軽量化実践(後編)
 軽量化の応用テクニック
・メッシュ、またはマテリアル
ごとに描画が行われる
・この重ね合わせで絵を作る
・メッシュやマテリアルの数が
増えれば増えるだけ、描画の
負荷が増えていく
1.要素数を減らす(メッシュ、マテリアル、頂点数など)
2.シェーダの負荷を減らす
1.数を減らす(メッシュ、マテリアル、頂点数など)
2.シェーダの負荷を減らす
・60FPSだと1秒に60回実行される
・Unlit シェーダとは照明の影響を
受けないシェーダ
・軽量化で最初に考えるべきは
その表現(機能)は必要かどうか
・不要な機能は使わない方が良い
・Unityアセットの「Mesh Baker」で
メッシュとマテリアルを結合できる
(https://assetstore.unity.com/packages/t
ools/modeling/mesh-baker-5017)
・3D編集ソフトの使い方が分からない
人はここから始めると良い
・この選択をできる人が実はとっても賢い
・今後どんなに勉強してもこれに勝る軽量化は実現できない
・特にHoloLensでは元より適切な照明設定が難しい
 最強の軽量化テクニック
 3Dモデル軽量化の基本テクニック
 MRTKとBlenderで軽量化実践(前編)
 MRTKとBlenderで軽量化実践(後編)
 軽量化の応用テクニック
・Microsoftが販売するMRデバイス
・透過ゴーグルで現実空間に
3Dモデルが投影される
・スタンドアローン型のデバイス
・音声認識、アイトラッキング、
ハンドトラッキングができる
・7月から個人でも購入可能に!
・HoloLensが好きな人が集まる
コミュニティイベント
・技術、仕事、趣味など何でもあり
・HoloLensはKinectの系譜に当たる
デバイス(Kinect第三世代)なので、
センサー技術に強い人が多い
・何故ならスタンドアローン型のデバイスは
リソースに限りがある
・描画負荷が高すぎるアプリは処理落ちする
・もしFPSが低下すると酔いやすくなったり
体験の質が著しく低下する
・3Dモデルの軽量化はFPSの向上に繋がる
・必ずデバイスの推奨FPSが公開されているので意識する
・例えば……
HoloLens は 60 FPS Oculus Quest は 72 FPS
 最強の軽量化テクニック
 軽くHoloLens紹介
 MRTKとBlenderで軽量化実践(前編)
 MRTKとBlenderで軽量化実践(後編)
 軽量化の応用テクニック
・CPUとGPUの負荷に影響する
・(基本的に)メッシュ毎に様々な処理が行われるため、
メッシュをまとめて数を減らすと負荷軽減につながる
・見た目を劣化させず、軽量化が行える
Blender例
・オブジェクト結合を使う
・マテリアルは自動では
結合されない
・GPUの負荷に影響する
・バッチングを活用できるようマテリアルをまとめると
負荷が大幅に改善されることがある
・リッチなシェーダはレンダリングへの影響が大きい
Blender例
・同じ質感のマテリアルを
1つにまとめる
・質感の情報をベイクする
・CPUとGPUの負荷に影響する
・スキニングやコライダーを利用する場合は注意する
・Staticなモデルでは影響は小さい
・コストと効果を考えて判断する
Blender例
・ポリゴン数削減(Decimate)
を利用する
・予めメッシュ毎に削減する
・VRAMが少ない環境では特に注意する
・大量の高解像度テクスチャがあるとVRAMが枯渇し、
GPUが性能を発揮できないことがある
・画像のフォーマットを最適化することでも圧縮できる
Blender例
・複数枚のテクスチャを
一枚の画像にベイクする
・アルファを使わない
・CPUの負荷に影響する
・ダイナミックボーンなどリアルタイムの物理演算は
負荷が大きい
・キャラクターの髪の毛ボーンなどの数に注意する
Unity/Blender例
・必要なボーン構成を確認して
ボーンを作成する
・不要なボーンは削除する
・GPUの負荷に影響する
・Transparentは不要なレンダリングが発生する原因になる
・レンダリングキューの順番に注意する
Unity例
・Transparentはなるべく
使わない
・どうしても必要な場合は
利用箇所を限定する
・CPUの負荷がボトルネックの時、
GPUの負荷を軽減しても解決しない
・GPUの負荷がボトルネックの時、
CPUの負荷を軽減しても解決しない
・さらに CPU と GPU 間のやり取りもボトルネックになる
 最強の軽量化テクニック
 軽くHoloLens紹介
 3Dモデル軽量化の基本テクニック
 MRTKとBlenderで軽量化実践(後編)
 軽量化の応用テクニック
・ここではMRTKを使って
様々なxRデバイスで使える
3Dモデルの軽量化を紹介する
・Unlitより少しリッチな表現が
軽量なシェーダで実現できる
https://microsoft.github.io/MixedRealityToolkit-Unity/README.html
・クロスプラットフォーム対応の
xRアプリ用ライブラリ
・xRアプリで活用できる様々な機能
が提供されている
・HoloLensで高いパフォーマンスを
維持するための軽量なStandard
シェーダが含まれている
・UnityのStandardシェーダに似た
質感を再現する軽量なシェーダ
・ユーザが有効化した機能のみの
最適化されたシェーダコードが
生成される
・サポート対象のデバイス環境で
利用可能
・4つの質感を
1つのテクスチャで保持する
- Metallic(金属光沢)
- Smoothness(表面の滑らかさ)
- Emission(発光)
- Occlusion(環境遮蔽の陰影)
・Blenderのマテリアル設定から
Metallic, Smoothness, Emission,
Occlusion の情報をテクスチャに
出力する
・Blenderで確認した質感をUnityで
そのまま再現できる
https://bluebirdofoz.hatenablog.com/entry/2020/07/28/231515
 最強の軽量化テクニック
 軽くHoloLens紹介
 3Dモデル軽量化の基本テクニック
 MRTKとBlenderで軽量化実践(前半)
 軽量化の応用テクニック
 最強の軽量化テクニック
 軽くHoloLens紹介
 3Dモデル軽量化の基本テクニック
 MRTKとBlenderで軽量化実践(前半)
 MRTKとBlenderで軽量化実践(後編)
・ポリゴン数削減で一律に頂点数を
減らすと、トポロジが荒くなる
・シュリンクラップを上手く使って
多角形ポリゴンでリトポロジする
https://bluebirdofoz.hatenablog.com/entry/2019/07/11/085616
https://bluebirdofoz.hatenablog.com/entry/2019/07/10/093602
・メッシュとテクスチャの結合は
Blenderの機能でも実行できる
・カラーのほか、ノーマルマップ、
影、環境光などもベイクできる
https://bluebirdofoz.hatenablog.com/entry/2020/07/11/173622
https://bluebirdofoz.hatenablog.com/entry/2020/07/09/231703
・キャラクターのモデルなど
特殊なモデルは最適化された
Blenderアドオンを使うと良い
・VRMモデルの取り込みや
VR Chat向けの最適化など
https://bluebirdofoz.hatenablog.com/entry/2020/04/20/224554
https://bluebirdofoz.hatenablog.com/entry/2019/02/17/185706
・Blenderのソースコードから
Pythonモジュールにビルドする
・スクリプトをCUI実行できるので
複数モデルの軽量化に役立つ
https://bluebirdofoz.hatenablog.com/entry/2019/10/13/112125
https://bluebirdofoz.hatenablog.com/entry/2019/09/28/194125
・レンダリング時の負荷を
確認できる
・Set Pass Call、Batchesの
数値に注意する
・Frame Debuggerで
Bathing処理を確認できる
https://bluebirdofoz.hatenablog.com/entry/2020/08/27/221011
・Batching活用の一例
・全てのモデルの色情報を
頂点カラーで保持すると
マテリアルを共通化できる
・利用するモデルによっては
負荷軽減に繋がる
https://bluebirdofoz.hatenablog.com/entry/2020/08/27/221011
20200831 x r_developerscommunityconference_holomon
20200831 x r_developerscommunityconference_holomon

More Related Content

More from Holo Mon

20230121_HoloLensMeetupVol32_Lt
20230121_HoloLensMeetupVol32_Lt20230121_HoloLensMeetupVol32_Lt
20230121_HoloLensMeetupVol32_LtHolo Mon
 
20220623_HoloLensMeetupVol30_Lt
20220623_HoloLensMeetupVol30_Lt20220623_HoloLensMeetupVol30_Lt
20220623_HoloLensMeetupVol30_LtHolo Mon
 
20220323_KobeHoloLensMeetupVol5_Lt_HoloMon.pptx
20220323_KobeHoloLensMeetupVol5_Lt_HoloMon.pptx20220323_KobeHoloLensMeetupVol5_Lt_HoloMon.pptx
20220323_KobeHoloLensMeetupVol5_Lt_HoloMon.pptxHolo Mon
 
20220118 holo lensmeetupvol29_lt_holomon
20220118 holo lensmeetupvol29_lt_holomon20220118 holo lensmeetupvol29_lt_holomon
20220118 holo lensmeetupvol29_lt_holomonHolo Mon
 
20210423 kobe meetupvol4lt
20210423 kobe meetupvol4lt20210423 kobe meetupvol4lt
20210423 kobe meetupvol4ltHolo Mon
 
20210322 holo lensmeetupvol25_lt_holomon
20210322 holo lensmeetupvol25_lt_holomon20210322 holo lensmeetupvol25_lt_holomon
20210322 holo lensmeetupvol25_lt_holomonHolo Mon
 
20210118 holo lensmeetupvol24_lt_holomon
20210118 holo lensmeetupvol24_lt_holomon20210118 holo lensmeetupvol24_lt_holomon
20210118 holo lensmeetupvol24_lt_holomonHolo Mon
 
20201003 kobe hololensmeetup_lt_holomon
20201003 kobe hololensmeetup_lt_holomon20201003 kobe hololensmeetup_lt_holomon
20201003 kobe hololensmeetup_lt_holomonHolo Mon
 
20200729 holo meetupvol21_lt_mrtk_channelmapmaker
20200729 holo meetupvol21_lt_mrtk_channelmapmaker20200729 holo meetupvol21_lt_mrtk_channelmapmaker
20200729 holo meetupvol21_lt_mrtk_channelmapmakerHolo Mon
 
xRLT vol.3 HoloMon LT
xRLT vol.3 HoloMon LTxRLT vol.3 HoloMon LT
xRLT vol.3 HoloMon LTHolo Mon
 
Hololens2 hackday 2020 in Tokyo
Hololens2 hackday 2020 in TokyoHololens2 hackday 2020 in Tokyo
Hololens2 hackday 2020 in TokyoHolo Mon
 
Hololen smeetup 13 holomon
Hololen smeetup 13 holomonHololen smeetup 13 holomon
Hololen smeetup 13 holomonHolo Mon
 
Holo mon in 3d viewer
Holo mon in 3d viewerHolo mon in 3d viewer
Holo mon in 3d viewerHolo Mon
 
RS4 Animation 3D Launchers
RS4 Animation 3D LaunchersRS4 Animation 3D Launchers
RS4 Animation 3D LaunchersHolo Mon
 
RS4 3D APP Launchers
RS4 3D APP LaunchersRS4 3D APP Launchers
RS4 3D APP LaunchersHolo Mon
 

More from Holo Mon (15)

20230121_HoloLensMeetupVol32_Lt
20230121_HoloLensMeetupVol32_Lt20230121_HoloLensMeetupVol32_Lt
20230121_HoloLensMeetupVol32_Lt
 
20220623_HoloLensMeetupVol30_Lt
20220623_HoloLensMeetupVol30_Lt20220623_HoloLensMeetupVol30_Lt
20220623_HoloLensMeetupVol30_Lt
 
20220323_KobeHoloLensMeetupVol5_Lt_HoloMon.pptx
20220323_KobeHoloLensMeetupVol5_Lt_HoloMon.pptx20220323_KobeHoloLensMeetupVol5_Lt_HoloMon.pptx
20220323_KobeHoloLensMeetupVol5_Lt_HoloMon.pptx
 
20220118 holo lensmeetupvol29_lt_holomon
20220118 holo lensmeetupvol29_lt_holomon20220118 holo lensmeetupvol29_lt_holomon
20220118 holo lensmeetupvol29_lt_holomon
 
20210423 kobe meetupvol4lt
20210423 kobe meetupvol4lt20210423 kobe meetupvol4lt
20210423 kobe meetupvol4lt
 
20210322 holo lensmeetupvol25_lt_holomon
20210322 holo lensmeetupvol25_lt_holomon20210322 holo lensmeetupvol25_lt_holomon
20210322 holo lensmeetupvol25_lt_holomon
 
20210118 holo lensmeetupvol24_lt_holomon
20210118 holo lensmeetupvol24_lt_holomon20210118 holo lensmeetupvol24_lt_holomon
20210118 holo lensmeetupvol24_lt_holomon
 
20201003 kobe hololensmeetup_lt_holomon
20201003 kobe hololensmeetup_lt_holomon20201003 kobe hololensmeetup_lt_holomon
20201003 kobe hololensmeetup_lt_holomon
 
20200729 holo meetupvol21_lt_mrtk_channelmapmaker
20200729 holo meetupvol21_lt_mrtk_channelmapmaker20200729 holo meetupvol21_lt_mrtk_channelmapmaker
20200729 holo meetupvol21_lt_mrtk_channelmapmaker
 
xRLT vol.3 HoloMon LT
xRLT vol.3 HoloMon LTxRLT vol.3 HoloMon LT
xRLT vol.3 HoloMon LT
 
Hololens2 hackday 2020 in Tokyo
Hololens2 hackday 2020 in TokyoHololens2 hackday 2020 in Tokyo
Hololens2 hackday 2020 in Tokyo
 
Hololen smeetup 13 holomon
Hololen smeetup 13 holomonHololen smeetup 13 holomon
Hololen smeetup 13 holomon
 
Holo mon in 3d viewer
Holo mon in 3d viewerHolo mon in 3d viewer
Holo mon in 3d viewer
 
RS4 Animation 3D Launchers
RS4 Animation 3D LaunchersRS4 Animation 3D Launchers
RS4 Animation 3D Launchers
 
RS4 3D APP Launchers
RS4 3D APP LaunchersRS4 3D APP Launchers
RS4 3D APP Launchers
 

20200831 x r_developerscommunityconference_holomon