practical vr for scivis - on-demand.gputechconf.com...unreal plugin unreal engine uses editor to...

19
Kees van Kooten, 8 May 2017 PRACTICAL VR FOR SCIVIS

Upload: others

Post on 17-Mar-2021

12 views

Category:

Documents


0 download

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

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

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

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

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

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

6

SEPARATION OF CONCERNSFrom ParaView to Unreal

Page 7: 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

7

Video of time-series data running in ParaView on a local machine

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

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

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

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

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

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

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

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

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

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

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

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

Page 19: 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

19

THANKS

For a demo, come to the HPC VR Lab tomorrow:

9:00am-12:30 in the Hilton

[email protected]