5 years is a long time Particularly for one game But finally I can talk about the renderer

Similar documents
INTRODUCTION TO RENDERING TECHNIQUES

Hi everyone, my name is Michał Iwanicki. I m an engine programmer at Naughty Dog and this talk is entitled: Lighting technology of The Last of Us,

Optimizing AAA Games for Mobile Platforms

GPU-Driven Rendering Pipelines

What is GPUOpen? Currently, we have divided console & PC development Black box libraries go against the philosophy of game development Game

Dynamic Resolution Rendering

Optimizing Unity Games for Mobile Platforms. Angelo Theodorou Software Engineer Unite 2013, 28 th -30 th August

Silverlight for Windows Embedded Graphics and Rendering Pipeline 1

Modern Graphics Engine Design. Sim Dietrich NVIDIA Corporation

Image Synthesis. Transparency. computer graphics & visualization

Overview Motivation and applications Challenges. Dynamic Volume Computation and Visualization on the GPU. GPU feature requests Conclusions

Image Processing and Computer Graphics. Rendering Pipeline. Matthias Teschner. Computer Science Department University of Freiburg

CS 378: Computer Game Technology

Shader Model 3.0. Ashu Rege. NVIDIA Developer Technology Group

Outline. srgb DX9, DX10, XBox 360. Tone Mapping. Motion Blur

Making natural looking Volumetric Clouds In Blender 2.48a

Performance Optimization and Debug Tools for mobile games with PlayCanvas

Computer Graphics. Introduction. Computer graphics. What is computer graphics? Yung-Yu Chuang

Deferred Shading & Screen Space Effects

Rendering Microgeometry with Volumetric Precomputed Radiance Transfer

The Dennis Technique for SketchUp Models in Photoshop

Pitfalls of Object Oriented Programming

The Car Tutorial Part 1 Creating a Racing Game for Unity

CUBE-MAP DATA STRUCTURE FOR INTERACTIVE GLOBAL ILLUMINATION COMPUTATION IN DYNAMIC DIFFUSE ENVIRONMENTS

A Short Introduction to Computer Graphics

3D Computer Games History and Technology

Advanced Graphics and Animations for ios Apps

Water Flow in. Alex Vlachos, Valve July 28, 2010

VIRTUAL TRIAL ROOM USING AUGMENTED REALITY

Using Photorealistic RenderMan for High-Quality Direct Volume Rendering

OpenGL Performance Tuning

How To Understand The Power Of Unity 3D (Pro) And The Power Behind It (Pro/Pro)

REAL-TIME IMAGE BASED LIGHTING FOR OUTDOOR AUGMENTED REALITY UNDER DYNAMICALLY CHANGING ILLUMINATION CONDITIONS

Recent Advances and Future Trends in Graphics Hardware. Michael Doggett Architect November 23, 2005

3D Interactive Information Visualization: Guidelines from experience and analysis of applications

Glass coloured glass may pick up on scan. Top right of screen tabs: these tabs will relocate lost windows.

NVPRO-PIPELINE A RESEARCH RENDERING PIPELINE MARKUS TAVENRATH MATAVENRATH@NVIDIA.COM SENIOR DEVELOPER TECHNOLOGY ENGINEER, NVIDIA

Advanced Rendering for Engineering & Styling

How to Avoid the 10 BIGGEST MISTAKES. in Voice Application Development

First, let me do a super fast introduction,

Games Development Education to Industry. Dr. Catherine French Academic Group Leader Games Programming, Software Engineering and Mobile Systems

Advanced Visual Effects with Direct3D

Making Dreams Come True: Global Illumination with Enlighten. Graham Hazel Senior Product Manager Sam Bugden Technical Artist

DATA VISUALIZATION OF THE GRAPHICS PIPELINE: TRACKING STATE WITH THE STATEVIEWER

Distributed Area of Interest Management for Large-Scale Immersive Video Conferencing

THE 10 MOST POWERFUL CHANGES THAT WILL INCREASE SALES IN YOUR COMPANY IMMEDIATELY!

How To Make A Texture Map Work Better On A Computer Graphics Card (Or Mac)

Course Overview. CSCI 480 Computer Graphics Lecture 1. Administrative Issues Modeling Animation Rendering OpenGL Programming [Angel Ch.

Review from last time. CS 537 Lecture 3 OS Structure. OS structure. What you should learn from this lecture

MASKS & CHANNELS WORKING WITH MASKS AND CHANNELS

Programming 3D Applications with HTML5 and WebGL

Gas Dynamics Prof. T. M. Muruganandam Department of Aerospace Engineering Indian Institute of Technology, Madras. Module No - 12 Lecture No - 25

Consolidated Visualization of Enormous 3D Scan Point Clouds with Scanopy

Monash University Clayton s School of Information Technology CSE3313 Computer Graphics Sample Exam Questions 2007

GPU(Graphics Processing Unit) with a Focus on Nvidia GeForce 6 Series. By: Binesh Tuladhar Clay Smith

Instructor. Goals. Image Synthesis Examples. Applications. Computer Graphics. Why Study 3D Computer Graphics?

Path Tracing Overview

Copyright 2006 TechSmith Corporation. All Rights Reserved.

A Parents Guide to ConnectSafely.org saferinternet.org.uk

Use fireworks and Bonfire night as a stimulus for programming

How to create PDF maps, pdf layer maps and pdf maps with attributes using ArcGIS. Lynne W Fielding, GISP Town of Westwood

Broken Shard. Alpha Report. Benjamin Schagerl, Dominik Dechamps, Eduard Reger, Markus Wesemann. TUM Computer Games Laboratory

Blender Notes. Introduction to Digital Modelling and Animation in Design Blender Tutorial - week 9 The Game Engine

Creating Your Own 3D Models

The Lighting Effects Filter

Software Virtual Textures

Quick Start. Guide. The. Guide

Grid Computing for Artificial Intelligence

Beyond 2D Monitor NVIDIA 3D Stereo

Customer Success Story

Introduction to Game Programming. Steven Osman

Optimization for DirectX9 Graphics. Ashu Rege

Persuasive. How to Write Persuasive. Marketing Proposals

Shading a Bigger, Better Sequel Techniques in Left 4 Dead 2 BRONWEN GRIMES, VALVE

2015 HSC Information and Digital Technology Digital animation Marking Guidelines

How to Reduce your Campaign Creation time to ZERO

Beyond Responsive Design (for Online Retailers): Delivering Custom Mobile Experiences for Multiple Touch Points

Colorize Three Ways with Paint Shop Pro s Professional Strength Tools

The game operator s toolkit: The essentials and beyond

Do you wish you could attract plenty of clients, so you never have to sell again?

Scan-Line Fill. Scan-Line Algorithm. Sort by scan line Fill each span vertex order generated by vertex list

How to see the market context using CCI Written by Buzz

CUDA Optimization with NVIDIA Tools. Julien Demouth, NVIDIA

CLOUD GAMING WITH NVIDIA GRID TECHNOLOGIES Franck DIARD, Ph.D., SW Chief Software Architect GDC 2014

Thumbnails for Medical Volume Data Browser

Computer Graphics Hardware An Overview

When life happens... Eliminating Credit Card Debt Quickly & Effectively. How to reduce your unsecured debt levels fast to avoid problems with debt

Wednesday, March 30, 2011 GDC Jeremy Ernst. Fast and Efficient Facial Rigging(in Gears of War 3)

CG Cookie Workshop:! Mastering Mesh Modeling!

University of Salford, UK Centre for Virtual Environments and Future Media. Carl Moore, Toby Duckworth and David Roberts

4273?: a novel platform for bioinformatics education

Thinking about College? A Student Preparation Toolkit

PRODUCT LIFECYCLE MANAGEMENT COMPETENCY CENTRE RENDERING. PLMCC, JSS Academy of Technical Education, Noida Rendering 1 of 16

NonStop SQL Database Management

The Future Of Animation Is Games

FULL DEEBRAND YOUR PERSONABLE IDENTITY. Want to Build a Profitable Brand Identity that s got some REAL Personality?

ORACLE TEAM USA / Photo: Guilain Grenier. ORACLE TEAM USA Marine & Offshore Case Study

Faculty of Computer Science Computer Graphics Group. Final Diploma Examination

Multiresolution 3D Rendering on Mobile Devices

7 Best Practices When SAP Must Run 24 x 7

Transcription:

5 years is a long time Particularly for one game But finally I can talk about the renderer 1

Think Different How we tried to take Conviction in a new direction How this motivated two new (different) approaches A completely dynamic visibility system A unique, semi-dynamic Ambient Occlusion approach 2

Inspiration: Bourne series, 24 Initial design: Nowhere to hide (out in the open), improvisation, less reliance on gadgets. MacGyver-esque. Blending into the crowd. Destruction. Stuff blowing up. Hollywood action. In terms of rendering: Outdoor environments HQ ambient lighting Lots of dynamic objects Radical departure 3

No threading Interiors High-contrast lighting High cost to rendering objects Bolted down Plus, also carrying a little extra weight - code bloat The great temptation? To start from scratch 4

A prime example: BSP An integral part of Unreal Engine Showing its age Messy implementation (we d hacked on it) Won t meet our goals dynamic and/or localised occlusion (particularly outside) But we had a solution [By the way, this is me back then getting messy with the code. As I said, 5 years is a long time. ] 5

Fairly new to the scene We had naïve expectations Just render lots of queries yay! 6

Whilst we were busy rewriting the renderer, back on the farm Removing the BSP: Caused major disruption for LDs. They were used to blocking out maps with BSP brushes, not making meshes in 3ds Max! Robbed engine of an acceleration structure Should have distilled what we had! The BSP geometry could have been converted to static mesh chunks and also used for collision, occlusion. 7

Avoid disruptive changes (rewrites) -> Resistance, confusion, distrust But you have to push boundaries Fail Early, Fail Often. Get good at this and you reduce risk. Try 100 ways to find that one way An amazing personal experience 8

What is visibility? Cull what you can t see Ideally everything Effectively render more Before & after 9

Query problems: Latency Popping Can t batch Grouping? Complicated Nothing worked fully <rant>you ll see these issues or their side effects even in commercial middleware. Either there s popping ( latent queries) or the tests must be interleaved with regular rendering, which can complicate things or restrict you.</rant> 10

Had plenty of ideas One was the Hierarchical Z Buffer, Greene et al., Siggraph 93 But: Ran out of time Worried about performance Unproved solutions (HZB in particular) Thought we could work around every problem Barriers lifted More time + inspiration (Josh & Jeremy at Siggraph 08 Froblins talk) 11

Simple, elegant Render occluders - doing this anyway? Build depth MIP chain Test objects against this [Besides read-back, all of this happens on the GPU] 12

These are our occluders Typically decoupled from the visual meshes Pretty abstract You ll see this market scene again shortly in context 13

This is your z-buffer on steroids Take max of 4 texels when generating next level Skybox (white) begins to dominate 14

Take the objects bounds (blue) Find the screen bounds (green) Find the right level of the HZB (orange) the one that covers the screen bounds with <= N texels Visibility test: Is object min_z < HZB (overlapping texels) Advantages: Fixed cost, single batch (one big POINTLIST VB of bounds), extremely fast, in our case no frame delay Trade off: Small objects are accurate, big objects are inaccurate. This is probabilistic. Big objects (in screen terms) are more likely to be visible anyway 15

We wait for the results, you could defer CPU typically has some work to do (light re-association) GPU can be idle as results are processed by the CPU (try to move most of this work until later in the frame) We also test: Lights, AO fields, decals, deferred queries for main engine We also check: Does object need to stream textures?, can it be screen-size faded/culled?, what tiles does it cover? (360) 360: No predicated tiling, no BUFFER_2_FRAMES! Production proven! 16

Inspired by CC Shadow Volumes First pass: From light Cull hidden Clamp visible to occluders 17

Second pass: From camera Test clamped shafts Can reuse the HZB from the main render Used for cascaded shadows 18

Rough 360 stats: ~0.35ms for all the queries (worst case not all levels have this many) Plus ~0.1ms for downsample (512x256 - could possibly be lower) Also not counting occluder rendering (maybe another ~0.1ms can be CPU bound at the moment) versus ~0.05ms per full-screen occlusion query. Think about that for a second! It s so fast that we didn t even bother with a shallow hierarchy pre-pass Could use this to drive pre-computed visibility too <rant>i can t believe some developers suffer 6h+ static PVS pre-processing steps for their levels, even if they re aiming for 60FPS.</rant> 19

20

Not perfect Humans get in the way Cull the vast majority of objects Big object!= expensive object Occluder mesh!= collision mesh Testers will find these problems But only right at the end! Visual & occluder need to be in sync. 21

We d like to use these more in the main engine Determinism was an issue P2P COOP, particularly on PC Several passes Rasterisation? But what s my main goal? 22

Take artists out of the loop as much as possible. There s no such thing as pretty visibility Minimal production overhead. One less thing to worry about No cheating. 100% correctness Perhaps just have artists tag structural meshes, then we weld them all up, possibly simplify and convert to fixed-size chunks / minimise overdraw. 23

What is AO? This is AO Average shadowing at a point. How much light can get there Less flat ambient. Contact shadows Constant/low-frequency ambient otherwise washes things out Poor man s GI. We decouple colour and luminance changes as an approximation We bake everything but it s still dynamic NOT SSAO (although it is accumulated in screen space ) 24

No SSAO in 2005 But this gives us control, flexibility Competitive Not a crease shader 25

The first component is static baking for self occlusion (rigid bodies) and structural meshes (big meshes that don t move) Artists can control the falloff/cutoff, which is important for interiors This is generated with a mini-renderer Essentially accumulating shadow maps, with depth peeling to support falloff/cutoff <rant>put the time in to ensure that artists have fast tools. So they can iterate quickly. So nothing gets out of sync. It s fun to boast about having awesome server farms, but you re doing your artists a disservice if you think a round trip time of a few hours is a good idea. Same goes for PVS.</rant> 26

Inspired by AO Fields paper We use volumes in order to capture concave occlusion (e.g. under a table) Average + directional visibility (like second order SH, but the scale factors cancel) Generated offline as with self AO 27

Analytical Second order zonal harmonics 1D Texture unit sphere on Z Attached to primary bones Used for self occlusion too Those blue pills are just an artistic representation. They re really ellipsoids. 28

We combine (splat) fields in screen-space using special blending Composited like deferred lighting 29

Smooth Rendered at ¼ res. Masking by ID for fields Edge-aware up-sampling 30

Dot product in the lighting pass. Uses per-pixel normal We ve decoupled again: High-frequency surface normal vs. smoothly-varying AO For our look, we scale regular diffuse/spec too and even apply contrast to the AO 31

32

33

This didn t make it in The reverse: lighting 34

This is a highly active field of research RGB occlusion/bounce/light? (see earlier) Combine with Crytek s GI? We should have streamed in higher-res. volumes I can t imagine hardware supporting cubic interpolation of volume textures anytime soon, but a developer can dream. 35

36

I owe a debt of gratitude to all of these guys All those artists Josh and Jeremy for inspiration Michael: Initial AO work Everyone else for feedback on this talk 37

38

39