practical vr for scivis - on-demand.gputechconf.com...unreal plugin unreal engine uses editor to...
TRANSCRIPT
![Page 1: PRACTICAL VR FOR SCIVIS - on-demand.gputechconf.com...UNREAL PLUGIN Unreal Engine uses Editor to create scenes Actors: entities in the world that may hold geometry Plugin adds External](https://reader036.vdocuments.net/reader036/viewer/2022062610/61194e6c286ea97c1202f4e7/html5/thumbnails/1.jpg)
Kees van Kooten, 8 May 2017
PRACTICAL VR FOR SCIVIS
![Page 2: PRACTICAL VR FOR SCIVIS - on-demand.gputechconf.com...UNREAL PLUGIN Unreal Engine uses Editor to create scenes Actors: entities in the world that may hold geometry Plugin adds External](https://reader036.vdocuments.net/reader036/viewer/2022062610/61194e6c286ea97c1202f4e7/html5/thumbnails/2.jpg)
2
OUR MOTIVATION
Incentivize high-quality rendering…
…with a story
Achieve real-time framerates, immersive visualization
Interaction: easy to use, easy to setup
Increase use of GPUs for graphics, client and serverside
![Page 3: PRACTICAL VR FOR SCIVIS - on-demand.gputechconf.com...UNREAL PLUGIN Unreal Engine uses Editor to create scenes Actors: entities in the world that may hold geometry Plugin adds External](https://reader036.vdocuments.net/reader036/viewer/2022062610/61194e6c286ea97c1202f4e7/html5/thumbnails/3.jpg)
3
CONSUMER VR
Cheaper and more practical than CAVE, Powerwall
Requires high rendering framerates
New ways of interaction
Depth perception massively increased
![Page 4: PRACTICAL VR FOR SCIVIS - on-demand.gputechconf.com...UNREAL PLUGIN Unreal Engine uses Editor to create scenes Actors: entities in the world that may hold geometry Plugin adds External](https://reader036.vdocuments.net/reader036/viewer/2022062610/61194e6c286ea97c1202f4e7/html5/thumbnails/4.jpg)
4
SCIVIS TODAY
Lots of different Scivis applications (ParaView, VisIt, VMD, …)
…lots of custom rendering technology (OptiX, IndeX, … )
…on variable platform constraints (local, distributed, powerwall, cave)
Custom solutions undesirable
Where does VR fit?
OptiX
![Page 5: PRACTICAL VR FOR SCIVIS - on-demand.gputechconf.com...UNREAL PLUGIN Unreal Engine uses Editor to create scenes Actors: entities in the world that may hold geometry Plugin adds External](https://reader036.vdocuments.net/reader036/viewer/2022062610/61194e6c286ea97c1202f4e7/html5/thumbnails/5.jpg)
5
SEPARATION OF CONCERNS
Paraview geometry extraction/processing useful and familiar:
Geometry in ParaView
High-quality, real-time rendering solutions already exist:
Rendering in UnrealEngine
SC’16
![Page 6: PRACTICAL VR FOR SCIVIS - on-demand.gputechconf.com...UNREAL PLUGIN Unreal Engine uses Editor to create scenes Actors: entities in the world that may hold geometry Plugin adds External](https://reader036.vdocuments.net/reader036/viewer/2022062610/61194e6c286ea97c1202f4e7/html5/thumbnails/6.jpg)
6
SEPARATION OF CONCERNSFrom ParaView to Unreal
![Page 8: PRACTICAL VR FOR SCIVIS - on-demand.gputechconf.com...UNREAL PLUGIN Unreal Engine uses Editor to create scenes Actors: entities in the world that may hold geometry Plugin adds External](https://reader036.vdocuments.net/reader036/viewer/2022062610/61194e6c286ea97c1202f4e7/html5/thumbnails/8.jpg)
8
On the same local machine, an application built with the Unreal Engine is running, automatically receiving all geometry from the ParaView instance shown before.
![Page 9: PRACTICAL VR FOR SCIVIS - on-demand.gputechconf.com...UNREAL PLUGIN Unreal Engine uses Editor to create scenes Actors: entities in the world that may hold geometry Plugin adds External](https://reader036.vdocuments.net/reader036/viewer/2022062610/61194e6c286ea97c1202f4e7/html5/thumbnails/9.jpg)
9
PARAVIEW – UNREAL BRIDGELeveraging Tools developed for Entertainment
90 Hz ~30-70 Hz
Render Thread
Game Thread
External Vis Thread
Geometry Transfer Buffer
![Page 10: PRACTICAL VR FOR SCIVIS - on-demand.gputechconf.com...UNREAL PLUGIN Unreal Engine uses Editor to create scenes Actors: entities in the world that may hold geometry Plugin adds External](https://reader036.vdocuments.net/reader036/viewer/2022062610/61194e6c286ea97c1202f4e7/html5/thumbnails/10.jpg)
10
PARAVIEW PLUGIN
Triggered by scene change
Copies data into geometry transfer buffers (vertex/index/texture/transforms)
Dual buffering: Paraview writes while Unreal consumes
![Page 11: PRACTICAL VR FOR SCIVIS - on-demand.gputechconf.com...UNREAL PLUGIN Unreal Engine uses Editor to create scenes Actors: entities in the world that may hold geometry Plugin adds External](https://reader036.vdocuments.net/reader036/viewer/2022062610/61194e6c286ea97c1202f4e7/html5/thumbnails/11.jpg)
11
UNREAL PLUGIN
Creates External Vis thread that runs independently from 90Hz render thread
Copies GTB data into unused graphics resources (vertex/index buffers, etc)
Passes graphics resources to render thread
Receives freed-up resources from render thread
![Page 12: PRACTICAL VR FOR SCIVIS - on-demand.gputechconf.com...UNREAL PLUGIN Unreal Engine uses Editor to create scenes Actors: entities in the world that may hold geometry Plugin adds External](https://reader036.vdocuments.net/reader036/viewer/2022062610/61194e6c286ea97c1202f4e7/html5/thumbnails/12.jpg)
12
UNREAL PLUGIN
Unreal Engine uses Editor to create scenes
Actors: entities in the world that may hold geometry
Plugin adds External Vis Actor type
Place External Vis Actor in the scene where you want geometry to appear
Start the Unreal scene, start ParaView, any geometry will be transferred
How is it used?
![Page 13: PRACTICAL VR FOR SCIVIS - on-demand.gputechconf.com...UNREAL PLUGIN Unreal Engine uses Editor to create scenes Actors: entities in the world that may hold geometry Plugin adds External](https://reader036.vdocuments.net/reader036/viewer/2022062610/61194e6c286ea97c1202f4e7/html5/thumbnails/13.jpg)
13
Workflow showing how to use Unreal Editor to add External Vis Actor to a scene to automatically receive geometry.
![Page 14: PRACTICAL VR FOR SCIVIS - on-demand.gputechconf.com...UNREAL PLUGIN Unreal Engine uses Editor to create scenes Actors: entities in the world that may hold geometry Plugin adds External](https://reader036.vdocuments.net/reader036/viewer/2022062610/61194e6c286ea97c1202f4e7/html5/thumbnails/14.jpg)
14
ACTOR TO ACTOR MAPPING
Per Paraview Actor, a new Unreal Actor instance can be spawned
Allows for grouping and independent manipulation in Unreal
To come: select spawn position
ParaView Actor 0
ParaView Actor 1
ParaView Actor 2
Unreal Actor 0
Unreal Actor 1
![Page 15: PRACTICAL VR FOR SCIVIS - on-demand.gputechconf.com...UNREAL PLUGIN Unreal Engine uses Editor to create scenes Actors: entities in the world that may hold geometry Plugin adds External](https://reader036.vdocuments.net/reader036/viewer/2022062610/61194e6c286ea97c1202f4e7/html5/thumbnails/15.jpg)
15
MAINTAINING 90HZ RENDERINGAllocate and assign a buffer
External Vis Thread
Buffer 0Allocated
Buffer 1Allocated
Buffer 2Free
Buffer 3Allocated
Buffer 4Allocated
Render Thread
Actor 0
Section 0
Section 1
Section 2Actor 1
Actor 2
![Page 16: PRACTICAL VR FOR SCIVIS - on-demand.gputechconf.com...UNREAL PLUGIN Unreal Engine uses Editor to create scenes Actors: entities in the world that may hold geometry Plugin adds External](https://reader036.vdocuments.net/reader036/viewer/2022062610/61194e6c286ea97c1202f4e7/html5/thumbnails/16.jpg)
16
MAINTAINING 90HZ RENDERINGFree unused buffers after some frames
External Vis Thread
Buffer 0Free
Buffer 1Allocated
Buffer 2Free
Buffer 3Allocated
Buffer 4Allocated
Render Thread
Actor 0
Section 0
Section 1
Section 2Actor 1
Actor 2
![Page 17: PRACTICAL VR FOR SCIVIS - on-demand.gputechconf.com...UNREAL PLUGIN Unreal Engine uses Editor to create scenes Actors: entities in the world that may hold geometry Plugin adds External](https://reader036.vdocuments.net/reader036/viewer/2022062610/61194e6c286ea97c1202f4e7/html5/thumbnails/17.jpg)
17
PERFORMANCE
Unreal static rendering: 10-15 million polygons at 90Hz
Unreal dynamic rendering: up to 5 million polygons at 90Hz
Unreal geometry updates: up to 2 million polygons (without affecting rendering)
ParaView updates 1 million polygons at 30Hz (producer bottleneck)
![Page 18: PRACTICAL VR FOR SCIVIS - on-demand.gputechconf.com...UNREAL PLUGIN Unreal Engine uses Editor to create scenes Actors: entities in the world that may hold geometry Plugin adds External](https://reader036.vdocuments.net/reader036/viewer/2022062610/61194e6c286ea97c1202f4e7/html5/thumbnails/18.jpg)
18
FUTURE DIRECTION
Optimizations of geometry transfer and static geometry rendering
Transfer of colors and textures
Interaction from Unreal scene back into Paraview
Supporting transparency, lightmapping
Format in which the technology will be available still undecided