3D Vision Technology Develop, Design, Play in 3D Stereo. Samuel Gateau

Similar documents
The In and Out: Making Games Play Right with Stereoscopic 3D Technologies. Samuel Gateau

3D Stereoscopic Game Development. How to Make Your Game Look

Beyond 2D Monitor NVIDIA 3D Stereo

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

3D Modeling Using Stereo Projection

Shader Model 3.0. Ashu Rege. NVIDIA Developer Technology Group

INTRODUCTION TO RENDERING TECHNIQUES

Optimizing AAA Games for Mobile Platforms

Dynamic Resolution Rendering

Realtime 3D Computer Graphics Virtual Reality

How To Use 3D On A Computer Or Tv

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

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

GEFORCE 3D VISION QUICK START GUIDE

GPU Christmas Tree Rendering. Evan Hart

Stereoscopic 3D Video in the Home

Using Photorealistic RenderMan for High-Quality Direct Volume Rendering

iz3d Stereo Driver Description (DirectX Realization)

Stereo 3D Monitoring & Correction

Basic Principles of Stereoscopic 3D. Simon Reeve & Jason Flock Senior Editors, BSKYB simon.reeve@bskyb.com jason.flock@bskyb.com

The Rocket Steam Locomotive - Animation

Video in Logger Pro. There are many ways to create and use video clips and still images in Logger Pro.

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

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

The Limits of Human Vision

Q. Can an Exceptional3D monitor play back 2D content? A. Yes, Exceptional3D monitors can play back both 2D and specially formatted 3D content.

Image Synthesis. Transparency. computer graphics & visualization

White Paper AMD HD3D Pro Technology: Stereoscopic 3D For Professionals. Table of Contents

Data Sheet. definiti 3D Stereo Theaters + definiti 3D Stereo Projection for Full Dome. S7a1801

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

Silverlight for Windows Embedded Graphics and Rendering Pipeline 1

GPU Architecture. Michael Doggett ATI

NVIDIA GeForce GTX 580 GPU Datasheet

TIME WARNER DIGITAL CABLE

CS 4204 Computer Graphics

Introduction to Computer Graphics

Go to contents 18 3D Visualization of Building Services in Virtual Environment

COMP175: Computer Graphics. Lecture 1 Introduction and Display Technologies

Kapitel 12. 3D Television Based on a Stereoscopic View Synthesis Approach

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

Making natural looking Volumetric Clouds In Blender 2.48a

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

The Evolution of Computer Graphics. SVP, Content & Technology, NVIDIA

A Short Introduction to Computer Graphics

1. INTRODUCTION Graphics 2

3D Scanner using Line Laser. 1. Introduction. 2. Theory

OpenGL Performance Tuning

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

SketchUp Instructions

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.

Color correction in 3D environments Nicholas Blackhawk

XPAND (DLP -Link ) 3D Glasses

Technical Brief. Quadro FX 5600 SDI and Quadro FX 4600 SDI Graphics to SDI Video Output. April 2008 TB _v01

CSE 564: Visualization. GPU Programming (First Steps) GPU Generations. Klaus Mueller. Computer Science Department Stony Brook University

Computer Applications in Textile Engineering. Computer Applications in Textile Engineering

GEFOrcE 3D VisiON Tips & Tricks

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

Intel Graphics Media Accelerator 900

Perspective and Space

Digital Photography Composition. Kent Messamore 9/8/2013

The Car Tutorial Part 1 Creating a Racing Game for Unity

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

Intel s Next Generation Integrated Graphics Architecture Intel Graphics Media Accelerator X3000 and 3000

A Prototype For Eye-Gaze Corrected

NVIDIA workstation 3D graphics card upgrade options deliver productivity improvements and superior image quality

How To Use An Amd Ramfire R7 With A 4Gb Memory Card With A 2Gb Memory Chip With A 3D Graphics Card With An 8Gb Card With 2Gb Graphics Card (With 2D) And A 2D Video Card With

3D Computer Games History and Technology

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

Catalyst Software Suite Version 9.11 Release Notes

A Crash Course on Programmable Graphics Hardware

QuickSpecs. NVIDIA Quadro K4200 4GB Graphics INTRODUCTION. NVIDIA Quadro K4200 4GB Graphics. Overview

How To Run A Factory I/O On A Microsoft Gpu 2.5 (Sdk) On A Computer Or Microsoft Powerbook 2.3 (Powerpoint) On An Android Computer Or Macbook 2 (Powerstation) On

Autodesk ImageModeler 2009

Real-Time Realistic Rendering. Michael Doggett Docent Department of Computer Science Lund university

Comp 410/510. Computer Graphics Spring Introduction to Graphics Systems

NVFX : A NEW SCENE AND MATERIAL EFFECT FRAMEWORK FOR OPENGL AND DIRECTX. TRISTAN LORACH Senior Devtech Engineer SIGGRAPH 2013

Head-Coupled Perspective

Maxwell Render 1.5 complete list of new and enhanced features

RADEON 9700 SERIES. User s Guide. Copyright 2002, ATI Technologies Inc. All rights reserved.

GPGPU Computing. Yong Cao

QuickSpecs. NVIDIA Quadro K5200 8GB Graphics INTRODUCTION. NVIDIA Quadro K5200 8GB Graphics. Overview. NVIDIA Quadro K5200 8GB Graphics J3G90AA

VRayPattern also allows to curve geometry on any surface

ABS 731 Lighting Design & Technology. Spring 2006

Deferred Shading & Screen Space Effects

Video Conferencing Display System Sizing and Location

QuickSpecs. NVIDIA Quadro K5200 8GB Graphics INTRODUCTION. NVIDIA Quadro K5200 8GB Graphics. Technical Specifications

Catalyst Software Suite Version 9.12 Release Notes

Space Perception and Binocular Vision

Catalyst Software Suite Version 9.3 Release Notes

NVIDIA Mosaic Technology

Dynamic Digital Depth (DDD) and Real-time 2D to 3D conversion on the ARM processor

Chapter 8: Perceiving Depth and Size

Understanding astigmatism Spring 2003

Lecture Notes, CEng 477

Displaying Stereoscopic 3D (S3D) with Intel HD Graphics Processors for Software Developers August 2011

Real-Time Graphics Architecture

6 Space Perception and Binocular Vision

Transcription:

3D Vision Technology Develop, Design, Play in 3D Stereo Samuel Gateau

Can you see it?

Outline NVIDIA 3D VISION Stereoscopic driver & HW display solutions Stereoscopy basics Definitions and equations Capcom - Resident Evil 5 Words from the developer The Look of Depth Controlling stereo parameters

How does it work? NVIDIA 3D VISION

3D Movies 3D Pictures Dimensionalized Experience 120 Hz LCDs 3D DLP HDTVs 3D Games 3D Applications NVIDIA GPUs The programmability of the GPU allows NVIDIA to import any 3D data format and decode, convert, or transform the data for viewing on a 3D-Ready displays. 3D Projectors Anaglyph 3D

Stereo Support GeForce Stereo Driver Quadro Vista & Win7 D3D9 / D3D10 GeForce features Professional OpenGL Stereo Quad Buffer Multiple synchronized stereo displays Multi-platform 3D Vision and many other stereo displays

NVIDIA 3D Vision Solutions Availability NVIDIA 3D Vision Discover Bundled with select NVIDIA GPUs for a sneak peak at stereoscopic 3D NVIDIA 3D Vision Sold as a complete kit for full HD stereoscopic 3D 3D Glasses type NVIDIA optmized anaglyph (red/cyan) Wireless Shutter glasses 3D Mode Anaglyph with optimized color and image processing on the GPU Page flip 120 Hz & checkerboard pattern 3D Color Fidelity Limited Color Full Color Display requirements All desktop LCD and CRT displays 3D-Vision-Ready displays NVIDIA GeForce GPU GeForce 8 series and higher GeForce 8 series and higher Operating System Microsoft Windows Vista Microsoft Windows 7 Microsoft Windows Vista Microsoft Windows 7 View 3D pictures Y Y Watch 3D movies Y Y Play real-time 3D games Y Y 3D consumer applicaiton Y Y

3D Vision Industry Support Display Partners Software Applications

How It Works 3D game data is sent to stereoscopic driver The driver takes the 3D game data and renders each scene twice once for the left eye and once for the right eye. Left Eye view Right Eye view A Stereoscopic display then shows the left eye view for even frames (0, 2, 4, etc) and the right eye view for odd frames (1, 3, 5, etc).

How It Works Left eye view on, right lens blocked Right eye view on, left lens blocked In this example active shutter glasses black-out the right lens when the left eye view is shown on the display and black-out the left lens when the right eye view is shown on the display. This means that the refresh rate of the display is effectively cut in half for each eye. (e.g. a display running at 120 Hz is 60 Hz per eye) on off off on Left lens Right lens Left lens Right lens The resulting image for the end user is a combined image that appears to have depth in front of and behind the stereoscopic 3D Display.

NVIDIA 3D Vision NVAPI Stereoscopic Module NVAPI is NVIDIA's core software development kit that allows direct access to NVIDIA GPUs and drivers NVAPI now expose a Stereoscopic Module providing access to developer to the Stereoscopic driver settings Detect if the system is 3D Vision capable Manage the stereo profile settings for the game Control dynamically the stereo parameters from within the game engine for a better stereo experience For download and documentation http://developer.nvidia.com/object/nvapi.html

Under the hood STEREOSCOPY BASICS

Stereoscopy Basics Standard Mono Rendering Scene is viewed from one mono eye and projected on Near Clipping plane in Viewport Near clipping plane Viewport Y Z X Eye space

Stereoscopy Basics Two eyes, one screen, two images Left and Right eyes Shifting the mono eye along the X axis Left Frustum Right Frustum One virtual screen Where the left and right frustums converge Screen Left Image Right Image Near clipping plane Left Image Right Image Y Z X Eye space Two images 2 images are generated at the near clipping plane in each views then presented independently to each eyes of the user on the real screen

Stereoscopy Basics Stereoscopic Rendering Render geometry twice from left and right viewpoints into left and right images 3 independent modifications to standard pipe Use stereo surfaces Duplicate render surfaces Do stereo drawcalls Duplicate drawcalls Apply stereo separation Modify projection matrix

Stereoscopic Basics Interaxial Also called Eye Separation Distance between the 2 virtual eyes in eye space The mono, left & right eyes directions are all parallels Screen Eye space Y Z X Left Eye Mono Eye Right Eye Interaxial

Stereoscopic Basics Screen Depth Also called Convergence Screen s virtual depth in eye space Plane where Left and Right Frustums intersect Screen Left Frustum Eye space Y Z X Left Eye Mono Eye Right Eye Right Frustum Screen Depth

Stereoscopy Basics Left / Right Projection Projection matrix for each eyes is a horizontally modified version of regular mono projection matrix Shifting X coordinate left or right Screen Left Frustum Eye space Y Z X Left Eye Mono Eye Right Eye Mono Frustum Right Frustum

Stereoscopic Basics Parallax Signed Distance on the screen between the projected positions of one vertex in left and right image Parallax is function of the depth of the vertex in eye space Parallax = Interaxial * ( 1 ScreenDepth / W ) Clip space Y Z X Screen Parallax Left Eye Mono Eye Interaxial Right Eye Screen Depth Vertex depth (W)

Stereoscopic Basics In / Out of the Screen Parallax creates the depth perception relative to the screen When Parallax is negative, vertex appears Out of the screen Out of the Screen Screen In the Screen Left Eye Mono Eye Right Eye Eye space Y Z X

Stereoscopic Basics Parallax in equation Parallax = Interaxial * ( 1 ScreenDepth / W ) Parallax in window space Screen Depth Interaxial Parallax is 0 at screen depth Maximum Parallax at infinity is Interaxial (eye separation) Vertex Depth (W) Parallax diverges quickly to negative infinity for object closer to the eye

Stereoscopy Basics Left / Right rendering surfaces View dependent render targets must be duplicated Back buffer Depth Stencil buffer Intermediate full screen render targets used to process final image High dynamic range, Blur, Bloom Screen Space Ambient Occlusion Left Image Screen Left Image Right Image Right Image

Stereoscopic Basics Mono rendering surfaces View independent render targets DON T need to be duplicated Shadow map Spot light maps projected in the scene Screen

Rendering Techniques 3D Objects All the 3D objects should be rendered using a unique Perspective Projection in a given frame The sky box should be drawn with a valid depth further than the regular scene Best is at the Far distance Billboard elements (Particles, leaves ) should be rendered in a plane parallel to the viewing plane All the 3D objects must have a coherent depth relative to the scene

Stereoscopic Basics Out of the screen objects The user s brain is fighting against the perception of hovering objects out of the screen Extra care must be taken to achieve a convincing effect Objects should not be clipped by the edges of the window Be aware of the extra guard bands Move object slowly from inside the screen to the outside area to give eyes time to adapt Make smooth visibility transitions No blinking Realistic rendering helps

Rendering Techniques 2D Objects 2D Overlay elements (defined in window space) must be drawn at a valid Depth At the screen depth to look mono Head Up Display interface UI elements At the correct depth when interacting with the 3D scene Mouse Cursor at the pointed object s depth Can not use the HW cursor Crosshair Labels or billboards in the scene The depth is provided by the game engine Needs to modify the projection to take into account depth

Rendering Techniques 2D Objects hybrid projection Proposed vertex shader float4 2DObjects_VertexShader( in float2 posclip : POSITION, // Input position in clip space uniform float depth // Depth where to draw the 2D object ) : POSITION // Output the position in clip space { return float4( posclip.xy * depth, // Simply scale the posclip by the depth // to compensate for the division by W // performed before rasterization 0, // Z is not used if the depth buffer is not used // If needed Z = ( depth * f nf )/(f n); } depth ); // W is the Z in eye space

NVIDIA GeForce Stereo driver Stereo Surface Back buffer and Depth Stencil buffer are duplicated Automatic duplication of rendering surface is based on the size Surfaces equal or larger than back buffer size are duplicated Square surfaces are NOT duplicated Small surfaces are NOT duplicated Heuristic defined by driver profile setting Consult documentation for fine tuning

NVIDIA GeForce Stereo driver Stereo Drawcall Drawcall is stereo if rendering surface is stereo Drawcalls are issued twice in left surface and in right surface Render target surfaces bound as texture are updated too

NVIDIA GeForce Stereo driver Stereoscopic Separation If Drawcall is stereo Parallax shift is applied in the vertex shader to the vertex s clip position output When separation is not required, render geometry at Screen depth Full screen quad to do image filtering

Masaru Ijuuin from Capcom presents STEREO IN RESIDENT EVIL 5

Capcom presentation will be added after Siggraph

Controlling stereo parameters THE LOOK OF DEPTH

Rendering Techniques 3D Objects Culling When culling is done against the mono frustum Screen Left Frustum Eye space Y Z X Left Eye Mono Eye Right Eye Mono Frustum Right Frustum

Rendering Techniques 3D Objects Culling Some in screen regions are missing in the right and left frustum They should be visible Screen Left Frustum Left Eye Mono Eye Mono Frustum Right Eye Right Frustum

Rendering Techniques 3D Objects Culling And we don t want to see out of the screen objects only in one eye It disturbs the stereo perception Screen Left Frustum Left Eye Mono Eye Mono Frustum Right Eye Right Frustum

Rendering Techniques 3D Objects Culling Stereo Frustum for culling Here is the frustum we want to use for culling Screen Left Frustum Left Eye Mono Eye Mono Frustum Right Eye Right Frustum

Rendering Techniques 3D Objects Culling Computing Stereo Frustum origin offset Z = ScreenDepth / ( 1 + ScreenWidth / Interaxial) Z Screen Interaxial Left Eye Mono Eye Right Eye Screen Width Screen Depth

Using Depth Parallax Budget How much parallax variation is used in the frame Nearest pixel Farthest pixel Interaxial Parallax budget Depth Parallax Screen Depth

Using Depth Parallax Budget Farthest Pixel At 100 * ScreenDepth, Parallax is 99% of the Interaxial For pixels further than 100 * ScreenDepth, Elements looks flat on the far distance with no depth differentiation Between 10 to 100 * ScreenDepth, Parallax vary of only 9% Objects in that range have a subtle depth differenciation Interaxial Depth Parallax Screen Depth

Using Depth Parallax Budget Nearest pixel At ScreenDepth / 3, Parallax is 2 * Interaxial, out of the screen For pixels closer than ScreenDepth / 3, Parallax is very large (> 2*Interaxial) and can cause eye strains Interaxial Parallax Depth Screen Depth

Using Depth Defining Interaxial Interaxial directly defines the amount of depth perception and gives a notion of scale to the scene Realistic Interaxial is ideal for first person camera Viewer feels the scene is real Make sure that the position and field of view map the reality of the player setup (field of view, screen size, distance to the screen) Large Interaxial makes the scene looks smaller Viewer feels like a giant in front of a small world Good for overlooking camera (RTS) Small Interaxial make the scene looks larger Viewer feels very small compared to the scene Flatten 3d effect Should be dynamically adjustable for the user comfort Relative to an ideal reference value designed for the camera

Rendering Techniques Defining Screen Depth Screen Depth should be defined by the application depending on the camera and the scene Make sure the scene elements are in the range [ ScreenDepth / 3, 100 * ScreenDepth ] Full range to maximize the 3D perception Parallax Depth Screen Depth Smaller range for a more subtle usage of the parallax budget Parallax Depth Screen Depth

QUESTIONS? After siggraph sgateau@nvidia.com

Acknowledgements Rod Bogart & Bob Whitehill at Pixar Every one in the Stereo driver team! The usual suspects in demo and devtech team

How To Reach Us Online Twitter: nvidiadeveloper Website: http://developer.nvidia.com Forums: http://developer.nvidia.com/forums