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



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

Image Synthesis. Fur Rendering. computer graphics & visualization

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

Dynamic Resolution Rendering

Bronwen Grimes Technical Artist

GPU Architecture. Michael Doggett ATI

Shader Model 3.0. Ashu Rege. NVIDIA Developer Technology Group

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

The Future Of Animation Is Games

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

Image Synthesis. Transparency. computer graphics & visualization

Enhanced LIC Pencil Filter

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

Optimizing AAA Games for Mobile Platforms

Silverlight for Windows Embedded Graphics and Rendering Pipeline 1

Introduction to Computer Graphics. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012

So, you want to make a photo-realistic rendering of the Earth from orbit, eh? And you want it to look just like what astronauts see from the shuttle

How To Teach Computer Graphics

Blender addons ESRI Shapefile import/export and georeferenced raster import

DIPLOMA IN 3D DESIGN AND DIGITAL ANIMATION COURSE INFO PACK

A Short Introduction to Computer Graphics

CAD and Creativity. Contents

Procedural Animation. An introduction

Radeon HD 2900 and Geometry Generation. Michael Doggett

Certificate Courses in Animation

Fundamentals of Computer Animation

SkillsUSA 2014 Contest Projects 3-D Visualization and Animation

Self-Positioning Handheld 3D Scanner

A Prototype For Eye-Gaze Corrected

2D Art and Animation. [ COGS Meeting 02/18/2015 ] [ Andrew ]

INTRODUCTION TO RENDERING TECHNIQUES

First, let me do a super fast introduction,

Introduction to Computer Graphics

Introduction Computer stuff Pixels Line Drawing. Video Game World 2D 3D Puzzle Characters Camera Time steps

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

GUI GRAPHICS AND USER INTERFACES. Welcome to GUI! Mechanics. Mihail Gaianu 26/02/2014 1

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

Introduction. Chapter 1

Self-Calibration and Hybrid Mapping

B2.53-R3: COMPUTER GRAPHICS. NOTE: 1. There are TWO PARTS in this Module/Paper. PART ONE contains FOUR questions and PART TWO contains FIVE questions.

The Dennis Technique for SketchUp Models in Photoshop

SCANNING, RESOLUTION, AND FILE FORMATS

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

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

Advanced Graphics and Animations for ios Apps

Efficient Storage, Compression and Transmission

Touchstone -A Fresh Approach to Multimedia for the PC

Adobe Marketing Cloud Sharpening images in Scene7 Publishing System and on Image Server

Computer Graphics CS 543 Lecture 12 (Part 1) Curves. Prof Emmanuel Agu. Computer Science Dept. Worcester Polytechnic Institute (WPI)

Location tracking: technology, methodology and applications

Using Photorealistic RenderMan for High-Quality Direct Volume Rendering

Lecture Notes, CEng 477

HIGH AND LOW RESOLUTION TEXTURED MODELS OF COMPLEX ARCHITECTURAL SURFACES

Advanced Diploma of Professional Game Development - Game Art and Animation (10343NAT)

Technical What s New. Autodesk Alias Product Line

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

GPU Shading and Rendering: Introduction & Graphics Hardware

High Resolution RF Analysis: The Benefits of Lidar Terrain & Clutter Datasets

VRayPattern also allows to curve geometry on any surface

Number of Edges on Excavated Boundaries : What does it mean?

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

SOFTWARE ENGINEER. For Online (front end) Java, Javascript, Flash For Online (back end) Web frameworks, relational databases, REST/SOAP, Java/Scala

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

Course Developer: Charles Shami, Professor, Savannah College of Art and Design

MMGD0203 Multimedia Design MMGD0203 MULTIMEDIA DESIGN. Chapter 3 Graphics and Animations

Bachelor of Games and Virtual Worlds (Programming) Subject and Course Summaries

Making natural looking Volumetric Clouds In Blender 2.48a

PCL - SURFACE RECONSTRUCTION

Volume visualization I Elvins

Single Depth Image Super Resolution and Denoising Using Coupled Dictionary Learning with Local Constraints and Shock Filtering

CSE 167: Lecture 13: Bézier Curves. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2011

Real-Time BC6H Compression on GPU. Krzysztof Narkowicz Lead Engine Programmer Flying Wild Hog

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

ASSEMBLY PROGRAMMING ON A VIRTUAL COMPUTER

How To Use Design Mentor

Create a new file/canvas to work with by going to the file menu and selecting new.

Visualization and Feature Extraction, FLOW Spring School 2016 Prof. Dr. Tino Weinkauf. Flow Visualization. Image-Based Methods (integration-based)

CURRICULUM VITAE EDUCATION:

Character Animation from 2D Pictures and 3D Motion Data ALEXANDER HORNUNG, ELLEN DEKKERS, and LEIF KOBBELT RWTH-Aachen University

WAYNESBORO AREA SCHOOL DISTRICT CURRICULUM VIDEO GAME DESIGN

Abstract. These two vectors define a plane tangent to the surface at that point. Their cross product is Recent work in computer graphics has been

Color correction in 3D environments Nicholas Blackhawk

Our One-Year 3D Animation Program is a comprehensive training in 3D using Alias

Files Used in this Tutorial

Blender 3D Animation

CNC-STEP. "LaserProbe4500" 3D laser scanning system Instruction manual

We can display an object on a monitor screen in three different computer-model forms: Wireframe model Surface Model Solid model

Low power GPUs a view from the industry. Edvard Sørgård

3 hours One paper 70 Marks. Areas of Learning Theory

3D Model of the City Using LiDAR and Visualization of Flood in Three-Dimension

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

Float a Beachball in Psuanmi

Transcription:

Water Flow in Alex Vlachos, Valve July 28, 2010

Outline Goals & Technical Constraints How Artists Create Flow Maps Flowing Normal Maps in Left 4 Dead 2 Flowing Color Maps in Portal 2

Left 4 Dead 2

Goals Visual Solve repeating texture artifacts Flow around obstacles Vary water speed and bump strength Technical Work with existing reflective surfaces Min hardware ps2.0b (6-year-old hardware) & Xbox 360 Gameplay

Gameplay Early Left 4 Dead 2 playtests showed players were confused and got lost often in the swamps Soft non-directional lighting Trees provided too much cover My theory was that water flow would improve gameplay by highlighting the correct path We tested this theory through playtesting In practice, we found testers took 17% fewer wrong turns and decreased the time it took to traverse the level!

Technical Constraints Already at perf limits on the Xbox 360 & low-end PC Already at memory limits on the Xbox 360 Our water shader had limited instructions left for our low end hardware ps2.0b

Algorithm Overview Pixel shader flow, not geometric flow Continue to use a normal map for water ripples Artists author a flow map (a texture containing 2D flow vectors) Use this flow map in a pixel shader to distort the normal map in the direction of flow

Flow Texture Mapped onto Surface Covers entire water surface Flow Texture

Normal Map Mapped onto Surface Tiled over the water surface Normal Map

Artists Author Flow Maps Flow map provides a unique 2D vector for every point on the water surface Relatively low resolution: ~4 texels/meter Impractical to paint directly We use Houdini to create vector flow maps

Houdini Importing Level Geometry

Houdini Combing Vector Field

Houdini Procedural Masks

Houdini Applying Masks

Houdini Water Normal Maps Normal Map

Left 4 Dead 2 Wanted to replace our scrolling normal maps with flowing normal maps Keep the rest of the water shader the same This algorithm ultimately provides a new per-pixel normal generated from the normal map and flow map

Related Work Nelson Max and Barry Becker 1995. Flow visualization using moving textures. In Proceedings of the ICASW/LaRC Symposium on Visualizing Time-Varying Data, 77 87. Building on aspects of their algorithm and applying their approach to flowing normal maps

Flow Visualization Inputs: flow field & noise texture Distort a noise texture to visualize a flow field The UV is offset by the 2D flow vector scaled by time

Flow Visualization Textures Noise Texture Flow Texture

Flow Visualization Experiment Flow Texture

Max & Becker s Observation The beginning of the distortion looks convincing Only distort a small amount In general, distortion looks reasonable for the first 1/3 of uv space

Smoothly Interpolating Layers Blend the short animated segment in two layers Each layer is offset half a phase so we can hide the restart for each layer

Smoothly Repeating Flow Flow Texture

A Great Start We now have a method to flow a normal map We want to apply this to a larger surface But applying this to a large surface means tiling our normal map which will cause artifacts

Portal 2 Test Map

Portal 2 Test Map (Programmer Art)

Flow Vectors on Water Surface Flow Texture

Single Layer Normal Distortion Flow Vectors

Double Layer Normal Distortion Flow Vectors

Two Major Problems Repetition The same normals will flow through the same point on the mesh Pulsing The surface appears to pulse in a repeating pattern

Repetition Visualization Single Layer Flow Vectors Normal Map

Double Layer Flow Vectors Normal Map

Double Layer With Offset Flow Vectors Normal Map

Repetition Solved by Offset Flow Vectors

Pulsing Solved by Noise Noise Texture

Pulsing Solved by Noise Flow Vectors Noise Texture

Water Speed Affects Normals We scale down the strength of the normal in tangent space by the flow speed (Flow speed is the length of the 2D flow vector)

Performance Compared to scrolling two normal maps: Additional texture fetches: 2 - flow & noise Additional arithmetic pixel shader instructions: 21

Water Flow in Portal 2 Wanted to also flow debris in dirty water Needed to modify our algorithm to support flowing a color map

Debris Flow Example Flow Vectors

Debris Flow Example Flow Texture

Debris Normal (Same as before) Flow Vectors

Flowing Debris Using Same Algorithm

Flowing Normals Flowing normals would repeat an interval from zero to some fraction with the peak (center) of the interval at half distortion

Flowing Debris Flowing colors works better by offsetting the interval from fraction to +fraction so the peak of the interval is at zero (the at-rest position)

Flowing Debris Using Offset Flow Vectors

Debris Flow Flow Vectors

Portal 2 Test Map

Left 4 Dead 2

Future Work Flow height maps and use tessellation hardware Multiple frequencies of normal maps Render dynamic flow vectors per-frame so animated objects cause flow changes Use flow map with our physics simulation to have objects flow on the water surface using the same data

Summary Use an artist-authored flow map Flow the normals in two layers and combine Use noise to reduce pulsing artifact Offset each phase of animation to reduce repetition Flowing debris uses an offset distortion range that favors less distortion than the normal flow

Thank You! Water textures created by Alireza Razmpoosh Alex Vlachos, Valve alex@valvesoftware.com