Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
Luis Cataldi - Director of Education and Learning - Epic Games
Making High Quality VR with Unreal Engine
Launch the project  Double clicking on the
.uproject file
Launch the project  The Outpost 23 Landri
map file will load by
default
Content Consideration For High Quality VR  The Outpost 23 Landri
map file will load by
default
Content Consideration For High Quality VR  The Outpost 23 Landri
map file will load by
default
 This is a large map with...
Outpost 23 is kind of a Modular Lego Building  Outpost 23 is assembled
from over 4000 modular
static mesh pieces which
ar...
Explore the Outpost 23 Env Art Map  Explore the Outpost 23
Env Art Map in the root
folder to see all the
modular building...
Master Materials & Material Instances  Optimized workflow
feature
 Material Instances allow
you to make “on the fly”
cha...
Deferred Decals  Help visually to break up
repeating textures
 Help visually to break up
modular meshes
 Help visually ...
Deferred Decals  Use Deferred Decal
Material Domains
 Translucent Blend Modes
 Options for using various
Decal Blend Mo...
There is Always a Compromise Between Losses and Gains  You will often lose one thing
to gain another
 Find the ideal bal...
Looking at the Lighting of the map  Most localized lights are
set to Static and become
precomputed light maps
and shadow ...
Lighting Mobility and Precomputed Lighting  The idea of storing or
baking complex lighting
calculations into textures
is ...
High Quality Reflections in VR  Use Reflection probes
instead of screen space
reflections.
 By default, only the
nearest...
Forward Shading Renderer for VR  By default, Unreal Engine 4 uses
a Deferred Renderer as it
provides the most versatility...
Forward Shading Renderer for VR  Full support for stationary
lights, including dynamic
shadows from movable
objects which...
A Deferred Rendered View of the Map  By default, Unreal Engine 4 uses
a Deferred Renderer as it
provides the most versati...
Multi Sample Anti-Aliasing (MSAA) vs Temporal Anti-Aliasing (TAA)  Projects that choose to use
MSAA will want to build co...
Multi Sample Anti-Aliasing (MSAA) vs Temporal Anti-Aliasing (TAA)  Projects that choose to use
MSAA will want to build co...
There are Advantages to Each Renderer
The UE4 Deferred Render is a full-featured workhorse, but takes a bit of skill to
fu...
GPU Profiler (Ctrl+Shift+,)  The GPU Profiler allows you to
quickly identify the GPU cost of
the various passes, sometime...
Profile Often and Maintain Performance Goals  Check your performance
constantly to ensure that you
are hitting your VR pe...
Launching VR Preview  Testing out your VR headset is
straightforward, simply select
“VR Preview” from the Play
dropdown b...
Platform Support As of 4.12, we support the
following platforms out of the box:
 Oculus Rift
 Steam VR (including the HT...
Create once, and deploy anywhere.
Mobile
Desktop / Console
Oculus Rift
HTC Vive / Steam VR
PSVR
OSVR
Samsung Gear VR
Googl...
Platform Support All of these platforms go through
UE4’s common VR interfaces, so
you can make your content once,
and depl...
VR Project Template  We have templates designed for
Virtual Reality
 The template can be selected
from the Blueprint tab...
Design Considerations for VR
A significan consideration when desinging
for VR is how to minimize/prevent
Motion/Simulation Sickness.
How is it Motion/Simulation Sickness
caused?
en.wikipedia.org/wiki/Virtual_reality_sickness
Sensory conflict theory believes that sickness will occur when a
user's per...
Five typical causes of Motion/Simulation Sickness in VR
Further Reading
 Any, most, some, Non-forward movement
 The awar...
The Unreal Engine Framework
GameInstance
GameMode
Pawn Class
HUD Class
PlayerController
Class
GameState
Class
PlayerState
...
GameInstance
GameMode
Pawn Class
HUD Class
PlayerController
Class
GameState
Class
PlayerState
Class
The GameMode is the de...
GameInstance
GameMode
Pawn Class
HUD Class
PlayerController
Class
GameState
Class
PlayerState
Class
The Pawn class is the ...
GameInstance
GameMode
Pawn Class
HUD Class
PlayerController
Class
GameState
Class
PlayerState
Class
A PlayerController is ...
GameInstance
GameMode
Pawn Class
HUD Class
PlayerController
Class
GameState
Class
PlayerState
Class
The GameInstance is a ...
GameInstance
GameMode
Pawn Class
HUD Class
PlayerController
Class
GameState
Class
PlayerState
Class
A PlayerState is the s...
GameInstance
GameMode
Pawn Class
HUD Class
PlayerController
Class
GameState
Class
PlayerState
Class
The GameState contains...
GameInstance
GameMode
Pawn Class
HUD Class
PlayerController
Class
GameState
Class
PlayerState
Class
The HUD is the base ob...
Object
Actor
Pawn
Character
Base building blocks in the Unreal Engine
Any object that can be placed into a level
Subclass ...
CharacterMovementComponent
Pawn
Character
Default Pawn
Wheeled
Vehicle
CapsuleComponent
SkeletalMeshComponent
Etc.
Vehicle...
How can we learn to harness
the power of Unreal Engine?
VR Learning Resources for Unreal Engine Starting Out:
• Oculus Quick Starts
• SteamVR Quick Start
• Google VR Quick Start
...
Video:
• 2015 UE4 - VR and Unreal Engine
• Making Bullet Train and Going off the Rails in VR
• VR Bow and Arrow Tutorial w...
VR Learning Resources for Unreal Engine
VR Editor Starting Out:
• Activating VR Mode
VR Editor Guides:
• Setting Up VR Edi...
The Unreal Engine Release Notes
Education Community VR for UE4
Mitchell McCaffrey’s - Mitch VR Labs
• Mitch's VR Lab - an Introduction
• Mitch's VR Lab - ...
Education Community VR for UE4
Education Community VR for UE4
Free Unreal Engine Courses:
• Twin Stick Shooter
• 3rd Person Power-Up Game with C++
• 2D S...
Education Community VR for UE4
Free UE4 Community Blueprints:
• Communication Training - Zak Parrish
• Blueprints Compendi...
Thanks for leanring with us.
You can download the project file that was used for
the VRLA 17 worshop at the THIS link.
Luis Cataldi - Director of Educa...
Nächste SlideShare
Wird geladen in …5
×

Making High Quality Interactive VR with Unreal Engine Luis Cataldi

3.346 Aufrufe

Veröffentlicht am

The slide deck from my VRLA 2017 VR workshop.

Veröffentlicht in: Bildung

Making High Quality Interactive VR with Unreal Engine Luis Cataldi

  1. 1. Luis Cataldi - Director of Education and Learning - Epic Games Making High Quality VR with Unreal Engine
  2. 2. Launch the project  Double clicking on the .uproject file
  3. 3. Launch the project  The Outpost 23 Landri map file will load by default
  4. 4. Content Consideration For High Quality VR  The Outpost 23 Landri map file will load by default
  5. 5. Content Consideration For High Quality VR  The Outpost 23 Landri map file will load by default  This is a large map with over 4000 static meshes in the level  6.444,028 triangles in the level
  6. 6. Outpost 23 is kind of a Modular Lego Building  Outpost 23 is assembled from over 4000 modular static mesh pieces which are grid snapped together
  7. 7. Explore the Outpost 23 Env Art Map  Explore the Outpost 23 Env Art Map in the root folder to see all the modular building blocks
  8. 8. Master Materials & Material Instances  Optimized workflow feature  Material Instances allow you to make “on the fly” changes to a Material without the engine having to do heavy computation or recalculation of shaders.  Material Instances can also be changed at Runtime since they do not require recalculation.  All Parameterized nodes from the Master Material are editable Great tutorial on the creation of the master materials for Outpost 23 by Tech Artist Scott www.epicgames.com/unrealtournament/blog/outpost-23-texturing-ddo-painter-quixel-suite
  9. 9. Deferred Decals  Help visually to break up repeating textures  Help visually to break up modular meshes  Help visually to break up the overall tone of a map that uses master materials and material instances for optomizations
  10. 10. Deferred Decals  Use Deferred Decal Material Domains  Translucent Blend Modes  Options for using various Decal Blend Modes
  11. 11. There is Always a Compromise Between Losses and Gains  You will often lose one thing to gain another  Find the ideal balance between all considerations  Looking for as many efficient ways of doing things as possible  Build a pipelines to observe the restrictions  Offload as much as you can to pre-calculated elements  The solutions to balance is often a mix of the three
  12. 12. Looking at the Lighting of the map  Most localized lights are set to Static and become precomputed light maps and shadow maps  Some lights are set to Stationary and have a dynamic component that can be used interactively  There is one Directional Light that serves at the Moon Light though there is no need to have it be fully Dynamic  This environment has no dynamic lights, which is good for VR performance Use the console command Stat LightRendering to see current lighting cost.
  13. 13. Lighting Mobility and Precomputed Lighting  The idea of storing or baking complex lighting calculations into textures is called lightmapping. It works by calculating how complex lighting should look on all surfaces by storing those results into a texture using a built in tool called LightMass  It uses those textures to map the results on all the surfaces of your level  This is known as a Precomputed Lighting Path StaticLight Lights that cannot be changed or moved in any way at runtime and are calculated only within Lightmaps. Stationary Light Lights that are intended to stay in one position, but unlike Static Lights, are able to change in other ways such as brightness or color. Movable Light Lights that can be moved and changed in game (e.g. headlights on a car or flashlights).
  14. 14. High Quality Reflections in VR  Use Reflection probes instead of screen space reflections.  By default, only the nearest reflection capture will be applied without parallax correction unless the material opts-in to High Quality Reflections
  15. 15. Forward Shading Renderer for VR  By default, Unreal Engine 4 uses a Deferred Renderer as it provides the most versatility and grants access to more rendering features.  However, there are some trade- offs in using the Deferred Renderer that might not be right for all VR experiences. Forward Rendering provides a faster baseline, with faster rendering passes, which may lead to better performance on VR platforms.  Not only is Forward Rendering faster, it also provides better anti-aliasing options than the Deferred Renderer, which may lead to better visuals. The Forward Renderer works by culling lights and Reflection Captures to a frustum-space grid. Each pixel in the forward pass then iterates over the lights and Reflection Captures affecting it, sharing the material with them. Dynamic Shadows for Stationary Lights are computed beforehand and packed into channels of a screen-space shadow mask, leveraging the existing limit of 4 overlapping Stationary Lights.
  16. 16. Forward Shading Renderer for VR  Full support for stationary lights, including dynamic shadows from movable objects which blend together with precomputed environment shadows  Multiple reflection captures blended together with parallax correction  Planar reflections of a partial scene, composited into reflection captures  D-Buffer decals  Precomputed lighting and skylights  Unshadowed movable lights  Capsule shadows  Instanced stereo compatible
  17. 17. A Deferred Rendered View of the Map  By default, Unreal Engine 4 uses a Deferred Renderer as it provides the most versatility and grants access to more rendering features.  However, there are some trade- offs in using the Deferred Renderer that might not be right for all VR experiences. Forward Rendering provides a faster baseline, with faster rendering passes, which may lead to better performance on VR platforms.  Not only is Forward Rendering faster, it also provides better anti-aliasing options than the Deferred Renderer, which may lead to better visuals. Deferred Renderer Buffer Visualizations
  18. 18. Multi Sample Anti-Aliasing (MSAA) vs Temporal Anti-Aliasing (TAA)  Projects that choose to use MSAA will want to build content to mitigate specular aliasing. The ‘Normal to Roughness’ feature can help reduce specular aliasing from detailed normal maps. Automatic LOD generation for static meshes can flatten features on distant meshes and help reduce aliasing from small triangles.  In our tests, using MSAA instead of TAA increases GPU frame time by about 25%. Actual cost will depend on your content. The forward renderer supports both multi sample anti-aliasing (MSAA) and temporal anti-aliasing (TAA). In most cases TAA is preferable because it removes both geometric aliasing and specular aliasing. In VR, the constant sub-pixel movement introduced by head tracking introduces unwanted blurriness, making MSAA a better choice.
  19. 19. Multi Sample Anti-Aliasing (MSAA) vs Temporal Anti-Aliasing (TAA)  Projects that choose to use MSAA will want to build content to mitigate specular aliasing. The ‘Normal to Roughness’ feature can help reduce specular aliasing from detailed normal maps. Automatic LOD generation for static meshes can flatten features on distant meshes and help reduce aliasing from small triangles.  In our tests, using MSAA instead of TAA increases GPU frame time by about 25%. Actual cost will depend on your content.
  20. 20. There are Advantages to Each Renderer The UE4 Deferred Render is a full-featured workhorse, but takes a bit of skill to fully leverage. Temporal Anti-Aliasing limits how sharp your image can be. A new UE4 Forward Renderer will be a specialized renderer, with less features, but faster baseline. Multi Sampling Anti-Aliasing (MSAA) is the sharpest solution for anti-aliasing.
  21. 21. GPU Profiler (Ctrl+Shift+,)  The GPU Profiler allows you to quickly identify the GPU cost of the various passes, sometimes down to the draw calls.  The data is based on GPU timestamps and is usually quite accurate.  The GPU Profiler can shows the light name which makes it easier for the artist to optimize the right light source.
  22. 22. Profile Often and Maintain Performance Goals  Check your performance constantly to ensure that you are hitting your VR performance targets.  LOD's and aggressive culling are a must to ensure that you are hitting your VR performance targets.  Due to the demanding requirements of VR many of the advanced Post Processing features that are normally use should be set to `0`.
  23. 23. Launching VR Preview  Testing out your VR headset is straightforward, simply select “VR Preview” from the Play dropdown button. By default the head tracking will work without changes to your existing project or template.
  24. 24. Platform Support As of 4.12, we support the following platforms out of the box:  Oculus Rift  Steam VR (including the HTC Vive)  PSVR  OSVR (preview)  Samsung Gear VR  Google Daydream  Leap Motion
  25. 25. Create once, and deploy anywhere. Mobile Desktop / Console Oculus Rift HTC Vive / Steam VR PSVR OSVR Samsung Gear VR Google Daydream
  26. 26. Platform Support All of these platforms go through UE4’s common VR interfaces, so you can make your content once, and deploy it anywhere. • Unified Camera System • Motion Controller System • Optimized rendering paths • Low-latency optimizations Oculus Vive PSVR OSVR
  27. 27. VR Project Template  We have templates designed for Virtual Reality  The template can be selected from the Blueprint tab as a new project is created.  The motion controller template provides examples for object interaction and manipulation as well as point based teleportation.
  28. 28. Design Considerations for VR
  29. 29. A significan consideration when desinging for VR is how to minimize/prevent Motion/Simulation Sickness.
  30. 30. How is it Motion/Simulation Sickness caused?
  31. 31. en.wikipedia.org/wiki/Virtual_reality_sickness Sensory conflict theory believes that sickness will occur when a user's perception of self-motion is based on incongruent sensory inputs from the visual system,vestibular system, and non- vestibular proprioceptors, and particularly so when these inputs are at odds with the user's expectation based on prior experience.
  32. 32. Five typical causes of Motion/Simulation Sickness in VR Further Reading  Any, most, some, Non-forward movement  The awareness of Vection (When a large part of the visual field is moving and the viewer feels like she has moved while the world is stationary)  The feeling of accelerations  Frequent camera YAW  Lack of a static reference frame
  33. 33. The Unreal Engine Framework GameInstance GameMode Pawn Class HUD Class PlayerController Class GameState Class PlayerState Class
  34. 34. GameInstance GameMode Pawn Class HUD Class PlayerController Class GameState Class PlayerState Class The GameMode is the definition of the game. ● It also holds important information about: • Pawn • PlayerContoller • GameState • PlayerState • HUD
  35. 35. GameInstance GameMode Pawn Class HUD Class PlayerController Class GameState Class PlayerState Class The Pawn class is the base class of all Actors that can be controlled by players or AI. ● The Pawn represents the physical location, rotation, etc. of a player or entity within the game. ● A Character is a special type of Pawn that has the ability to walk around.
  36. 36. GameInstance GameMode Pawn Class HUD Class PlayerController Class GameState Class PlayerState Class A PlayerController is the interface between the Pawn and the human player controlling it. ● The PlayerController decides what to do and then issues commands to the Pawn (e.g. "start crouching", "jump"). ● Putting input handling or other functionality into the PlayerController is often necessary. ● The PlayerController persists throughout the game, while the Pawn can be transient.
  37. 37. GameInstance GameMode Pawn Class HUD Class PlayerController Class GameState Class PlayerState Class The GameInstance is a class who’s state persists switching of levels, game modes, pawns etc. Where classes like GameMode or PlayerController are being reset and data stored in those classes is removed.
  38. 38. GameInstance GameMode Pawn Class HUD Class PlayerController Class GameState Class PlayerState Class A PlayerState is the state of a participant in the game, such as a human player or a bot that is simulating a player. Non-player AI that exists as part of the game would not have a PlayerState.
  39. 39. GameInstance GameMode Pawn Class HUD Class PlayerController Class GameState Class PlayerState Class The GameState contains the state of the game, which could include things like the list of connected players, the score, where the pieces are in a chess game, or the list of what missions you have completed in an open world game.
  40. 40. GameInstance GameMode Pawn Class HUD Class PlayerController Class GameState Class PlayerState Class The HUD is the base object for displaying elements overlaid on the screen. Every human-controlled player in the game has their own instance of the AHUD class which draws to their individual Viewport.
  41. 41. Object Actor Pawn Character Base building blocks in the Unreal Engine Any object that can be placed into a level Subclass of Actor and serve as an in-game avatar Subclass of a Pawn that is intended to be used as a player character
  42. 42. CharacterMovementComponent Pawn Character Default Pawn Wheeled Vehicle CapsuleComponent SkeletalMeshComponent Etc. VehicleMovementComponent SkeletalMeshComponent PhysicsHandle Etc. SpectatorPawn DefaultPawnMovementComponent StaticMeshComponent CollisionComponent, Etc. Controller 1-to-1 Relationship
  43. 43. How can we learn to harness the power of Unreal Engine?
  44. 44. VR Learning Resources for Unreal Engine Starting Out: • Oculus Quick Starts • SteamVR Quick Start • Google VR Quick Start • Gear VR Quick Starts VR Platforms: • Samsung Gear VR Development • Google VR Development • Oculus Rift Development • SteamVR Development VR Topics: • VR Cheat Sheets • VR Best Practices • Motion Controller Component Setup • VR Camera Refactor
  45. 45. Video: • 2015 UE4 - VR and Unreal Engine • Making Bullet Train and Going off the Rails in VR • VR Bow and Arrow Tutorial w/ Ryan Brucks - Training Livestream • Training Livestream - Sam and Wes' VR Stream: Cameras, Multiplayer, Tips and Tricks! • Creating Interactions in VR with Motion Controllers 1-3 • Setting Up VR Motion Controllers • VR Networking and 3D Menus • Up and Running with Gear VR • Developing for VR • Integrating the Oculus Rift into UE4 Presentations: • UE4 VR - Niklas Smedberg • Lessons from Integrating the Oculus Rift into UE4 • Going Off The Rails: The Making of Bullet Train Links: • Sam Deiter - 10 VR tips for Unreal Engine • Tom Looman’s - Getting Started with VR in Unreal Engine 4
  46. 46. VR Learning Resources for Unreal Engine VR Editor Starting Out: • Activating VR Mode VR Editor Guides: • Setting Up VR Editor from GitHub • Navigating the World in VR Mode • Working with Actors in VR Mode VR Editor Reference: • VR Editor Controls • Quick Select Menu • Radial Menu • Transforming Actors in VR • Editor Windows in VR Mode
  47. 47. The Unreal Engine Release Notes
  48. 48. Education Community VR for UE4 Mitchell McCaffrey’s - Mitch VR Labs • Mitch's VR Lab - an Introduction • Mitch's VR Lab - Look Based interaction • Mitch's VR Lab - Simple Teleportation Mechanic • Mitch's VR Lab - Introduction to SteamVR • Mitch's VR Lab - Simple Head IK • Mitch’s UE4 Forum Post
  49. 49. Education Community VR for UE4
  50. 50. Education Community VR for UE4 Free Unreal Engine Courses: • Twin Stick Shooter • 3rd Person Power-Up Game with C++ • 2D Sidescroller with Blueprints • Endless Runner with Blueprints • Unreal Match 3 Game Free UE4 Community Youtube.com Learning Channels: • World of Level Design UE4 Fundamentals • Virtus Education series • Unreal Engine 4 Beginner Tutorials • Mathew Wadstein Tutorials • Leo Gonzales Unreal Basics • Tesla Dev Tutorials • UE4 Style Guide
  51. 51. Education Community VR for UE4 Free UE4 Community Blueprints: • Communication Training - Zak Parrish • Blueprints Compendium - VOLUME II • BP_Compendium.pdf • Network Compendium Free UE4 Community VR Learning Channels: • Unreal Engine VR Curriculum Free UE4 Community ArchViz Learning Channels: • Architectural Visualization Tutorials Paid e-learning Courses: • Unreal Engine 4: The Complete Beginner's Course • Learn to Code in C++ by Developing Your First Game • Complete Introduction to Unreal 4 • An Introduction to Creating Realistic Materials in UE4 • Master Blueprints in Unreal Engine 4 - Endless Runner • Create a Helicopter Game Control System in Unreal Engine 4 • Unreal Essential Training - Lynda.com • Unreal: Learn Lighting - Lynda.com • 3dmotive - Unreal Engine courses • Pluralsight - Unreal Engine courses
  52. 52. Thanks for leanring with us.
  53. 53. You can download the project file that was used for the VRLA 17 worshop at the THIS link. Luis Cataldi - Director of Education and Learning - Epic Games

×