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

Post on 17-Mar-2021

12 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Kees van Kooten, 8 May 2017

PRACTICAL VR FOR SCIVIS

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

3

CONSUMER VR

Cheaper and more practical than CAVE, Powerwall

Requires high rendering framerates

New ways of interaction

Depth perception massively increased

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

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

6

SEPARATION OF CONCERNSFrom ParaView to Unreal

7

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

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.

9

PARAVIEW – UNREAL BRIDGELeveraging Tools developed for Entertainment

90 Hz ~30-70 Hz

Render Thread

Game Thread

External Vis Thread

Geometry Transfer Buffer

10

PARAVIEW PLUGIN

Triggered by scene change

Copies data into geometry transfer buffers (vertex/index/texture/transforms)

Dual buffering: Paraview writes while Unreal consumes

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

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?

13

Workflow showing how to use Unreal Editor to add External Vis Actor to a scene to automatically receive geometry.

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

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

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

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)

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

19

THANKS

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

9:00am-12:30 in the Hilton

kvankooten@nvidia.com

top related