Richard Thomson DAZ 3D www.daz3d.com. Direct3D 11  CTP in November 2008 DirectX SDK  Vista (and beyond) only, not on XP  Evolution of Direct3D 10 

Slides:



Advertisements
Similar presentations
Programming with OpenGL - Getting started - Hanyang University Han Jae-Hyek.
Advertisements

Introduction to Direct3D 10 Course Porting Game Engines to Direct3D 10: Crysis / CryEngine2 Carsten Wenzel.
Introduction to the Direct3D 11 Graphics Pipeline
© Copyright Khronos Group, Page 1 COLLADA FX Update and FX Composer 2.0 Daniel Horowitz & Ignacio Castaño.
DirectX Graphics: Direct3D 10 and Beyond
D3D11 Tessellation Sarah Tariq NVIDIA
COMPUTER GRAPHICS CS 482 – FALL 2014 NOVEMBER 10, 2014 GRAPHICS HARDWARE GRAPHICS PROCESSING UNITS PARALLELISM.
Understanding the graphics pipeline Lecture 2 Original Slides by: Suresh Venkatasubramanian Updates by Joseph Kider.
Status – Week 257 Victor Moya. Summary GPU interface. GPU interface. GPU state. GPU state. API/Driver State. API/Driver State. Driver/CPU Proxy. Driver/CPU.
RealityEngine Graphics Kurt Akeley Silicon Graphics Computer Systems.
Graphics Hardware CMSC 435/634. Transform Shade Clip Project Rasterize Texture Z-buffer Interpolate Vertex Fragment Triangle A Graphics Pipeline.
Direct3D 11 Performance Tips & Tricks Holger GruenAMD ISV Relations Cem CebenoyanNVIDIA ISV Relations.
Prepared 5/24/2011 by T. O’Neil for 3460:677, Fall 2011, The University of Akron.
Real-Time Rendering TEXTURING Lecture 02 Marina Gavrilova.
The Programmable Graphics Hardware Pipeline Doug James Asst. Professor CS & Robotics.
Damon Rocco.  Tessellation: The filling of a plane with polygons such that there is no overlap or gap.  In computer graphics objects are rendered as.
Tools for Investigating Graphics System Performance
Programming with CUDA, WS09 Waqar Saleem, Jens Müller Programming with CUDA and Parallel Algorithms Waqar Saleem Jens Müller.
© David Kirk/NVIDIA and Wen-mei W. Hwu, ECE408, University of Illinois, Urbana-Champaign 1 Programming Massively Parallel Processors Chapter.
IN4151 Introduction 3D graphics 1 Introduction to 3D computer graphics part 2 Viewing pipeline Multi-processor implementation GPU architecture GPU algorithms.
Pixel Shader Vertex Shader The Real-time Graphics Pipeline Input Assembler Rasterizer Output Merger.
Evolution of the Programmable Graphics Pipeline Patrick Cozzi University of Pennsylvania CIS Spring 2011.
Status – Week 283 Victor Moya. 3D Graphics Pipeline Akeley & Hanrahan course. Akeley & Hanrahan course. Fixed vs Programmable. Fixed vs Programmable.
The Graphics Pipeline CS2150 Anthony Jones. Introduction What is this lecture about? – The graphics pipeline as a whole – With examples from the video.
The programmable pipeline Lecture 10 Slide Courtesy to Dr. Suresh Venkatasubramanian.
GPU Graphics Processing Unit. Graphics Pipeline Scene Transformations Lighting & Shading ViewingTransformations Rasterization GPUs evolved as hardware.
University of Texas at Austin CS 378 – Game Technology Don Fussell CS 378: Computer Game Technology Beyond Meshes Spring 2012.
OPTIMIZING AND DEBUGGING GRAPHICS APPLICATIONS WITH AMD'S GPU PERFSTUDIO 2.5 GPG Developer Tools Gordon Selley Peter Lohrmann GDC 2011.
You can use 3D graphics to enhance and differentiate your Metro style app.
Computer Graphics Introducing DirectX
High Performance in Broad Reach Games Chas. Boyd
REAL-TIME VOLUME GRAPHICS Christof Rezk Salama Computer Graphics and Multimedia Group, University of Siegen, Germany Eurographics 2006 Real-Time Volume.
GPU Programming Robert Hero Quick Overview (The Old Way) Graphics cards process Triangles Graphics cards process Triangles Quads.
CHAPTER 4 Window Creation and Control © 2008 Cengage Learning EMEA.
Interactive Time-Dependent Tone Mapping Using Programmable Graphics Hardware Nolan GoodnightGreg HumphreysCliff WoolleyRui Wang University of Virginia.
4/23/2017 4:23 AM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
The Graphics Rendering Pipeline 3D SCENE Collection of 3D primitives IMAGE Array of pixels Primitives: Basic geometric structures (points, lines, triangles,
NVIDIA Fermi Architecture Patrick Cozzi University of Pennsylvania CIS Spring 2011.
The programmable pipeline Lecture 3.
CSE 690: GPGPU Lecture 6: Cg Tutorial Klaus Mueller Computer Science, Stony Brook University.
Stream Processing Main References: “Comparing Reyes and OpenGL on a Stream Architecture”, 2002 “Polygon Rendering on a Stream Architecture”, 2000 Department.
Computer Graphics The Rendering Pipeline - Review CO2409 Computer Graphics Week 15.
Tone Mapping on GPUs Cliff Woolley University of Virginia Slides courtesy Nolan Goodnight.
Maths & Technologies for Games DirectX 11 – New Features Tessellation & Displacement Mapping CO3303 Week 19.
Ritual ™ Entertainment: Next-Gen Effects on Direct3D ® 10 Sam Z. Glassenberg Program Manager Microsoft ® – Direct3D ® Doug Service Director of Technology.
Xbox MB system memory IBM 3-way symmetric core processor ATI GPU with embedded EDRAM 12x DVD Optional Hard disk.
Higher Order Surfaces in OpenGL with NV_evaluators Cass Everitt
Computer Graphics 3 Lecture 6: Other Hardware-Based Extensions Benjamin Mora 1 University of Wales Swansea Dr. Benjamin Mora.
© David Kirk/NVIDIA and Wen-mei W. Hwu, ECE408, University of Illinois, Urbana-Champaign 1 Programming Massively Parallel Processors Lecture.
Ray Tracing using Programmable Graphics Hardware
Advanced D3D10 Shader Authoring Presentation/Presenter Title Slide.
3/12/2013Computer Engg, IIT(BHU)1 CUDA-3. GPGPU ● General Purpose computation using GPU in applications other than 3D graphics – GPU accelerates critical.
GPU Computing for GIS James Mower Department of Geography and Planning University at Albany.
An Introduction to the Cg Shading Language Marco Leon Brandeis University Computer Science Department.
COMP 175 | COMPUTER GRAPHICS Remco Chang1/XX13 – GLSL Lecture 13: OpenGL Shading Language (GLSL) COMP 175: Computer Graphics April 12, 2016.
Computer Engg, IIT(BHU)
Creating distributed rendering applications
COMPUTER GRAPHICS CHAPTER 38 CS 482 – Fall 2017 GRAPHICS HARDWARE
Computer Graphics Lecture 32
Build /24/2018 © 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks.
Graphics Processing Unit
Chapter 6 GPU, Shaders, and Shading Languages
The Graphics Rendering Pipeline
Graphics Processing Unit
Instruction Set Principles
RADEON™ 9700 Architecture and 3D Performance
Computer Graphics Introduction to Shaders
CIS 441/541: Introduction to Computer Graphics Lecture 15: shaders
OpenGL-Rendering Pipeline
CIS 6930: Chip Multiprocessor: GPU Architecture and Programming
Presentation transcript:

Richard Thomson DAZ 3D

Direct3D 11  CTP in November 2008 DirectX SDK  Vista (and beyond) only, not on XP  Evolution of Direct3D 10  Compatible with D3D 10 cards

Evolution of Direct3D  Direct3D 9 Stable, been around for a while Last version to be deployed on Win XP  Direct3D 10 First Vista-only version Big change from D3D 9  Direct3D 10.1 Incremental tweak to D3D 10

Direct3D 10/10.1/11 vs. 9  Enumeration factored out to DXGI  Same DXGI used for 10, 10.1 and 11  Divide render/texture states into chunks  Chunks of state are immutable objects  “Device state” consists of set of assigned state chunks  Introduces new shader stages beyond vertex and pixel shaders  Tighter API specification => no CAPS

Direct3D 11 Focus  Scalability and performance  Improving the development experience  Extending the reach of the GPU

Direct3D 11 New Features  Tessellation  Compute Shader  Multithreading  Shader Subroutines  Improved Texture Compression  Other Features

Tessellation Direct3D 10 pipeline Plus Three new stages for Tessellation Input Assembler Vertex Shader Pixel Shader Hull Shader Rasterizer Output Merger Tessellator Domain Shader Geometry Shader Stream Output

Hull Shader Tessellator Domain Shader HS output: Patch control pts after Basis conversion HS output: TessFactors (how much to tessellate) fixed tessellator mode declarations HS input: patch control pts One Hull Shader invocation per patch

Hull Shader Syntax [patchsize(12)] [patchconstantfunc(MyPatchConstantFunc)] MyOutPoint main(uint Id : SV_ControlPointID, InputPatch InPts) { MyOutPoint result; … result = TransformControlPoint( InPts[Id] ); return result; }

Tessellator Hull Shader TS input: TessFactors (how much to tessellate) fixed tessellator mode declarations TS output: U V {W} domain points TS output: topology (to primitive assembly) Note: Tessellator does not see control points Tessellator operates per patch

Domain Shader Hull Shader Tessellator DS input: U V {W} domain points DS input: control points TessFactors DS output: one vertex One Domain Shader invocation per point from Tessellator

Domain Shader Syntax void main( out MyDSOutput result, float2 myInputUV : SV_DomainPoint, MyDSInput DSInputs, OutputPatch ControlPts, MyTessFactors tessFactors ) { … result.Position = EvaluateSurfaceUV( ControlPoints, myInputUV ); }

Single Pass Example displacement map Evaluate surface including displacement domain shader patch control points Animate/skin Control Points transformed control points vertex shader Transform basis, Determine how much to tessellate control points in Bezier patch U V {W} domain points Sub-D Patch Bezier Patch hull shader Tess Factors Tessellate! tessellator

Current Authoring Pipeline (Rocket Frog Taken From Loop &Schaefer, "Approximating Catmull-Clark Subdivision Surfaces with Bicubic Patches“) Sub-D Modeling AnimationDisplacement Map Polygon Mesh Generate LODs

New Authoring Pipeline (Rocket Frog Taken From Loop &Schaefer, "Approximating Catmull-Clark Subdivision Surfaces with Bicubic Patches“) Sub-D Modeling AnimationDisplacement Map Optimally Tessellated Mesh GPU

Tessellation Summary  Helps us get closer to eliminating “pointy heads”  Scales visual quality across PC hardware configurations  Supports performance increases Coarse model = compression, faster I/0 to GPU Rendering tailored to each end user’s hardware  Better cross-platform (Windows + Xbox 360) development experience Xbox 360 has a subset of D3D11’s tessellation Parity = ease of cross-platform development Extra features = innovation for Windows gaming  Render content as the artist created it!

More on Tessellation  GameFest 2008 Slides and Audio “Direct3D 11 Tessellation” ○ Kev Gee, Microsoft “Advanced Topics in GPU Tessellation” ○ Natasha Tatarchuk, AMD/ATI “Water-Tight, Textured, Displaced Subdivision Surface Tessellation Using Direct3D 11” ○ Ignacio Castano, NVIDIA

General Purpose GPU  Data Parallel Computing  GPU performance continues to grow  Many applications scale well to massive parallelism without tricky code changes  Direct3D is the API for talking to GPU  How do we expand Direct3D to GPGPU?

Compute Shader Direct3D 10 pipeline Plus Three new stages for Tessellation Plus Compute Shader Input Assembler Vertex Shader Pixel Shader Hull Shader Rasterizer Output Merger Tessellator Domain Shader Geometry Shader Stream Output Compute Shader Data Structure

Integrated with Direct3D  Fully supports all Direct3D resources  Targets graphics/media data types  Evolution of DirectX HLSL  Graphics pipeline updated to emit general data structures…  …which can then be manipulated by compute shader…  And then rendered by Direct3D again

Target Applications  Image/Post processing: Image Reduction Image Histogram Image Convolution Image FFT  A-Buffer/OIT  Ray-tracing, radiosity, etc.  Physics  AI

Computing a Histogram Histogram() { shared int Histograms[16][256];// array of 16 float3 vPixel = load( sampler, sv_ThreadID ); float fLuminance = dot( vPixel, LUM_VECTOR ); int iBin = fLuminance*255.0f; // compute bin to increment int iHist = sv_ThreadIDInGroup & 16; // use thread index Histograms[iHist][iBin] += 1; // update bin // enable all threads in group to complete SynchronizeThreadGroup;

Computing a Histogram 2 // Write register histograms out to memory: iBin = sv_ThreadIDInGroup.x; if (sv_ThreadID.x < 256) { for (iHist = 0; iHist < 16; iHist++) { int2 destAddr = int2(iHist, iBin); OutputResource.add(destAddr, Histograms[iHist][iBin]); // atomic }

Compute Shader Summary  Enables much more general algorithms  Transparent parallel processing model  Full cross-vendor support  Broadest possible installed base  GameFest 2008: “Direct3D 11 Compute Shader – More Generality for Advanced Techniques” ○ Chas Boyd, Microsoft

Multithreading  Enables distribution across threads of Application code Runtime Driver  Device: free threaded resource creation  Immediate Context: your single primary device for state & draws  Deferred Contexts: your per-thread devices for state & draws  Display Lists: Recorded sequence of graphics commands  Requires a driver update

Shader Subroutines  Details Calls must be fast Binding applies to all primitives in a Draw call Binding operation must be fast Need parameter passing mechanism Need access to textures, samplers, etc.  Advantages Reduce register usage in Über-shaders ○ Not worst case of all if statements Allows specialization of subroutines

Improved Texture Compression  Why?  Existing block palette interpolations too simple  Results often rife with blocking artifacts  No high dynamic range (HDR) support

New Texture Formats  BC6 (aka BC6H) High dynamic range 6:1 compression (16 bpc RGB) Targeting high (not lossless) visual quality  BC7 LDR with alpha 3:1 compression for RGB or 4:1 for RGBA High visual quality

Compression of New Formats  Block compression (unchanged) Each block independent Fixed compression ratio  Multiple block types (new) Tailored to different types of content Smooth gradients vs. noisy normal maps Varied alpha vs. constant alpha  Decompression results must be bit- accurate with spec

Comparison Results 1 OrigBC3 OrigBC7 Abs Error

Comparison Results 2 OrigBC3 OrigBC7 Abs Error

Comparison Results 3 Abs Error HDR Original at given exposure BC6 at given exposure

Other Features  Addressable Stream Out  Draw Indirect  Pull-model attribute eval  Improved Gather4  Min-LOD texture clamps  16K texture limits  Required 8-bit subtexel, submip filtering precision  Conservative oDepth  2 GB Resources  Geometry shader instance programming model  Optional double support  Read-only depth or stencil views

Thanks Allison Klein Senior Lead Program Manager Direct3D Microsoft Chas. Boyd Architect Windows Desktop & Gaming Technology Microsoft

Thank you to our Sponsors!