SlideShare uma empresa Scribd logo
1 de 21
Looking Glassの
Rendering処理を最適化してみる
黒河 優介
Looking Glassの
Rendering負荷は高い…
手元のMacBookPro2015じゃ手に負えないほどの描画負荷に……
ゲーミングPCじゃなくて、手元のノートPCで動かしたい!!!
最適化できないか調べよう!
その前に描画の仕組みを知ろう!
描画について調べてみる
• まずは描画の状態を知るために
Unity FrameDebuggerとRenderDocを立ち上げ
ました
描画の流れ
全て敷き詰めたら最終
結果を描画します
Cameraをちょっとず
つずらして描画し、そ
の結果をタイル状に敷
き詰めていきます
負荷を見ると…
重いのは Cameraのレンダリングをかなりの
回数するのが原因です!
別のRenderTextureへの転送や最終結果出力
は大したことありませんでした
描画負荷を下げるアイディア
このテクスチャを作るのが負荷の大部分
であるなら…
ここの解像度や、描画する回数(5×9)
以外を選択できれば軽くなるんでは…
実は変えられました!!
HoloPlay Capture の
Quiltで実は描画の負荷
を変更できます。
ソース見て知りました…
設定詳細
タイルの数やTextureの解像度などなどはある程度自由に変更で
きます。
まずはマシンスペックに合わせていくのが良さそうです。
はい完了!!
ではありません!!!
クオリティが下がっています!!!!
もっと出来ることはあるはず!!
Camera.Renderを分解してみる
Camera.Render
Culling ShadowMapPassDepthTexturePass Rendering
Blit to Tile
repeat
TileX × TileY
Camera.Renderを分解してみる
Camera.Render
Culling ShadowMapPassDepthTexturePass Rendering
Blit to Tile
repeat
TileX × TileY
ここの処理はループ処理の中でやっていますが、カメラを少しずらした
程度では処理内容の結果が変わらないはずです…。
こうなると良さそうな…
Camera.RenderCulling ShadowMapPass
DepthTexturePass Rendering
Blit to Tile
repeat
TileX × TileY
最初にCullingとShadowMap生成を事前に処理しておいて、
処理をループの外に出してしまいます
Camera.Renderの中身を変更する…
SRP(Scriptable Render Pipeline)で
何とかなりそう!!
そうだ!専用のSRP作っちまえ!
RenderPipelineで実現する事
Camera.RenderCulling ShadowMapPass
DepthTexturePass Rendering
Blit to Tile
repeat
TileX × TileY
LWRPベースにして、影周りに条件付けたら
ここもなりました!!
Camera.RenderCulling ShadowMapPass
Rendering
Blit To Tile
repeat
TileX × TileY
Camera.Render
Culling ShadowMapPassDepthTexturePass Rendering
Blit To Tile
repeat
TileX × TileY
SourceCode
https://github.com/wotakuro/LookingGlassRenderPipeline
Before
After
これでも満足出来ず…
もっと高みのパフォーマンスへ……
汎用性を捨てて速度を稼ぎに行く!
・専用のCustomShaderでしか動かない前提にしてしまう。
・ポストプロセスは諦める
・自前実装の覚悟を決める!
さらなる高みへ…
一旦RenderingTextureに完成形の絵を描いてから転送していますが…
直接このTileに描けばよいのでは…
Camera.RenderCulling ShadowMapPass
Rendering
Blit to Tile
repeat
TileX × TileY
さらなる高みへ…
Material切り替えしながら1枚ずつ絵を完成させている現状…
このループ処理止めたい…。
Camera.RenderCulling ShadowMapPass
Rendering
Blit to Tile
repeat
TileX × TileY
最速を求めて…
Camera.RenderCulling ShadowMapPass
Instancingで 直接 TileするTextureに描き込みます!!
ループそのものをなくす事で爆速になるに違いないデス!
現在、試行錯誤中…
trying at “feature/instancingdraw” branch

Mais conteúdo relacionado

Semelhante a LookingGlass RenderingOptimizePlan(JP)

実行時ライトベイクをShaderでやってみた
実行時ライトベイクをShaderでやってみた実行時ライトベイクをShaderでやってみた
実行時ライトベイクをShaderでやってみた優介 黒河
 
【Unity道場Houdini編】UnityとHoudiniで作るRealtimeVFX実践解説 後編
【Unity道場Houdini編】UnityとHoudiniで作るRealtimeVFX実践解説 後編【Unity道場Houdini編】UnityとHoudiniで作るRealtimeVFX実践解説 後編
【Unity道場Houdini編】UnityとHoudiniで作るRealtimeVFX実践解説 後編UnityTechnologiesJapan002
 
Unityとスマートフォンアプリの最適化
Unityとスマートフォンアプリの最適化Unityとスマートフォンアプリの最適化
Unityとスマートフォンアプリの最適化COLOPL, Inc.
 
CGWORLD 2021 クリエイティブカンファレンス
CGWORLD 2021 クリエイティブカンファレンス CGWORLD 2021 クリエイティブカンファレンス
CGWORLD 2021 クリエイティブカンファレンス KLab Inc. Creative
 
Session kuma
Session kumaSession kuma
Session kumakumanomi
 
TAと歩くGDC2013報告会資料
TAと歩くGDC2013報告会資料TAと歩くGDC2013報告会資料
TAと歩くGDC2013報告会資料fumoto kazuhiro
 

Semelhante a LookingGlass RenderingOptimizePlan(JP) (6)

実行時ライトベイクをShaderでやってみた
実行時ライトベイクをShaderでやってみた実行時ライトベイクをShaderでやってみた
実行時ライトベイクをShaderでやってみた
 
【Unity道場Houdini編】UnityとHoudiniで作るRealtimeVFX実践解説 後編
【Unity道場Houdini編】UnityとHoudiniで作るRealtimeVFX実践解説 後編【Unity道場Houdini編】UnityとHoudiniで作るRealtimeVFX実践解説 後編
【Unity道場Houdini編】UnityとHoudiniで作るRealtimeVFX実践解説 後編
 
Unityとスマートフォンアプリの最適化
Unityとスマートフォンアプリの最適化Unityとスマートフォンアプリの最適化
Unityとスマートフォンアプリの最適化
 
CGWORLD 2021 クリエイティブカンファレンス
CGWORLD 2021 クリエイティブカンファレンス CGWORLD 2021 クリエイティブカンファレンス
CGWORLD 2021 クリエイティブカンファレンス
 
Session kuma
Session kumaSession kuma
Session kuma
 
TAと歩くGDC2013報告会資料
TAと歩くGDC2013報告会資料TAと歩くGDC2013報告会資料
TAと歩くGDC2013報告会資料
 

Mais de 優介 黒河

Looking glasslt4 kurokawa
Looking glasslt4 kurokawaLooking glasslt4 kurokawa
Looking glasslt4 kurokawa優介 黒河
 
Looking glass + videoplayer
Looking glass + videoplayerLooking glass + videoplayer
Looking glass + videoplayer優介 黒河
 
Looking glassrenderinglt en
Looking glassrenderinglt enLooking glassrenderinglt en
Looking glassrenderinglt en優介 黒河
 
PHPからJavaへ乗り換えた。そんな昔話をしよう
PHPからJavaへ乗り換えた。そんな昔話をしようPHPからJavaへ乗り換えた。そんな昔話をしよう
PHPからJavaへ乗り換えた。そんな昔話をしよう優介 黒河
 
Moverio+unityで始めるarグラスアプリ開発
Moverio+unityで始めるarグラスアプリ開発Moverio+unityで始めるarグラスアプリ開発
Moverio+unityで始めるarグラスアプリ開発優介 黒河
 
Unityで炎上から身を守る方法
Unityで炎上から身を守る方法Unityで炎上から身を守る方法
Unityで炎上から身を守る方法優介 黒河
 
一般的なチートの手法と対策について
一般的なチートの手法と対策について一般的なチートの手法と対策について
一般的なチートの手法と対策について優介 黒河
 
ウェアラブル勉強会 東京#2
ウェアラブル勉強会 東京#2ウェアラブル勉強会 東京#2
ウェアラブル勉強会 東京#2優介 黒河
 
未来ガジェットMoverioを手に入れたぞ
未来ガジェットMoverioを手に入れたぞ未来ガジェットMoverioを手に入れたぞ
未来ガジェットMoverioを手に入れたぞ優介 黒河
 

Mais de 優介 黒河 (9)

Looking glasslt4 kurokawa
Looking glasslt4 kurokawaLooking glasslt4 kurokawa
Looking glasslt4 kurokawa
 
Looking glass + videoplayer
Looking glass + videoplayerLooking glass + videoplayer
Looking glass + videoplayer
 
Looking glassrenderinglt en
Looking glassrenderinglt enLooking glassrenderinglt en
Looking glassrenderinglt en
 
PHPからJavaへ乗り換えた。そんな昔話をしよう
PHPからJavaへ乗り換えた。そんな昔話をしようPHPからJavaへ乗り換えた。そんな昔話をしよう
PHPからJavaへ乗り換えた。そんな昔話をしよう
 
Moverio+unityで始めるarグラスアプリ開発
Moverio+unityで始めるarグラスアプリ開発Moverio+unityで始めるarグラスアプリ開発
Moverio+unityで始めるarグラスアプリ開発
 
Unityで炎上から身を守る方法
Unityで炎上から身を守る方法Unityで炎上から身を守る方法
Unityで炎上から身を守る方法
 
一般的なチートの手法と対策について
一般的なチートの手法と対策について一般的なチートの手法と対策について
一般的なチートの手法と対策について
 
ウェアラブル勉強会 東京#2
ウェアラブル勉強会 東京#2ウェアラブル勉強会 東京#2
ウェアラブル勉強会 東京#2
 
未来ガジェットMoverioを手に入れたぞ
未来ガジェットMoverioを手に入れたぞ未来ガジェットMoverioを手に入れたぞ
未来ガジェットMoverioを手に入れたぞ
 

Último

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 

Último (7)

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 

LookingGlass RenderingOptimizePlan(JP)