ESI RENDERING INNOVATIONS WITH NVIDIA DESIGNWORKS Andreas Mank - - PowerPoint PPT Presentation

esi rendering innovations with nvidia designworks
SMART_READER_LITE
LIVE PREVIEW

ESI RENDERING INNOVATIONS WITH NVIDIA DESIGNWORKS Andreas Mank - - PowerPoint PPT Presentation

April 4-7, 2016 | Silicon Valley ESI RENDERING INNOVATIONS WITH NVIDIA DESIGNWORKS Andreas Mank (Andreas.Mank@esi-group.com) Team Leader Visualization, ESI Group Markus Tavenrath (mtavenrath@nvidia.com) Senior Developer Technology Engineer,


slide-1
SLIDE 1

April 4-7, 2016 | Silicon Valley www.esi-group.com

Andreas Mank (Andreas.Mank@esi-group.com) Team Leader Visualization, ESI Group Markus Tavenrath (mtavenrath@nvidia.com) Senior Developer Technology Engineer, NVIDIA 04/04/2016

ESI RENDERING INNOVATIONS WITH NVIDIA DESIGNWORKS™

slide-2
SLIDE 2

2

“a pioneer and world-leading provider in Virtual Prototyping”

— www.esi-group.com/

slide-3
SLIDE 3

3

Virtual Engineering

Dynamic scenes Intuitive interaction Immersion Reliable behavior High quality Everytime and everywhere Distributed hardware On demand

slide-4
SLIDE 4

4

HELIOS BY

High Performance Rendering Remote Rendering Interactive Ray Tracing Physically-Based Rendering Abstract Material Definition Hybrid Rendering

slide-5
SLIDE 5

5

“Tools and technologies for professional graphics and advanced rendering applications.”

https://developer.nvidia.com/designworks

slide-6
SLIDE 6

6

DESIGNWORKS™

Tools and Technologies in Virtual Engineering MDL SDK / VMATERIALS

slide-7
SLIDE 7

7

DEMO: MATERIAL CONSISTENCY WITH MDL

RAY TRACER RASTERIZER

slide-8
SLIDE 8

8

DESIGNWORKS™

Tools and Technologies in Virtual Engineering MDL SDK / VMATERIALS OPTIX

slide-9
SLIDE 9

9

GLOBAL ILLUMINATION WITH OPTIX

slide-10
SLIDE 10

10

DEMO: INTERACTIVE GI WITH VCAS

slide-11
SLIDE 11

11

DESIGNWORKS™

Tools and Technologies in Virtual Engineering MDL SDK / VMATERIALS OPTIX GRID SDK

slide-12
SLIDE 12

12

PLATFORM AS A SERVICE WITH GRID

slide-13
SLIDE 13

13

DESIGNWORKS™

Tools and Technologies in Virtual Engineering MDL SDK / VMATERIALS OPTIX GRID SDK NVPRO-PIPELINE

slide-14
SLIDE 14

14

NVPRO-PIPELINE

Modern OpenGL features Modern shader features with GLSL Not CPU-bound with shaders Not CPU-bound with complex scene graphs Efficient updates for dynamic geometries

Benefits in Virtual Engineering

slide-15
SLIDE 15

15

DEMO: DYNAMIC MESH ANIMATIONS WITH RIX SceniX RiX

2 FPS 20 FPS

slide-16
SLIDE 16

16

PERFORMANCE

20 360 60 120

50 100 150 200 250 300 350 Dynamic Nodes Materials Fixed

Chart Title

SceniX RiX

Frames per second

x 10 x 6 x 3 x 1.1

slide-17
SLIDE 17

17

DESIGNWORKS

NV PRO Pipeline

4/4/2016

Low- end Mid- range High- end Quadro Framerate Low- end Mid- range High- end Quadro Framerate CPU load GPU load

slide-18
SLIDE 18

18

A LOOK INTO THE PAST

SceniX 7 RENDERER DESIGN

SceniX 7 used a dirty bit/renderlist cache scheme for rendering

4/4/2016

G0 T0 T1 T2 S1 S2 G1 T3 S0 M0 M1

material layer

T0 T2 T3

transform layer

S0 S1 S2

geometry layer

  • > full rebuild

We had a few cases where rebuilt could be avoided Incremental updates were still not fast enough

slide-19
SLIDE 19

19

A LOOK INTO THE PAST

Renderer bottlenecks

4/4/2016

Profiling revealed multiple bottlenecks in renderer

for (material : materials) // HashMap -> pointer chasing if (cam->isVisible(material)) // virtual function call -> pointer chasing process material(); // virtual function call for (transform : material.transforms) // HashMap if (cam->isVisible(transform)) // virtual function call process Transform(); // virtual function call for (shape : transform.shapes) // HashMap if (cam->isVisible(shape) // virtual function fall (20% time) process(shape) // switch(OC) -> branch misprediction

slide-20
SLIDE 20

20

NV PRO PIPELINE

SceniX 6 -> SceniX 7 got up to 6x faster each interation if drawcall limited Still so many bottlenecks in our SceneGraph rendering Our partners like ESI needed just a fast renderer, not a SceneGraph SceneGraph->SceneGraph->Rendering worked mostly out Took a lot of resources and wasted CPU time due to the additional layer Research platform was required how to resolve all those bottlenecks NV PRO Pipeline was born Focus on CPU efficient rendering without any compatibility restriction

4/4/2016

slide-21
SLIDE 21

21

NV PRO PIPELINE

RiX::GL

Developers who want to write an OpenGL renderer face one problem: OpenGL has a million ways to do the same thing, what‘s the best way? Parameters Uniforms, UBOs, SSBOs Geometry immediate mode, display list, vbo/ibo, vao, vab

4/4/2016

Bindless Bindless Combinatorial explosion

slide-22
SLIDE 22

22

NV PRO PIPELINE

RiX::GL

4/4/2016

How to abstract all the differences in an efficient way?

S0 T0 M0 S1 T2 M1 S2 T3 M1 S2 T3 M1 S1 T2‘ M1

Monitor

S2 S1 S1 S2 S0

render(group of objects) render(group of objects, order) RiX API to abstract rendering of groups of objects

slide-23
SLIDE 23

23

NV PRO PIPELINE

SceneGraph

4/4/2016

SceneGraph [dp::sg] RiX [dp::rix] How to get from SceneGraph to group with incremental updates?

G0 T0 T1 T2 S1 S2 G1 T3 S0

Referenced twice

S0 T0 M0 S1 T2 M1 S2 T3 M1 S2 T3 M1 S1 T2‘ M1

slide-24
SLIDE 24

24

PIPELINE

SceneGraph

4/4/2016

SceneGraph [dp::sg] RiX::GL [dp::rix::gl]

G0 T0 T1 T2 S1 S2 G1 T3 S0

SceneTree [dp::sg::xbar] Renderer [dp::sg::rdr::rix::gl]

G0 T0 T1 T2 S1 S2 G1 T3 S0 T2‘ S1‘ S2‘ G1‘ T3‘

Events Translate

S1 T2 S2 T3 S0 T0 S1‘ T1‘ S2‘ T2‘

Needs to be done by your application if not using reference SceneGraph

S1 T2 S2 T3 S0 T0 S1‘ T1‘ S2‘ T2‘

Events Events are fully incremental

slide-25
SLIDE 25

25

NV PRO PIPELINE

Material System

Basic pipeline ready SceneGraph -> group of objects -> RiX Next step: Support for GLSL Problem: uniforms, ubos, ssbos, different GLSL versions all required a different shader header We needed a material system, independent from SceneGraph

4/4/2016

slide-26
SLIDE 26

26

NV PRO PIPELINE

Material System

Material system [dp::fx] was born Interface allows enumeration of Materials (shader pipelines) and corresponding set of parameter groups Allows multiple backends in parallel XML (public), MDL (on request) Material system can generate shaders for all parameter techniques Uniforms, UBOs, SSBOs, -> write shader only once

4/4/2016

slide-27
SLIDE 27

27

NV PRO PIPELINE

Results

Efficient pipeline with another ~6x speedup over SceniX 7 for draw-call limited scenes Achieves 6-7mio drawcalls/s on 2.4Ghz system when using bindless Started with new features Frustum culling TransformTree extraction from SceneTree

4/4/2016

SceneGraph [dp::sg] RiX::GL [dp::rix::gl] SceneTree [dp::sg::xbar] Renderer [dp::sg::rdr::rix::gl]

slide-28
SLIDE 28

28

NV PRO PIPELINE

Frustum Culling

Frustum culling is important to reduce #draw calls per frame Don‘t render hidden objects NV PRO Pipeline has efficient frustum culling system (10k objects get culled in ~100us) works on groups and returns delta since last call

  • > don‘t process unchanged data

[dp::culling] is the module

4/4/2016

slide-29
SLIDE 29

29

NV PRO PIPELINE

Transform Tree

4/4/2016

TransformTree is responsible to compute work transform for each object Currently tighly bound to xbar which translates from SceneGraph to Renderer Working on TransformTree as indepdenent module Currently ~15M transforms/s on CPU and up to 300M transforms/s on GPU For more information visit my Talk: S6131 - Nvpro-Pipeline: Handling Massive Transform Updates in a SceneGraph Tuesday, 14:30 – 14:55

slide-30
SLIDE 30

30

NV PRO PIPELINE

Results

NV PRO PIPELINE is our open source research rendering pipeline, it‘s not a product Demonstrates techniques to reduce CPU cost of rendering Shows that big speedups are possible when leaving traditional SceneGraph traversal ESI proof that the concepts do work in real world applications Working on modularization so that even more modules can be used in other projects Interested? Grab your copy here: https://developer.nvidia.com/nvidia-pro-pipeline

4/4/2016

slide-31
SLIDE 31

April 4-7, 2016 | Silicon Valley www.esi-group.com

THANK YOU

https://developer.nvidia.com/nvidia-pro-pipeline

slide-32
SLIDE 32

32

HELIOS - CURRENTLY

4/4/2016 04.04.2016

HELIOS

ICIDO

RiX::GL Transform

Viewer

Back-Ends

RASTERIZER RAY TRACER

VCA OptiX Culling Multi-Cast

slide-33
SLIDE 33

33

HELIOS - WHAT’S NEXT?

4/4/2016 04.04.2016

HELIOS

ICIDO VRify

MDL SDK COMPOSITER GRID SDK dp::fx

OPENGL OPTIX VULKAN