SlideShare une entreprise Scribd logo
1  sur  21
Optimizing Rendering of
Looking Glass SDK
Yusuke Kurokawa
“Rendering” is the bottleneck
I want to play “LookingGlass” with my Laptop(MacBookPro2015)
not “VR Ready PC”.
I‘d like to optimize the rendering.
Before optimizing I have to know the current rendering.
Current Rendering...
• I launched “Unity FrameDebugger” and
“RenderDoc” to figure out current Rendering.
Flow of the Rendering
All tiles are drawn, and
then render for final
result.
Changing
View/Projection Matrix
and then drawing.
Repeat this step to fill
the tiled texture.
The bottleneck is here
The bottleneck is here!
Repeating many “Camera.Render” is the
bottleneck.
The idea to reduce the execute time ...
If we can choose the number of tiles
(ex. 3 * 4) , we can reduce the execute
time.
I found the setting
The setting is here.
In the“Holo PlayCapture”
prefab.
(I knew this setting from
source code).
Detail information
We can choose the size of texture and the numer of tiles.
The best setting is depends on Machine spec.
Mission Complete !!
No!! The “Quality” became lower!
There should be other things that we can
do.
Understand Camera.Render
Camera.Render
Culling ShadowMapPassDepthTexturePass Rendering
Blit to Tile
repeat
TileX × TileY
Understand Camera.Render
Camera.Render
Culling ShadowMapPassDepthTexturePass Rendering
Blit to Tile
repeat
TileX × TileY
“Culling” and “ShadowMapPass” are in the “repeat”...
But the result is not changed everytime.
We want to change to this way!
Camera.RenderCulling ShadowMapPass
DepthTexturePass Rendering
Blit to Tile
repeat
TileX × TileY
Executing Culling and creating ShadowMap before the
“Repeat”.
Changing the behavior of “Camera.Render”...
Oh we have SRP(Scriptable Render Pipeline)!
Yes!!!
We can implements original SRP!!!
My Custom RenderPipeline
Camera.RenderCulling ShadowMapPass
DepthTexturePass Rendering
Blit to Tile
repeat
TileX × TileY
This step was removed.
When I implemented my own RP based on LWRP...
* No cascade shadow and no screen base shadow.
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
I’m not satisfied with this....
Much more faster...
Much more optimization...
Throw away “user-friendly”.
Faster and faster!
- Special shaders should be written for this RenderPipeline.
- Throw away PostProcessing etc...
- Implements more things!
Much more faster...
Currently , complete to create RenderTexture and then Blit to this
Texture...
Why we don’t draw to this texture directly?
Camera.RenderCulling ShadowMapPass
Rendering
Blit to Tile
repeat
TileX × TileY
Much more faster...
To complete rendering result , there are some material changing...
Some material changing are in the “Repeat”...
I wanted remove “Repeat”....
Camera.RenderCulling ShadowMapPass
Rendering
Blit to Tile
repeat
TileX × TileY
Much more faster...
Camera.RenderCulling ShadowMapPass
Draw to texture directly with instancing!
“No Repeat” should be the fastest way!!
Now I’m trying...
trying at “feature/instancingdraw” branch

Contenu connexe

Tendances

Evaluation of equipment used
Evaluation of equipment usedEvaluation of equipment used
Evaluation of equipment used
baaa_sheep
 
5 tips for your HTML5 games
5 tips for your HTML5 games5 tips for your HTML5 games
5 tips for your HTML5 games
Ernesto Jiménez
 
Composing Basic Camera Shots
Composing Basic Camera ShotsComposing Basic Camera Shots
Composing Basic Camera Shots
santhak
 

Tendances (18)

Animations on Fire - Making Web animations fast
Animations on Fire - Making Web animations fastAnimations on Fire - Making Web animations fast
Animations on Fire - Making Web animations fast
 
【Unite 2017 Tokyo】Anima2Dについて語るで!2Dアニメーションの未来
【Unite 2017 Tokyo】Anima2Dについて語るで!2Dアニメーションの未来【Unite 2017 Tokyo】Anima2Dについて語るで!2Dアニメーションの未来
【Unite 2017 Tokyo】Anima2Dについて語るで!2Dアニメーションの未来
 
Serious Animation (an introduction to Web Animations)
Serious Animation (an introduction to Web Animations)Serious Animation (an introduction to Web Animations)
Serious Animation (an introduction to Web Animations)
 
About Cocos2djs
About Cocos2djsAbout Cocos2djs
About Cocos2djs
 
How we optimized our Game - Jake & Tess' Finding Monsters Adventure
How we optimized our Game - Jake & Tess' Finding Monsters AdventureHow we optimized our Game - Jake & Tess' Finding Monsters Adventure
How we optimized our Game - Jake & Tess' Finding Monsters Adventure
 
Game Engine for Serious Games
Game Engine for Serious GamesGame Engine for Serious Games
Game Engine for Serious Games
 
Mobile Performance Tuning: Poor Man's Tips And Tricks
Mobile Performance Tuning: Poor Man's Tips And TricksMobile Performance Tuning: Poor Man's Tips And Tricks
Mobile Performance Tuning: Poor Man's Tips And Tricks
 
【Unite 2017 Tokyo】Unity UI最適化ガイド 〜ベストプラクティスと新機能
【Unite 2017 Tokyo】Unity UI最適化ガイド 〜ベストプラクティスと新機能【Unite 2017 Tokyo】Unity UI最適化ガイド 〜ベストプラクティスと新機能
【Unite 2017 Tokyo】Unity UI最適化ガイド 〜ベストプラクティスと新機能
 
Stupid Canvas Tricks
Stupid Canvas TricksStupid Canvas Tricks
Stupid Canvas Tricks
 
Evaluation of equipment used
Evaluation of equipment usedEvaluation of equipment used
Evaluation of equipment used
 
Fast rendering with starling
Fast rendering with starlingFast rendering with starling
Fast rendering with starling
 
Game Engine Architecture
Game Engine ArchitectureGame Engine Architecture
Game Engine Architecture
 
Equipment list
Equipment listEquipment list
Equipment list
 
Design your 3d game engine
Design your 3d game engineDesign your 3d game engine
Design your 3d game engine
 
5 tips for your HTML5 games
5 tips for your HTML5 games5 tips for your HTML5 games
5 tips for your HTML5 games
 
Composing Basic Camera Shots
Composing Basic Camera ShotsComposing Basic Camera Shots
Composing Basic Camera Shots
 
【Unite 2017 Tokyo】インスタンシングを用いた美麗なグラフィックの実現方法
【Unite 2017 Tokyo】インスタンシングを用いた美麗なグラフィックの実現方法【Unite 2017 Tokyo】インスタンシングを用いた美麗なグラフィックの実現方法
【Unite 2017 Tokyo】インスタンシングを用いた美麗なグラフィックの実現方法
 
10 things I've learned when working with html5 canvas
10 things I've learned when working with html5 canvas10 things I've learned when working with html5 canvas
10 things I've learned when working with html5 canvas
 

Similaire à Looking glassrenderinglt en

What is 3 d modeling unit 66
What is 3 d modeling   unit 66What is 3 d modeling   unit 66
What is 3 d modeling unit 66
Richard Marshall
 
Uncharted3 effect technique
Uncharted3 effect techniqueUncharted3 effect technique
Uncharted3 effect technique
MinGeun Park
 
Alex_Vlachos_Advanced_VR_Rendering_Performance_GDC2016
Alex_Vlachos_Advanced_VR_Rendering_Performance_GDC2016Alex_Vlachos_Advanced_VR_Rendering_Performance_GDC2016
Alex_Vlachos_Advanced_VR_Rendering_Performance_GDC2016
Alex Vlachos
 

Similaire à Looking glassrenderinglt en (20)

GDSC KIIT Huddle Session 4 - "Graphics Pipelining"
GDSC KIIT Huddle Session 4 - "Graphics Pipelining"GDSC KIIT Huddle Session 4 - "Graphics Pipelining"
GDSC KIIT Huddle Session 4 - "Graphics Pipelining"
 
Umbra Ignite 2015: Alex Evans – Learning from failure – prototypes, R&D, iter...
Umbra Ignite 2015: Alex Evans – Learning from failure – prototypes, R&D, iter...Umbra Ignite 2015: Alex Evans – Learning from failure – prototypes, R&D, iter...
Umbra Ignite 2015: Alex Evans – Learning from failure – prototypes, R&D, iter...
 
Ha4 constraints
Ha4   constraintsHa4   constraints
Ha4 constraints
 
Javascript Animation with Canvas - Gregory Starr 2015
Javascript Animation with Canvas - Gregory Starr 2015Javascript Animation with Canvas - Gregory Starr 2015
Javascript Animation with Canvas - Gregory Starr 2015
 
Alexey Savchenko, Unreal Engine
Alexey Savchenko, Unreal EngineAlexey Savchenko, Unreal Engine
Alexey Savchenko, Unreal Engine
 
Understanding hardware acceleration on mobile browsers presentation
Understanding hardware acceleration on mobile browsers presentationUnderstanding hardware acceleration on mobile browsers presentation
Understanding hardware acceleration on mobile browsers presentation
 
Understanding Hardware Acceleration on Mobile Browsers
Understanding Hardware Acceleration on Mobile BrowsersUnderstanding Hardware Acceleration on Mobile Browsers
Understanding Hardware Acceleration on Mobile Browsers
 
Luis cataldi-ue4-vr-best-practices2
Luis cataldi-ue4-vr-best-practices2Luis cataldi-ue4-vr-best-practices2
Luis cataldi-ue4-vr-best-practices2
 
Chance's "Visual Effects" Lecture
Chance's "Visual Effects" LectureChance's "Visual Effects" Lecture
Chance's "Visual Effects" Lecture
 
WebXR and Browsers
WebXR and BrowsersWebXR and Browsers
WebXR and Browsers
 
Killzone Shadow Fall Demo Postmortem
Killzone Shadow Fall Demo PostmortemKillzone Shadow Fall Demo Postmortem
Killzone Shadow Fall Demo Postmortem
 
XR graphics in Unity: delivering the best AR/VR experiences – Unite Copenhage...
XR graphics in Unity: delivering the best AR/VR experiences – Unite Copenhage...XR graphics in Unity: delivering the best AR/VR experiences – Unite Copenhage...
XR graphics in Unity: delivering the best AR/VR experiences – Unite Copenhage...
 
Martin Naumann "Life of a pixel: Web rendering performance"
Martin Naumann "Life of a pixel: Web rendering performance"Martin Naumann "Life of a pixel: Web rendering performance"
Martin Naumann "Life of a pixel: Web rendering performance"
 
What is 3 d modeling unit 66
What is 3 d modeling   unit 66What is 3 d modeling   unit 66
What is 3 d modeling unit 66
 
Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...
Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...
Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...
 
Technologies Used In Graphics Rendering
Technologies Used In Graphics RenderingTechnologies Used In Graphics Rendering
Technologies Used In Graphics Rendering
 
Uncharted3 effect technique
Uncharted3 effect techniqueUncharted3 effect technique
Uncharted3 effect technique
 
FGS 2011: Making A Game With Molehill: Zombie Tycoon
FGS 2011: Making A Game With Molehill: Zombie TycoonFGS 2011: Making A Game With Molehill: Zombie Tycoon
FGS 2011: Making A Game With Molehill: Zombie Tycoon
 
Alex_Vlachos_Advanced_VR_Rendering_Performance_GDC2016
Alex_Vlachos_Advanced_VR_Rendering_Performance_GDC2016Alex_Vlachos_Advanced_VR_Rendering_Performance_GDC2016
Alex_Vlachos_Advanced_VR_Rendering_Performance_GDC2016
 
Running HTML5 Mobile Web Games at 60fps
Running HTML5 Mobile Web Games at 60fpsRunning HTML5 Mobile Web Games at 60fps
Running HTML5 Mobile Web Games at 60fps
 

Plus de 優介 黒河

Unityで炎上から身を守る方法
Unityで炎上から身を守る方法Unityで炎上から身を守る方法
Unityで炎上から身を守る方法
優介 黒河
 

Plus de 優介 黒河 (10)

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

Dernier

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Dernier (20)

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 

Looking glassrenderinglt en

  • 1. Optimizing Rendering of Looking Glass SDK Yusuke Kurokawa
  • 2. “Rendering” is the bottleneck I want to play “LookingGlass” with my Laptop(MacBookPro2015) not “VR Ready PC”. I‘d like to optimize the rendering. Before optimizing I have to know the current rendering.
  • 3. Current Rendering... • I launched “Unity FrameDebugger” and “RenderDoc” to figure out current Rendering.
  • 4. Flow of the Rendering All tiles are drawn, and then render for final result. Changing View/Projection Matrix and then drawing. Repeat this step to fill the tiled texture.
  • 5. The bottleneck is here The bottleneck is here! Repeating many “Camera.Render” is the bottleneck.
  • 6. The idea to reduce the execute time ... If we can choose the number of tiles (ex. 3 * 4) , we can reduce the execute time.
  • 7. I found the setting The setting is here. In the“Holo PlayCapture” prefab. (I knew this setting from source code).
  • 8. Detail information We can choose the size of texture and the numer of tiles. The best setting is depends on Machine spec.
  • 9. Mission Complete !! No!! The “Quality” became lower! There should be other things that we can do.
  • 11. Understand Camera.Render Camera.Render Culling ShadowMapPassDepthTexturePass Rendering Blit to Tile repeat TileX × TileY “Culling” and “ShadowMapPass” are in the “repeat”... But the result is not changed everytime.
  • 12. We want to change to this way! Camera.RenderCulling ShadowMapPass DepthTexturePass Rendering Blit to Tile repeat TileX × TileY Executing Culling and creating ShadowMap before the “Repeat”.
  • 13. Changing the behavior of “Camera.Render”... Oh we have SRP(Scriptable Render Pipeline)! Yes!!! We can implements original SRP!!!
  • 14. My Custom RenderPipeline Camera.RenderCulling ShadowMapPass DepthTexturePass Rendering Blit to Tile repeat TileX × TileY This step was removed. When I implemented my own RP based on LWRP... * No cascade shadow and no screen base shadow.
  • 15. 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
  • 16. I’m not satisfied with this.... Much more faster... Much more optimization...
  • 17. Throw away “user-friendly”. Faster and faster! - Special shaders should be written for this RenderPipeline. - Throw away PostProcessing etc... - Implements more things!
  • 18. Much more faster... Currently , complete to create RenderTexture and then Blit to this Texture... Why we don’t draw to this texture directly? Camera.RenderCulling ShadowMapPass Rendering Blit to Tile repeat TileX × TileY
  • 19. Much more faster... To complete rendering result , there are some material changing... Some material changing are in the “Repeat”... I wanted remove “Repeat”.... Camera.RenderCulling ShadowMapPass Rendering Blit to Tile repeat TileX × TileY
  • 20. Much more faster... Camera.RenderCulling ShadowMapPass Draw to texture directly with instancing! “No Repeat” should be the fastest way!!
  • 21. Now I’m trying... trying at “feature/instancingdraw” branch