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

Similar documents
Portland State University ECE 588/688. Graphics Processors

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

CS451Real-time Rendering Pipeline

Real-Time Volumetric Smoke using D3D10. Sarah Tariq and Ignacio Llamas NVIDIA Developer Technology

Computer Graphics and Visualization. What is computer graphics?

Direct Rendering of Trimmed NURBS Surfaces

Graphics Pipeline 2D Geometric Transformations

GAME PROGRAMMING ON HYBRID CPU-GPU ARCHITECTURES TAKAHIRO HARADA, AMD DESTRUCTION FOR GAMES ERWIN COUMANS, AMD

CS GPU and GPGPU Programming Lecture 2: Introduction; GPU Architecture 1. Markus Hadwiger, KAUST

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

General Purpose Computation (CAD/CAM/CAE) on the GPU (a.k.a. Topics in Manufacturing)

Radeon ProRender and Radeon Rays in a Gaming Rendering Workflow. Takahiro Harada, AMD 2017/3

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

The Rasterization Pipeline

Metal for Ray Tracing Acceleration

Abstract. Introduction. Kevin Todisco

Volume Graphics Introduction

Adaptive Point Cloud Rendering

Previously... contour or image rendering in 2D

Spring 2009 Prof. Hyesoon Kim

Animation Tools THETOPPERSWAY.COM

Spring 2011 Prof. Hyesoon Kim

The Graphics Pipeline

Game Graphics & Real-time Rendering

high performance medical reconstruction using stream programming paradigms

EE 4702 GPU Programming

CS8803SC Software and Hardware Cooperative Computing GPGPU. Prof. Hyesoon Kim School of Computer Science Georgia Institute of Technology

Building scalable 3D applications. Ville Miettinen Hybrid Graphics

Realtime Water Simulation on GPU. Nuttapong Chentanez NVIDIA Research

Applications of Explicit Early-Z Culling

Streaming Massive Environments From Zero to 200MPH

Game Technology. Lecture Physically Based Rendering. Dipl-Inform. Robert Konrad Polona Caserman, M.Sc.

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

Maximizing Face Detection Performance

Threading Hardware in G80

Corona Sky Corona Sun Corona Light Create Camera About

LK-Tris: A embedded game on a phone. from Michael Zimmermann

3D Production Pipeline

Conemarching in VR. Johannes Saam Mariano Merchante FRAMESTORE. Developing a Fractal experience at 90 FPS. / Framestore

CS179: GPU Programming Recitation 5: Rendering Fractals

Me Again! Peter Chapman. if it s important / time-sensitive

Trendsetting The World of Visual Effects

Shape of Things to Come: Next-Gen Physics Deep Dive

Programming projects. Assignment 1: Basic ray tracer. Assignment 1: Basic ray tracer. Assignment 1: Basic ray tracer. Assignment 1: Basic ray tracer

What is a Rigid Body?

GPU Memory Model. Adapted from:

Rasterization Overview

Lecture 25: Board Notes: Threads and GPUs

Volume Rendering. Computer Animation and Visualisation Lecture 9. Taku Komura. Institute for Perception, Action & Behaviour School of Informatics

V-RAY NEXT FOR 3DS MAX

Why Use the GPU? How to Exploit? New Hardware Features. Sparse Matrix Solvers on the GPU: Conjugate Gradients and Multigrid. Semiconductor trends

Computer Graphics Fundamentals. Jon Macey

Models and Architectures

Fast Tridiagonal Solvers on GPU

CUDA. Fluid simulation Lattice Boltzmann Models Cellular Automata

OpenGL on Android. Lecture 7. Android and Low-level Optimizations Summer School. 27 July 2015

Ray Tracing. Computer Graphics CMU /15-662, Fall 2016

Dominic Filion, Senior Engineer Blizzard Entertainment. Rob McNaughton, Lead Technical Artist Blizzard Entertainment

Introduction to 3D Graphics

Color Characterization and Calibration of an External Display

CS130 : Computer Graphics Lecture 2: Graphics Pipeline. Tamar Shinar Computer Science & Engineering UC Riverside

Index FEATURES LIST 2

Michal Valient Lead Tech Guerrilla Games

Introduction to Multicore architecture. Tao Zhang Oct. 21, 2010

Display. Introduction page 67 2D Images page 68. All Orientations page 69 Single Image page 70 3D Images page 71

Scanline Rendering 2 1/42

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

Adarsh Krishnamurthy (cs184-bb) Bela Stepanova (cs184-bs)

Volumetric processing and visualization on heterogeneous architecture

FLUID SIMULATION. Kristofer Schlachter

PowerVR Hardware. Architecture Overview for Developers

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

Lecture 6: Input Compaction and Further Studies

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

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

GRAMPS Beyond Rendering. Jeremy Sugerman 11 December 2009 PPL Retreat

Chapter 10 Computation Culling with Explicit Early-Z and Dynamic Flow Control

Chapter 1 Introduction

Parallel Computer Architecture and Programming Final Project

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

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

GeForce4. John Montrym Henry Moreton

CS 4620 Program 3: Pipeline

Direct Rendering. Direct Rendering Goals

Lecture 6: Texture. Kayvon Fatahalian CMU : Graphics and Imaging Architectures (Fall 2011)

GPGPU LAB. Case study: Finite-Difference Time- Domain Method on CUDA

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

Using GPUs. Visualization of Complex Functions. September 26, 2012 Khaldoon Ghanem German Research School for Simulation Sciences

CIS 581 Interactive Computer Graphics

Journal of Universal Computer Science, vol. 14, no. 14 (2008), submitted: 30/9/07, accepted: 30/4/08, appeared: 28/7/08 J.

The Illusion of Motion Making magic with textures in the vertex shader. Mario Palmero Lead Programmer at Tequila Works

SAMPLING AND NOISE. Increasing the number of samples per pixel gives an anti-aliased image which better represents the actual scene.

Game Development for

CS 4620 Midterm, March 21, 2017

B. Tech. Project Second Stage Report on

General Algorithm Primitives

GPGPU Lessons Learned. Mark Harris

Point based global illumination is now a standard tool for film quality renderers. Since it started out as a real time technique it is only natural

GUERRILLA DEVELOP CONFERENCE JULY 07 BRIGHTON

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

Transcription:

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

Phoenix FD core SIMULATION & RENDERING. SIMULATION CORE - GRID-BASED SOLVER: EXTERNAL FORCES. DIVERGENCE CLEANING (CONSERVATION). ADVECTION. HYBRID SOLVER. FLIP SOLVER.

Phoenix FD conservation close-up In any solver type the conservation takes a significant time. Conservation methods are iterative algorithms doing many iterations on the entire grid. Phoenix implements 2 double-buffered methods and 2 that work in-place.

Phoenix FD buffered conservations GPU friendly and easy to multithread. On the CPU same multithreading method as for all other supporting algorithms: Splitting the grid vertically into equal sections.

Phoenix FD standard multithreading For example: 4 threads. Data amount for each section: Thread 3 Thread 2 Thread 1 Thread 0

Phoenix FD standard MT Issues: BAD LOAD BALANCING. BAD USE OF L3 CACHE.

Phoenix FD standard MT Resolving both CPU and cache issues: each thread n works on those horizontal slices where z mod N = n Thread 3 Thread 2 Thread 1 Thread 0 Thread 3 Thread 2 Thread 1 Thread 0

Phoenix FD in-place conservations Read, calculate and write immediately the result in the same buffer: MUCH STRONGER CONSERVATION. EACH CELL DEPENDS ON THE PREVIOUS ONE. VERY BAD FOR THE GPU. SINGLE-THREADED ON THE CPU.

Phoenix FD in-place conservations For each cell, calculate its divergence and correct the velocities proportionally so that the divergence is zeroed.

Phoenix FD in-place conservations The cell s own velocities cancel out of the divergence calculation.

Phoenix FD in-place conservations In the 3D grid, a checker pattern emerges, where the black and white cells don t interact:

Phoenix FD in-place conservations Let s split the grid in horizontal slices as in the previous method and try to run each slice in a separate thread: 21 22 23 24 25 Thread 3 Thread 2 Thread 1 Thread 0 16 17 18 19 20 11 12 13 14 15 6 7 8 9 10 1 2 3 4 5

Phoenix FD in-place conservations Influence pattern for Thread 0 and Thread 1, showing that Thread 1 must be delayed by 2 rows: Thread 3 Thread 2 Thread 1 0 Thread 0 2

Phoenix FD in-place conservations The Harvester method: 21 22 23 24 25 Thread 3 (waiting) Thread 2 Thread 1 Thread 0 16 17 18 19 20 11 12 13 14 15 6 7 8 9 10 1 2 3 4 5

Phoenix FD rendering Real-time GPU-based volumetric rendering THE USUAL RENDERING WITH THE CPU THE ADVANTAGES AND LIMITATIONS OF THE GPU THE IMPLEMENTATION ON THE GPU

Phoenix FD usual CPU rendering What kind of data we have: DENSITY FUNCTION REPRESENTED AS A 3D GRID OBSERVER S POSITION AND ORIENTATION (CAMERA) LIGHT SOURCES

Phoenix FD usual CPU rendering Calculating what we see in a certain direction: THE RESULT IS A WEIGHTED SUM CALCULATION OF THE WEIGHT CALCULATION OF THE LOCAL BRIGHTNESS

Phoenix FD usual CPU rendering The contribution of a short segment:

Phoenix FD GPU advantages and limitations Short history of the GPU: BASIC FUNCTION CONVERT TRIANGLES FROM 3D to 2D AND TEXTURE THEM THE PROGRAMMABLE FIXED PIPELINE WITH 8 STAGES THE PIXEL SHADERS AND THEIR EVOLUTION INTO GENERAL-PURPOSE CALCULATION UNITS

Phoenix FD GPU advantages and limitations Why the GPU is faster? MULTIPLE CORES WITH THE SAME CODE RUNNING ON THEM SIMPLER FLOW CONTROL NO BRANCHES, NO COMPLICATED ADDRESSING MODES SOME INTENSIVELY USED MATH IS DIRECTLY SUPPORTED (INTERPOLATION, 3D VECTORS)

Phoenix FD GPU advantages and limitations The difference from the CPU THE EXECUTED CYCLES ARE LIMITED LIMITED SYNCHRONIZATION ABILITIES NO RANDOM ACCESS TO THE MEMORY

Phoenix FD implementation on the GPU General overview IN MOST CASES THE GPU IS USED IN MULTIPLE PASSES A DUMMY PRIMITIVE (USUALLY A BOX) THAT WILL BE RENDERED IS PREPARED THE LARGE DATA ARRAYS ARE PASSED AS TEXTURES, THE SINGLE CONSTANTS ARE PASSED IN REGISTERS THE NEEDED PIXEL SHADER CODE IS ACTIVATED AND THE RENDERING OF THE DUMMY PRIMITIVE IS STARTED AFTER THE RENDERING THE RESULT IS IN THE BACK- BUFFER

Phoenix FD implementation on the GPU The light propagation FOR PERFORMANCE REASONS THE LIGHTS ARE REPRESENTED AS PARALLEL WE FIND THE BIGGEST COMPONENT OF THE DIRECTION VECTOR AND PROPAGATE THE LIGHT LAYER BY LAYER IN THIS DIRECTION EACH LAYER IS CALCULATED BY A SINGLE PASS ON THE GPU AND THE RESULT IS RETURNED INTO THE BACK BUFFER. WE KEEP IT INTO A TEXTURE AND PASS IT BACK TO THE GPU FOR THE NEXT LAYER CALCULATION

Phoenix FD implementation on the GPU The light propagation

Phoenix FD implementation on the GPU The light propagation ONCE HAVING THE LIGHT MAP, WE CAN USE IT MULTIPLE TIMES WITH DIFFERENT CAMERA POSITIONS (WE CAN ROTATE THE VIEW) WE PASS THE LIGHT MAP TO THE GPU, ALONG WITH THE DENSITY MAP, THE CAMERA, AND THE LIGHT DIRECTION THE CAMERA RAY INTEGRATION IS EXACTLY LIKE THE CPU IMPLEMENTATION

THANK YOU!