Vulkan and Animation 3/13/ &height=285&playerId=

Similar documents
The Application Stage. The Game Loop, Resource Management and Renderer Design

Vulkan: Architecture positive How Vulkan maps to PowerVR GPUs Kevin sun Lead Developer Support Engineer, APAC PowerVR Graphics.

Coding OpenGL ES 3.0 for Better Graphics Quality

Shaders. Slide credit to Prof. Zwicker

Animation Essentially a question of flipping between many still images, fast enough

2.11 Particle Systems

About Phoenix FD PLUGIN FOR 3DS MAX AND MAYA. SIMULATING AND RENDERING BOTH LIQUIDS AND FIRE/SMOKE. USED IN MOVIES, GAMES AND COMMERCIALS.

Vulkan on Mobile. Daniele Di Donato, ARM GDC 2016

CS451Real-time Rendering Pipeline

RSX Best Practices. Mark Cerny, Cerny Games David Simpson, Naughty Dog Jon Olick, Naughty Dog

Beginning Direct3D Game Programming: 1. The History of Direct3D Graphics

GPU Memory Model. Adapted from:

Copyright Khronos Group Page 1

Achieving High-performance Graphics on Mobile With the Vulkan API

EECS 487: Interactive Computer Graphics

Hands-On Workshop: 3D Automotive Graphics on Connected Radios Using Rayleigh and OpenGL ES 2.0

Enhancing Traditional Rasterization Graphics with Ray Tracing. October 2015

Many rendering scenarios, such as battle scenes or urban environments, require rendering of large numbers of autonomous characters.

Building scalable 3D applications. Ville Miettinen Hybrid Graphics

Copyright Khronos Group, Page Graphic Remedy. All Rights Reserved

Profiling and Debugging Games on Mobile Platforms

Com S 336 Final Project Ideas

Bringing AAA graphics to mobile platforms. Niklas Smedberg Senior Engine Programmer, Epic Games

Rendering Grass with Instancing in DirectX* 10

Next-Generation Graphics on Larrabee. Tim Foley Intel Corp

Rendering. Converting a 3D scene to a 2D image. Camera. Light. Rendering. View Plane

Lecture 16. Introduction to Game Development IAP 2007 MIT

Working with Metal Overview

Rendering Objects. Need to transform all geometry then

MAXIS-mizing Darkspore*: A Case Study of Graphic Analysis and Optimizations in Maxis Deferred Renderer

LPGPU Workshop on Power-Efficient GPU and Many-core Computing (PEGPUM 2014)

What s New in DI-Guy 12.5

Optimisation. CS7GV3 Real-time Rendering

Spring 2009 Prof. Hyesoon Kim

Spring 2011 Prof. Hyesoon Kim

PROFESSIONAL. WebGL Programming DEVELOPING 3D GRAPHICS FOR THE WEB. Andreas Anyuru WILEY. John Wiley & Sons, Ltd.

X. GPU Programming. Jacobs University Visualization and Computer Graphics Lab : Advanced Graphics - Chapter X 1

Direct Rendering of Trimmed NURBS Surfaces

Real - Time Rendering. Graphics pipeline. Michal Červeňanský Juraj Starinský

3D GRAPHICS. design. animate. render

CS 432 Interactive Computer Graphics

NVIDIA Parallel Nsight. Jeff Kiel

Beyond Programmable Shading. Scheduling the Graphics Pipeline

Analyze and Optimize Windows* Game Applications Using Intel INDE Graphics Performance Analyzers (GPA)

DX10, Batching, and Performance Considerations. Bryan Dudash NVIDIA Developer Technology

Game Graphics & Real-time Rendering

GUERRILLA DEVELOP CONFERENCE JULY 07 BRIGHTON

Graphics Processing Unit (GPU)

Real-Time Rendering (Echtzeitgraphik) Michael Wimmer

Chapter 1 Introduction

Module Contact: Dr Stephen Laycock, CMP Copyright of the University of East Anglia Version 1

Game Development for

Cloth Simulation on the GPU. Cyril Zeller NVIDIA Corporation

Graphics Hardware. Graphics Processing Unit (GPU) is a Subsidiary hardware. With massively multi-threaded many-core. Dedicated to 2D and 3D graphics

The Graphics Pipeline

Shader Series Primer: Fundamentals of the Programmable Pipeline in XNA Game Studio Express

WebGL: Hands On. DevCon5 NYC Kenneth Russell Software Engineer, Google, Inc. Chair, WebGL Working Group

Vulkan API 杨瑜, 资深工程师

PowerVR Hardware. Architecture Overview for Developers

Computer graphics 2: Graduate seminar in computational aesthetics

Vulkan: Scaling to Multiple Threads. Kevin sun Lead Developer Support Engineer, APAC PowerVR Graphics

A Trip Down The (2011) Rasterization Pipeline

CS 450: COMPUTER GRAPHICS REVIEW: INTRODUCTION TO COMPUTER GRAPHICS SPRING 2016 DR. MICHAEL J. REALE

Comparison of hierarchies for occlusion culling based on occlusion queries

Next Generation OpenGL Neil Trevett Khronos President NVIDIA VP Mobile Copyright Khronos Group Page 1

Blis: Better Language for Image Stuff Project Proposal Programming Languages and Translators, Spring 2017

Intel Core 4 DX11 Extensions Getting Kick Ass Visual Quality out of the Latest Intel GPUs

The Rasterization Pipeline

CS230 : Computer Graphics Lecture 4. Tamar Shinar Computer Science & Engineering UC Riverside

Comparing Reyes and OpenGL on a Stream Architecture

PERFORMANCE OPTIMIZATIONS FOR AUTOMOTIVE SOFTWARE

! Readings! ! Room-level, on-chip! vs.!

D3D12 & Vulkan Done Right. Gareth Thomas Developer Technology Engineer, AMD

Mobile HW and Bandwidth

Programmable GPUs Outline

Lecture 25: Board Notes: Threads and GPUs

POWERVR MBX & SGX OpenVG Support and Resources

6.837 Introduction to Computer Graphics Final Exam Tuesday, December 20, :05-12pm Two hand-written sheet of notes (4 pages) allowed 1 SSD [ /17]

Software Occlusion Culling

Could you make the XNA functions yourself?

Virtual Cameras and The Transformation Pipeline

Particle Systems. Sample Particle System. What is a particle system? Types of Particle Systems. Stateless Particle System

CIS 581 Interactive Computer Graphics

GDC 2014 Barthold Lichtenbelt OpenGL ARB chair

2: Introducing image synthesis. Some orientation how did we get here? Graphics system architecture Overview of OpenGL / GLU / GLUT

PROFESSIONAL VR: AN UPDATE. Robert Menzel, Ingo Esser GTC 2018, March

COMP 4801 Final Year Project. Ray Tracing for Computer Graphics. Final Project Report FYP Runjing Liu. Advised by. Dr. L.Y.

OpenGL with Qt 5. Qt Developer Days, Berlin Presented by Sean Harmer. Produced by Klarälvdalens Datakonsult AB

Parallelizing Graphics Pipeline Execution (+ Basics of Characterizing a Rendering Workload)

Computer Graphics (CS 543) Lecture 10: Soft Shadows (Maps and Volumes), Normal and Bump Mapping

Particle systems, collision detection, and ray tracing. Computer Graphics CSE 167 Lecture 17

CS 543: Computer Graphics. Introduction

2D rendering takes a photo of the 2D scene with a virtual camera that selects an axis aligned rectangle from the scene. The photograph is placed into

Mali Developer Resources. Kevin Ho ARM Taiwan FAE

Metal. GPU-accelerated advanced 3D graphics rendering and data-parallel computation. source rebelsmarket.com

Introduction. What s New in This Edition

Render-To-Texture Caching. D. Sim Dietrich Jr.

TSBK 07! Computer Graphics! Ingemar Ragnemalm, ISY

Grafica Computazionale: Lezione 30. Grafica Computazionale. Hiding complexity... ;) Introduction to OpenGL. lezione30 Introduction to OpenGL

GPU Architecture and Function. Michael Foster and Ian Frasch

Transcription:

https://media.oregonstate.edu/id/0_q2qgt47o?width= 400&height=285&playerId=22119142 Vulkan and Animation Natasha A. Anisimova (Particle systems in Vulkan) Intel Game Dev The Loop Vulkan Cookbook https://software.intel.com/en-us/articles/using-vulkan-graphics-api-to-render-acloud-of-animated-particles-in-stardust-application https://software.intel.com/en-us/articles/parallel-techniques-in-modeling-particlesystems-using-vulkan-api 1

OPENGL VS VULKAN OpenGL - Hand holding - Safety net Vulkan - Efficient/Effective - Offloads the CPU/Uses the GPU - Steep Learning Curve Compute Shaders What is it? is used entirely for computing arbitrary information. While it can do rendering, it is generally used for tasks not directly related to drawing triangles and pixels. How they help? Animation -Definition pulled from OpenGL wiki - Compute the positions - Write updated positions for the next frame Particle simulation Computer shaders handle the physics and update positions Particles are rendered as points Vulkan Renderer Setup (for CPU sim.) 5 components - Create Instance Object - Enable Validation Layers - Vulkan does not check the validity of the application code - Create the Virtual Device - Surface Object Instance - Device Object - Scene Setup - Scene Element - Graphics Memory Allocation & Performance 2

Multithreaded Approach to Computing Particle System 1. Parallelize the workload across the array of particles, calculating the interactors contribution and Euler step as a single work unit. Recommended Approach 1. Parallelize the workload across the array of particles, calculating the interactors contribution and Euler step as a single work unit. 2a. Parallelize the workload across interactors, calculating the effect of each interactor at every particle as a single work unit. 2b. Further parallelize Option 1, above, by splitting interactor contributions into separate work units. 3. Parallelize the sorting algorithm. 4. Parallelize the generators contribution. Vulkan Compute in Modeling Particle System The simulation will be moved onto the GPU The sorting and generation of particles will be on the CPU 1 Use GPU memory buffer for computation and visualization 2 Moving computation from the CPU to compute shader on the GPU 3 Structure of the compute shader-oriented simulation 1 Use GPU memory buffer for computation and visualization Repurpose the buffer structure that holds particle data - SSBO (Shader Storage Buffer Object) Buffer Class needs to be constructed Vulkan virtual device must be created (this has to happen first) AppInstance is the very first thing *** Note: Intel mentioned that RenderDoc is extremely helpful for debugging Vulkan *** 3

2 Moving computation from the CPU to compute shader on the GPU Interactor logic is in the compute shader - They need to be split by their type - Specific data is needed for all of them - Arrays are created for each type of interactor Vulkan API: Compute stage and graphics stage cannot be bound into a single pipeline so two pipelines would have to be created Compute pipeline is less complicated 2 continued Two Concepts - Push Constants - Data delivery can be scheduled right within the command buffer without the need for memory mapping - Simpler process than descriptor sets - Division of Workload - Work groups are scheduled to execute on the compute device - The size is specified within the computer shader - API is given the number of work groups scheduled for execution of the compute job - Important to remember that these numbers can be limited by your hardware Once pipeline is created, data has to be ready for execution 3 Structure of the compute shader-oriented simulation Interactors take the form of two components - Interactor Parameters (delivered through the uniform buffer) - Function set wherein each function maps to a specific interactor and calculates the acceleration vector for the processed particle Computing step is done Renderer is invoked What Intel is looking to improve on Completely remove dependencies on using the CPU - Move all work onto the GPU and use compute shaders for the rest of the computations Parallelize the Performance Path - Double Buffering - Uses the same buffer but accesses memory through vertex buffer interface to render the scene (Not the SSBO) 4

A piece of advice. Now what would you use this for? Water Understand the hardware you are working with. Not all the techniques will work equally well on every type of GPU. Although all Vulkan devices expose the same API, their properties and limitations might be fundamentally different from each other. -Tomasz Chadzynski Integrated Computer Solutions Inc. Fire Black hole Explosions Galaxies Snowflakes Questions? 5