SlideShare una empresa de Scribd logo
1 de 113
Room A5  |  Monday, September, 20th, 16:00 - 17:20 San Jose Convention Center, San Jose, California ,[object Object]
Mark J. Kilgard ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Outline ,[object Object],[object Object],[object Object],[object Object]
OpenGL Leverage SceniX CompleX OptiX Parallel Nsight Cg
Example of Hybrid Rendering with OptiX OptiX (Ray tracing) OpenGL (Rasterization)
Parallel Nsight Provides OpenGL Profiling Configure Application Trace Settings
Parallel Nsight Provides OpenGL Profiling Magnified trace options shows specific OpenGL (and Cg) tracing options
Parallel Nsight Provides OpenGL Profiling
Parallel Nsight Provides OpenGL Profiling Trace of mix of OpenGL and CUDA shows glFinish & OpenGL draw calls
OpenGL In Every NVIDIA Business
OpenGL on Quadro ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
NVIDIA 3D Vision Pro Introduced at SIGGRAPH ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
OpenGL and Tesla ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Tesla M2050 / M2070
OpenGL on Tegra ,[object Object]
OpenGL on GeForce ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
NVIDIA OpenGL Initiatives ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
OpenGL Interoperability Multi-GPU
DirectX / OpenGL Interoperability Application OpenGL driver DirectX driver GPU Display ,[object Object],[object Object],[object Object],[object Object],[object Object],Texture / Vertex buffer object data
DirectX / OpenGL Interoperability ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
DirectX / OpenGL Interoperability ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
DirectX / OpenGL Interoperability ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
CUDA / OpenCL Interop example Application OpenGL driver CUDA driver Quadro or GeForce Display Tesla or GeForce Interop fast ,[object Object],[object Object],[object Object]
Multi-GPU OpenGL Interop Application OpenGL driver OpenGL driver Quadro Display Quadro Interop fast ,[object Object],[object Object],[object Object],GPU affinity Off-screen buffer
NVIDIA OpenGL 4 DirectX 11 superset All of Fermi exposed!
OpenGL Version Progression OpenGL  2.0   2.1  OpenGL  3.0  3.1  3.2  3.3  OpenGL  4.0  4.1   OpenGL  1.0  1.1  1.2.1  1.3  1.4  1.5  Silicon Graphics heritage DirectX 9 era GPUs DirectX 10 era GPUs DirectX 11 era GPUs (2008-2010) (1992-2003) (2004-2007) (2010-)
2010: Big year for OpenGL ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
OpenGL Versions for NVIDIA GPUs ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Well Worth Reviewing OpenGL 3.3 + 4.0 Additions ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Classic OpenGL State Machine ,[object Object],[object Object],[source: GL 1.0 specification, 1992]
OpenGL 3.2 Conceptual Processing Flow (pre-2010) Vertex processing Pixel processing Texture mapping Geometric primitive assembly & processing Image primitive processing Transform feedback Pixel unpacking Pixel packing Vertex assembly pixels in framebuffer object textures texture buffer objects texture image specification image rectangles, bitmaps primitive topology, transformed vertex data vertex texture fetches pixel pack buffer objects pixel unpack buffer objects vertex buffer objects transform feedback buffer objects buffer data, unmap buffer geometry texture fetches primitive batch type, vertex indices, vertex attributes primitive batch type, vertex data fragment texture fetches pixel image or texture image specification map buffer, get buffer data transformed vertex attributes image and bitmap fragments point, line, and polygon fragments pixels to pack unpacked pixels pixels fragments filtered texels buffer data vertices Legend programmable operations fixed-function operations copy pixels, copy texture image Buffer store uniform/ parameters buffer objects Fragment processing stenciling, depth testing, blending, accumulation OpenGL 3.2 Raster operations Framebuffer Command parser
Vertex processing Pixel processing Texture mapping Geometric primitive assembly & processing Image primitive processing Transform feedback Pixel unpacking Pixel packing Vertex assembly pixels in framebuffer object textures texture buffer objects texture image specification image rectangles, bitmaps primitive topology, transformed vertex data vertex texture fetches pixel pack buffer objects pixel unpack buffer objects vertex buffer objects transform feedback buffer objects buffer data, unmap buffer geometry texture fetches primitive batch type, vertex indices, vertex attributes primitive batch type, vertex data fragment texture fetches pixel image or texture image specification map buffer, get buffer data transformed vertex attributes image and bitmap fragments point, line, and polygon fragments pixels to pack unpacked pixels pixels fragments filtered texels buffer data vertices Legend programmable operations fixed-function operations copy pixels, copy texture image Buffer store Fragment processing stenciling, depth testing, blending, accumulation Control point processing Patch assembly & processing Patch tessellation generation Patch evaluation processing patch control points transformed control points transformed patch transformed patch, bivariate domain transformed patch tessellation texture fetches patch topology, evaluated patch vertex patch data OpenGL 4.1 Raster operations Framebuffer Command parser
OpenGL 3.3 Laundry List (1) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
OpenGL 3.3 Laundry List (2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
OpenGL 3.3 Laundry List (3) ,[object Object],[object Object],[object Object],[object Object],R G B A 1 0 X Y Z W texture fetch result delivered to shader  fetched texture’s RGBA  ,[object Object],[object Object],[object Object],[object Object]
OpenGL 3.3 Laundry List (4) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
OpenGL 3.3 Support & Older GPUs ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
OpenGL 4.0 Features Categories ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Fairly broad categories
OpenGL 4.0 Texturing Features ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Cube Map Texture Arrays ,[object Object],[object Object],[object Object],[object Object],[object Object],slice  i  = 0  slice  i  = 1  slice  i  = 2
OpenGL 4.0 Framebuffer Features ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
OpenGL 4.0 Transform Feedback Features ,[object Object],[object Object],[object Object],[object Object],[object Object],primitive processing rasterization pixel processing framebuffer transform feedback buffer data framebuffer buffer data
OpenGL Shading Language Update ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
OpenGL 4.0 Programmable Features: Indexing ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
OpenGL 4.0 Programmable Features: Numeric Data Type Control ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],OpenGL 4.0 Programmable Features: Double-Precision Numeric
Double Precision in OpenGL Shaders Double-precision magnified 970,000x Single-precision magnified 970,000x Mandelbrot set interactively visualized
Mix of Double- and Single-Precision fp32 fp32 fp32 fp32 fp32 fp32 fp32 fp32 fp32 fp32 fp32 fp32
Mandelbrot Shaders Compared #version 400 compatibility in vec2 position; out vec4 color; uniform float max_iterations; uniform sampler1D lut; uniform  mat2x3  matrix; float mandel( vec2  c) { vec2  z =  vec2 (0.0); float iterations = 0.0; while(iterations < max_iterations)  { vec2  z2 = z*z; if (z2.x + z2.y > 4.0) break; z =  vec2 (z2.x - z2.y, 2.0 * z.x * z.y) + c; iterations++; } return iterations; } void main() { vec2  pos =  vec2 (dot(matrix[0], vec3 (position,1)), dot(matrix[1], vec3 (position,1))); float iterations = mandel(pos); // False-color pixel based on iteration // count in look-up table float s = iterations / max_iterations; color = texture(lut, s); } #version 400 compatibility in vec2 position; out vec4 color; uniform float max_iterations; uniform sampler1D lut; uniform  dmat2x3  matrix; float mandel( dvec2  c) { dvec2  z =  dvec2 (0.0); float iterations = 0.0; while(iterations < max_iterations)  { dvec2  z2 = z*z; if (z2.x + z2.y > 4.0) break; z =  dvec2 (z2.x - z2.y, 2.0 * z.x * z.y) + c; iterations++; } return iterations; } void main() { dvec2  pos =  dvec2 (dot(matrix[0], dvec3 (position,1)), dot(matrix[1], dvec3 (position,1))); float iterations = mandel(pos); // False-color pixel based on iteration // count in look-up table float s = iterations / max_iterations; color = texture(lut, s); } Double-precision dmat2x3 dvec2 dvec3 ,[object Object],[object Object],[object Object],[object Object]
OpenGL 4.0 Programmable Features: Subroutines ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
OpenGL 4.0 Programmable Features: Fragment Shaders ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],pixel center  relative offset  dx  dy  sample index  0  1  2  3  centroid centroid position of 3 covered samples pixel footprints interpolation modes
OpenGL 4.0 Programmable Features: Tessellation Shaders ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Programmable Tessellation Data Flow vertex shader clipping, setup, & rasterization fragment shader assembled primitive fragments index to vertex attribute puller indices primitive topology & in-band vertex attributes vertex attributes vertex shader geometry shader clipping, setup, & rasterization fragment shader OpenGL 4.0 added tessellation shaders assembled primitive fragments index to vertex attribute puller indices primitive topology & in-band vertex attributes vertex attributes tessellation control (hull) shader tessellation evaluation (domain) shader tessellation generator level-of-detail parameters patch control points & parameters fine primitive topology  (u, v) coordinates primitive stream control points control point (vertex) shader vertex attributes rectangular & triangluar patch OpenGL 3.2 programmable fixed-function Legend geometry shader primitive stream
“DirectX 11 Done Right” ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Tessellated Triangle and Quad Notice fractional tessellation scheme in wire-frame pattern
Iso-line Tessellation ,[object Object],[object Object]
Bezier Triangle Patch Bezier triangle’s tessellation Bezier triangle’s control point hull
Bezier Triangle Control Points b 300 b 210 b 120 b 030 b 021 b 012 b 003 b 102 b 201 b 111 P(u,v) = u 3   b 300 + 3 u 2 v b 210 + 3 uv 2  b 120 + v 3  b 030 + 3 u 2 w b 201 + 6 uvw b 111 + 3 v 2 w b 021 + 3 uw 2  b 102 + 3 uw 2  b 012 + w 3  b 003   where  w=1-u-v
“Precise” Evaluation Math for Bezier Triangle Example ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Notice evaluation needs homogenous coordinates, hence vec4(x,1)
Bi-cubic Patch Mesh b 00 b 10 b 20 b 30 b 01 b 11 b 21 b 31 b 02 b 12 b 22 b 32 b 03 b 13 b 23 b 33
Bi-cubic Quadrilateral Patch Bi-cubic patch’s tessellation Bi-cubic patch’s   control point hull
Surfaces are Determined by Their Control Points Moving control points displaces the evaluated surfaces
Utah Teapot: Bi-cubic Patch Mesh
Ed Catmull’s Gumbo
Bi-cubic Patches Used in Production Rendering ,[object Object]
Amplification of Standard Triangle Meshes Original faceted mesh   Tessellation results in triangle amplification with curvature Results of Phong shading of curved
Art Pipeline for Tessellation … Generate LODs Displaced Surface GPU Control Cage Smooth Surface Polygon Mesh
 
 
Displacement Mapping ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Tessellation Shader Example: Starting Simple ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Simple Example Rendered Original single triangle   Adaptive tessellation automatically tessellates distant, small triangle less and close, large triangle more Visualization of barycentric weights used by tessellation evaluation shader
GLSL Control Point (Vertex) Shader ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
GLSL Tessellation  Control  Shader ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
GLSL Tessellation  Evaluation  Shader ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
More Complicated Example: Adaptive PN Triangles ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Adaptive PN Triangles Tessellation Rendered Visualization of barycentric weights used by tessellation evaluation shader Original monkey head faceted mesh Tessellated & Phong shaded  Wire frame of adaptive tessellation
Adaptive PN Triangle Tessellation  Control  Shader ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
PN Triangle Control Shader ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],1.  2.  3.  4.  5.
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Adaptive PN Triangle Tessellation  Evaluation  Shader (1 of 3)
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Adaptive PN Triangle Tessellation  Evaluation  Shader (2 of 3)
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Adaptive PN Triangle Tessellation  Evaluation  Shader (3 of 3)
PN Triangle Evaluation Shader ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Careful About Cracks at Patch Seams ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],artificially injected cracks
OpenGL 4.1
What is in OpenGL 4.1? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Separate Shader Objects ,[object Object],[object Object],[object Object],[object Object],bump mapping  fragment shader red velvet  fragment shader wobbly torus vertex shader smooth torus vertex shader ,[object Object],ARB_separate_shader_objects
Viewport Array ,[object Object],[object Object],[object Object],[object Object],1 primitive in 6 primitives out each projected to different cube face & directed to different viewport geometry shader ARB_viewport_array
ES Compatibility ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],ARB_ES2_compatibility
Query for Binary Shader Blobs ,[object Object],[object Object],[object Object],[object Object],[object Object],ARB_get_program_binary
64-bit Vertex Attributes ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],ARB_vertex_attrib_64_bit
Shader Precision ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],ARB_shader_precision
New ARB only Extensions ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Technology behind OpenGL 4.0 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Technology behind OpenGL 4.1 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Accelerating OpenGL Innovation ,[object Object],[object Object],[object Object],[object Object],[object Object],DirectX 10.1 2004 2006 2008 OpenGL 2.0 OpenGL 2.1 OpenGL 3.0 OpenGL 3.1 2009 DirectX 9.0c DirectX 10.0 DirectX 11 2005 2007 OpenGL 3.2 OpenGL 3.3 + OpenGL 4.0 2011 NOW! OpenGL 4.1
Additional OpenGL Topics ,[object Object],[object Object],[object Object]
NVIDIA’s Position on OpenGL Deprecation: Core vs. Compatibility Profiles ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
What got ( er, didn’t get ) deprecated? Feature   Hardware accelerated   YES Line stipple YES Quadrilaterals (GL_QUAD*) and polygons YES Regular (non-sprite) points YES Two-sided lighting YES, key cases optimized to be faster than shaders Fixed-function vertex processing YES Edge flags YES Immediate mode YES Line widths > 1
What got ( er, didn’t get ) deprecated? Feature   Hardware accelerated   YES GL_DEPTH_TEXTURE_MODE YES ALPHA, LUMINANCE, LUMINANCE_ALPHA, INTENSITY texture formats Driver accelerated for speed glBitmap YES glPixelZoom YES glDrawPixels CPU vector instructions + GPU Pixel transfer modes YES Polygon stipple YES Separate polygon draw modes: glPolygonMode
What got ( er, didn’t get ) deprecated? Feature   Hardware accelerated   YES Auxiliary color buffers YES glCopyPixels YES, fp16 Accumulation buffer YES Alpha test YES Fixed-function fragment processing YES Automatic mipmap generation YES Texture borders YES Texture GL_CLAMP wrap mode
What got ( er, didn’t get ) deprecated? Feature   Hardware accelerated   Best advice :  Overwhelming majority of deprecated features are fully hardware-accelerated by NVIDIA GPUs and their drivers so take advantage of them—they aren’t going away Think of these features as what you lack in Direct3D YES Color material No, but could be by Fermi Evaluators No, but selection could be Selection and feedback modes Highly optimized by NVIDIA, fastest way to send geometry Display lists Ignored, always fastest + nicest Hints No Attribute stacks
Cg 3.0 Update (1) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Cg 3.0 Update (2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Cg Off-line Compiler Compiles GLSL to Assembly ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
More NVIDIA OpenGL Features to Explore (1) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],More NVIDIA OpenGL Features to Explore (2)
More NVIDIA OpenGL Features to Explore (3) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
OpenGL 3D Graphics API ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Only Cross Platform 3D API
OpenGL Leverage
OpenGL 4 – DirectX 11 Superset ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Buffer  and Event Interop
Questions?
Other OpenGL-related Sessions at GTC ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

FrameGraph: Extensible Rendering Architecture in Frostbite
FrameGraph: Extensible Rendering Architecture in FrostbiteFrameGraph: Extensible Rendering Architecture in Frostbite
FrameGraph: Extensible Rendering Architecture in Frostbite
 
Physically Based and Unified Volumetric Rendering in Frostbite
Physically Based and Unified Volumetric Rendering in FrostbitePhysically Based and Unified Volumetric Rendering in Frostbite
Physically Based and Unified Volumetric Rendering in Frostbite
 
NVIDIA OpenGL 4.6 in 2017
NVIDIA OpenGL 4.6 in 2017NVIDIA OpenGL 4.6 in 2017
NVIDIA OpenGL 4.6 in 2017
 
Star Ocean 4 - Flexible Shader Managment and Post-processing
Star Ocean 4 - Flexible Shader Managment and Post-processingStar Ocean 4 - Flexible Shader Managment and Post-processing
Star Ocean 4 - Flexible Shader Managment and Post-processing
 
Optimizing the Graphics Pipeline with Compute, GDC 2016
Optimizing the Graphics Pipeline with Compute, GDC 2016Optimizing the Graphics Pipeline with Compute, GDC 2016
Optimizing the Graphics Pipeline with Compute, GDC 2016
 
OpenGL 4.4 - Scene Rendering Techniques
OpenGL 4.4 - Scene Rendering TechniquesOpenGL 4.4 - Scene Rendering Techniques
OpenGL 4.4 - Scene Rendering Techniques
 
Deferred Rendering in Killzone 2
Deferred Rendering in Killzone 2Deferred Rendering in Killzone 2
Deferred Rendering in Killzone 2
 
Introduction to Bidirectional Path Tracing (BDPT) & Implementation using Open...
Introduction to Bidirectional Path Tracing (BDPT) & Implementation using Open...Introduction to Bidirectional Path Tracing (BDPT) & Implementation using Open...
Introduction to Bidirectional Path Tracing (BDPT) & Implementation using Open...
 
Physically Based Sky, Atmosphere and Cloud Rendering in Frostbite
Physically Based Sky, Atmosphere and Cloud Rendering in FrostbitePhysically Based Sky, Atmosphere and Cloud Rendering in Frostbite
Physically Based Sky, Atmosphere and Cloud Rendering in Frostbite
 
Stochastic Screen-Space Reflections
Stochastic Screen-Space ReflectionsStochastic Screen-Space Reflections
Stochastic Screen-Space Reflections
 
Screen Space Reflections in The Surge
Screen Space Reflections in The SurgeScreen Space Reflections in The Surge
Screen Space Reflections in The Surge
 
Decima Engine: Visibility in Horizon Zero Dawn
Decima Engine: Visibility in Horizon Zero DawnDecima Engine: Visibility in Horizon Zero Dawn
Decima Engine: Visibility in Horizon Zero Dawn
 
Lighting the City of Glass
Lighting the City of GlassLighting the City of Glass
Lighting the City of Glass
 
Advanced Scenegraph Rendering Pipeline
Advanced Scenegraph Rendering PipelineAdvanced Scenegraph Rendering Pipeline
Advanced Scenegraph Rendering Pipeline
 
Triangle Visibility buffer
Triangle Visibility bufferTriangle Visibility buffer
Triangle Visibility buffer
 
DirectX 11 Rendering in Battlefield 3
DirectX 11 Rendering in Battlefield 3DirectX 11 Rendering in Battlefield 3
DirectX 11 Rendering in Battlefield 3
 
Five Rendering Ideas from Battlefield 3 & Need For Speed: The Run
Five Rendering Ideas from Battlefield 3 & Need For Speed: The RunFive Rendering Ideas from Battlefield 3 & Need For Speed: The Run
Five Rendering Ideas from Battlefield 3 & Need For Speed: The Run
 
Frostbite on Mobile
Frostbite on MobileFrostbite on Mobile
Frostbite on Mobile
 
Graphics Gems from CryENGINE 3 (Siggraph 2013)
Graphics Gems from CryENGINE 3 (Siggraph 2013)Graphics Gems from CryENGINE 3 (Siggraph 2013)
Graphics Gems from CryENGINE 3 (Siggraph 2013)
 
Umg ,이벤트 바인딩, Invaidation Box
Umg ,이벤트 바인딩, Invaidation BoxUmg ,이벤트 바인딩, Invaidation Box
Umg ,이벤트 바인딩, Invaidation Box
 

Destacado

Gallium3D - Mesa's New Driver Model
Gallium3D - Mesa's New Driver ModelGallium3D - Mesa's New Driver Model
Gallium3D - Mesa's New Driver Model
Chia-I Wu
 
Curved PN Triangles
Curved PN TrianglesCurved PN Triangles
Curved PN Triangles
Alex Vlachos
 

Destacado (20)

GTC 2012: NVIDIA OpenGL in 2012
GTC 2012: NVIDIA OpenGL in 2012GTC 2012: NVIDIA OpenGL in 2012
GTC 2012: NVIDIA OpenGL in 2012
 
OpenGL Introduction
OpenGL IntroductionOpenGL Introduction
OpenGL Introduction
 
Gallium3D - Mesa's New Driver Model
Gallium3D - Mesa's New Driver ModelGallium3D - Mesa's New Driver Model
Gallium3D - Mesa's New Driver Model
 
SIGGRAPH 2012: NVIDIA OpenGL for 2012
SIGGRAPH 2012: NVIDIA OpenGL for 2012SIGGRAPH 2012: NVIDIA OpenGL for 2012
SIGGRAPH 2012: NVIDIA OpenGL for 2012
 
Migrating from OpenGL to Vulkan
Migrating from OpenGL to VulkanMigrating from OpenGL to Vulkan
Migrating from OpenGL to Vulkan
 
OpenGL 4 for 2010
OpenGL 4 for 2010OpenGL 4 for 2010
OpenGL 4 for 2010
 
OpenGL L07-Skybox and Terrian
OpenGL L07-Skybox and TerrianOpenGL L07-Skybox and Terrian
OpenGL L07-Skybox and Terrian
 
OpenGL L01-Primitives
OpenGL L01-PrimitivesOpenGL L01-Primitives
OpenGL L01-Primitives
 
Introduction of openGL
Introduction  of openGLIntroduction  of openGL
Introduction of openGL
 
Opengl presentation
Opengl presentationOpengl presentation
Opengl presentation
 
OpenGL Basics
OpenGL BasicsOpenGL Basics
OpenGL Basics
 
Curved PN Triangles
Curved PN TrianglesCurved PN Triangles
Curved PN Triangles
 
GTC 2009 OpenGL Gold
GTC 2009 OpenGL GoldGTC 2009 OpenGL Gold
GTC 2009 OpenGL Gold
 
Efficient multimedia support in QtWebKit on Raspberry Pi (GStreamer Conferenc...
Efficient multimedia support in QtWebKit on Raspberry Pi (GStreamer Conferenc...Efficient multimedia support in QtWebKit on Raspberry Pi (GStreamer Conferenc...
Efficient multimedia support in QtWebKit on Raspberry Pi (GStreamer Conferenc...
 
gtkgst video in your widgets!
gtkgst video in your widgets!gtkgst video in your widgets!
gtkgst video in your widgets!
 
Cgp lecture1 introduction
Cgp lecture1 introductionCgp lecture1 introduction
Cgp lecture1 introduction
 
OpenGL Shading Language
OpenGL Shading LanguageOpenGL Shading Language
OpenGL Shading Language
 
CS 354 Surfaces, Programmable Tessellation, and NPR Graphics
CS 354 Surfaces, Programmable Tessellation, and NPR GraphicsCS 354 Surfaces, Programmable Tessellation, and NPR Graphics
CS 354 Surfaces, Programmable Tessellation, and NPR Graphics
 
Open gles
Open glesOpen gles
Open gles
 
WebGL: GPU acceleration for the open web
WebGL: GPU acceleration for the open webWebGL: GPU acceleration for the open web
WebGL: GPU acceleration for the open web
 

Similar a NVIDIA's OpenGL Functionality

Commandlistsiggraphasia2014 141204005310-conversion-gate02
Commandlistsiggraphasia2014 141204005310-conversion-gate02Commandlistsiggraphasia2014 141204005310-conversion-gate02
Commandlistsiggraphasia2014 141204005310-conversion-gate02
RubnCuesta2
 
Hardware Shaders
Hardware ShadersHardware Shaders
Hardware Shaders
gueste52f1b
 
Introduction To Geometry Shaders
Introduction To Geometry ShadersIntroduction To Geometry Shaders
Introduction To Geometry Shaders
pjcozzi
 
Gdc 14 bringing unreal engine 4 to open_gl
Gdc 14 bringing unreal engine 4 to open_glGdc 14 bringing unreal engine 4 to open_gl
Gdc 14 bringing unreal engine 4 to open_gl
changehee lee
 

Similar a NVIDIA's OpenGL Functionality (20)

NVIDIA Graphics, Cg, and Transparency
NVIDIA Graphics, Cg, and TransparencyNVIDIA Graphics, Cg, and Transparency
NVIDIA Graphics, Cg, and Transparency
 
Advanced Graphics Workshop - GFX2011
Advanced Graphics Workshop - GFX2011Advanced Graphics Workshop - GFX2011
Advanced Graphics Workshop - GFX2011
 
GFX Part 1 - Introduction to GPU HW and OpenGL ES specifications
GFX Part 1 - Introduction to GPU HW and OpenGL ES specificationsGFX Part 1 - Introduction to GPU HW and OpenGL ES specifications
GFX Part 1 - Introduction to GPU HW and OpenGL ES specifications
 
GTC 2009 OpenGL Barthold
GTC 2009 OpenGL BartholdGTC 2009 OpenGL Barthold
GTC 2009 OpenGL Barthold
 
Opengl basics
Opengl basicsOpengl basics
Opengl basics
 
Open GL ES Android
Open GL ES AndroidOpen GL ES Android
Open GL ES Android
 
OpenGL ES based UI Development on TI Platforms
OpenGL ES based UI Development on TI PlatformsOpenGL ES based UI Development on TI Platforms
OpenGL ES based UI Development on TI Platforms
 
Your Game Needs Direct3D 11, So Get Started Now!
Your Game Needs Direct3D 11, So Get Started Now!Your Game Needs Direct3D 11, So Get Started Now!
Your Game Needs Direct3D 11, So Get Started Now!
 
SIGGRAPH Asia 2012 Exhibitor Talk: OpenGL 4.3 and Beyond
SIGGRAPH Asia 2012 Exhibitor Talk: OpenGL 4.3 and BeyondSIGGRAPH Asia 2012 Exhibitor Talk: OpenGL 4.3 and Beyond
SIGGRAPH Asia 2012 Exhibitor Talk: OpenGL 4.3 and Beyond
 
Commandlistsiggraphasia2014 141204005310-conversion-gate02
Commandlistsiggraphasia2014 141204005310-conversion-gate02Commandlistsiggraphasia2014 141204005310-conversion-gate02
Commandlistsiggraphasia2014 141204005310-conversion-gate02
 
CS 354 Programmable Shading
CS 354 Programmable ShadingCS 354 Programmable Shading
CS 354 Programmable Shading
 
Android native gl
Android native glAndroid native gl
Android native gl
 
Hardware Shaders
Hardware ShadersHardware Shaders
Hardware Shaders
 
NvFX GTC 2013
NvFX GTC 2013NvFX GTC 2013
NvFX GTC 2013
 
The next generation of GPU APIs for Game Engines
The next generation of GPU APIs for Game EnginesThe next generation of GPU APIs for Game Engines
The next generation of GPU APIs for Game Engines
 
How to Use OpenGL/ES on Native Activity
How to Use OpenGL/ES on Native ActivityHow to Use OpenGL/ES on Native Activity
How to Use OpenGL/ES on Native Activity
 
Introduction To Geometry Shaders
Introduction To Geometry ShadersIntroduction To Geometry Shaders
Introduction To Geometry Shaders
 
Gdc 14 bringing unreal engine 4 to open_gl
Gdc 14 bringing unreal engine 4 to open_glGdc 14 bringing unreal engine 4 to open_gl
Gdc 14 bringing unreal engine 4 to open_gl
 
XLcloud 3-d remote rendering
XLcloud 3-d remote renderingXLcloud 3-d remote rendering
XLcloud 3-d remote rendering
 
CS 354 Viewing Stuff
CS 354 Viewing StuffCS 354 Viewing Stuff
CS 354 Viewing Stuff
 

Más de Mark Kilgard

Más de Mark Kilgard (20)

D11: a high-performance, protocol-optional, transport-optional, window system...
D11: a high-performance, protocol-optional, transport-optional, window system...D11: a high-performance, protocol-optional, transport-optional, window system...
D11: a high-performance, protocol-optional, transport-optional, window system...
 
Computers, Graphics, Engineering, Math, and Video Games for High School Students
Computers, Graphics, Engineering, Math, and Video Games for High School StudentsComputers, Graphics, Engineering, Math, and Video Games for High School Students
Computers, Graphics, Engineering, Math, and Video Games for High School Students
 
Virtual Reality Features of NVIDIA GPUs
Virtual Reality Features of NVIDIA GPUsVirtual Reality Features of NVIDIA GPUs
Virtual Reality Features of NVIDIA GPUs
 
EXT_window_rectangles
EXT_window_rectanglesEXT_window_rectangles
EXT_window_rectangles
 
Slides: Accelerating Vector Graphics Rendering using the Graphics Hardware Pi...
Slides: Accelerating Vector Graphics Rendering using the Graphics Hardware Pi...Slides: Accelerating Vector Graphics Rendering using the Graphics Hardware Pi...
Slides: Accelerating Vector Graphics Rendering using the Graphics Hardware Pi...
 
Accelerating Vector Graphics Rendering using the Graphics Hardware Pipeline
Accelerating Vector Graphics Rendering using the Graphics Hardware PipelineAccelerating Vector Graphics Rendering using the Graphics Hardware Pipeline
Accelerating Vector Graphics Rendering using the Graphics Hardware Pipeline
 
NV_path rendering Functional Improvements
NV_path rendering Functional ImprovementsNV_path rendering Functional Improvements
NV_path rendering Functional Improvements
 
SIGGRAPH Asia 2012: GPU-accelerated Path Rendering
SIGGRAPH Asia 2012: GPU-accelerated Path RenderingSIGGRAPH Asia 2012: GPU-accelerated Path Rendering
SIGGRAPH Asia 2012: GPU-accelerated Path Rendering
 
Programming with NV_path_rendering: An Annex to the SIGGRAPH Asia 2012 paper...
Programming with NV_path_rendering:  An Annex to the SIGGRAPH Asia 2012 paper...Programming with NV_path_rendering:  An Annex to the SIGGRAPH Asia 2012 paper...
Programming with NV_path_rendering: An Annex to the SIGGRAPH Asia 2012 paper...
 
GPU accelerated path rendering fastforward
GPU accelerated path rendering fastforwardGPU accelerated path rendering fastforward
GPU accelerated path rendering fastforward
 
GPU-accelerated Path Rendering
GPU-accelerated Path RenderingGPU-accelerated Path Rendering
GPU-accelerated Path Rendering
 
SIGGRAPH 2012: GPU-Accelerated 2D and Web Rendering
SIGGRAPH 2012: GPU-Accelerated 2D and Web RenderingSIGGRAPH 2012: GPU-Accelerated 2D and Web Rendering
SIGGRAPH 2012: GPU-Accelerated 2D and Web Rendering
 
GTC 2012: GPU-Accelerated Path Rendering
GTC 2012: GPU-Accelerated Path RenderingGTC 2012: GPU-Accelerated Path Rendering
GTC 2012: GPU-Accelerated Path Rendering
 
CS 354 Final Exam Review
CS 354 Final Exam ReviewCS 354 Final Exam Review
CS 354 Final Exam Review
 
CS 354 Performance Analysis
CS 354 Performance AnalysisCS 354 Performance Analysis
CS 354 Performance Analysis
 
CS 354 Acceleration Structures
CS 354 Acceleration StructuresCS 354 Acceleration Structures
CS 354 Acceleration Structures
 
CS 354 Global Illumination
CS 354 Global IlluminationCS 354 Global Illumination
CS 354 Global Illumination
 
CS 354 Ray Casting & Tracing
CS 354 Ray Casting & TracingCS 354 Ray Casting & Tracing
CS 354 Ray Casting & Tracing
 
CS 354 Typography
CS 354 TypographyCS 354 Typography
CS 354 Typography
 
CS 354 Vector Graphics & Path Rendering
CS 354 Vector Graphics & Path RenderingCS 354 Vector Graphics & Path Rendering
CS 354 Vector Graphics & Path Rendering
 

Último

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Último (20)

Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 

NVIDIA's OpenGL Functionality

  • 1.
  • 2.
  • 3.
  • 4. OpenGL Leverage SceniX CompleX OptiX Parallel Nsight Cg
  • 5. Example of Hybrid Rendering with OptiX OptiX (Ray tracing) OpenGL (Rasterization)
  • 6. Parallel Nsight Provides OpenGL Profiling Configure Application Trace Settings
  • 7. Parallel Nsight Provides OpenGL Profiling Magnified trace options shows specific OpenGL (and Cg) tracing options
  • 8. Parallel Nsight Provides OpenGL Profiling
  • 9. Parallel Nsight Provides OpenGL Profiling Trace of mix of OpenGL and CUDA shows glFinish & OpenGL draw calls
  • 10. OpenGL In Every NVIDIA Business
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24. NVIDIA OpenGL 4 DirectX 11 superset All of Fermi exposed!
  • 25. OpenGL Version Progression OpenGL 2.0 2.1 OpenGL 3.0 3.1 3.2 3.3 OpenGL 4.0 4.1 OpenGL 1.0 1.1 1.2.1 1.3 1.4 1.5 Silicon Graphics heritage DirectX 9 era GPUs DirectX 10 era GPUs DirectX 11 era GPUs (2008-2010) (1992-2003) (2004-2007) (2010-)
  • 26.
  • 27.
  • 28.
  • 29.
  • 30. OpenGL 3.2 Conceptual Processing Flow (pre-2010) Vertex processing Pixel processing Texture mapping Geometric primitive assembly & processing Image primitive processing Transform feedback Pixel unpacking Pixel packing Vertex assembly pixels in framebuffer object textures texture buffer objects texture image specification image rectangles, bitmaps primitive topology, transformed vertex data vertex texture fetches pixel pack buffer objects pixel unpack buffer objects vertex buffer objects transform feedback buffer objects buffer data, unmap buffer geometry texture fetches primitive batch type, vertex indices, vertex attributes primitive batch type, vertex data fragment texture fetches pixel image or texture image specification map buffer, get buffer data transformed vertex attributes image and bitmap fragments point, line, and polygon fragments pixels to pack unpacked pixels pixels fragments filtered texels buffer data vertices Legend programmable operations fixed-function operations copy pixels, copy texture image Buffer store uniform/ parameters buffer objects Fragment processing stenciling, depth testing, blending, accumulation OpenGL 3.2 Raster operations Framebuffer Command parser
  • 31. Vertex processing Pixel processing Texture mapping Geometric primitive assembly & processing Image primitive processing Transform feedback Pixel unpacking Pixel packing Vertex assembly pixels in framebuffer object textures texture buffer objects texture image specification image rectangles, bitmaps primitive topology, transformed vertex data vertex texture fetches pixel pack buffer objects pixel unpack buffer objects vertex buffer objects transform feedback buffer objects buffer data, unmap buffer geometry texture fetches primitive batch type, vertex indices, vertex attributes primitive batch type, vertex data fragment texture fetches pixel image or texture image specification map buffer, get buffer data transformed vertex attributes image and bitmap fragments point, line, and polygon fragments pixels to pack unpacked pixels pixels fragments filtered texels buffer data vertices Legend programmable operations fixed-function operations copy pixels, copy texture image Buffer store Fragment processing stenciling, depth testing, blending, accumulation Control point processing Patch assembly & processing Patch tessellation generation Patch evaluation processing patch control points transformed control points transformed patch transformed patch, bivariate domain transformed patch tessellation texture fetches patch topology, evaluated patch vertex patch data OpenGL 4.1 Raster operations Framebuffer Command parser
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46. Double Precision in OpenGL Shaders Double-precision magnified 970,000x Single-precision magnified 970,000x Mandelbrot set interactively visualized
  • 47. Mix of Double- and Single-Precision fp32 fp32 fp32 fp32 fp32 fp32 fp32 fp32 fp32 fp32 fp32 fp32
  • 48.
  • 49.
  • 50.
  • 51.
  • 52. Programmable Tessellation Data Flow vertex shader clipping, setup, & rasterization fragment shader assembled primitive fragments index to vertex attribute puller indices primitive topology & in-band vertex attributes vertex attributes vertex shader geometry shader clipping, setup, & rasterization fragment shader OpenGL 4.0 added tessellation shaders assembled primitive fragments index to vertex attribute puller indices primitive topology & in-band vertex attributes vertex attributes tessellation control (hull) shader tessellation evaluation (domain) shader tessellation generator level-of-detail parameters patch control points & parameters fine primitive topology (u, v) coordinates primitive stream control points control point (vertex) shader vertex attributes rectangular & triangluar patch OpenGL 3.2 programmable fixed-function Legend geometry shader primitive stream
  • 53.
  • 54. Tessellated Triangle and Quad Notice fractional tessellation scheme in wire-frame pattern
  • 55.
  • 56. Bezier Triangle Patch Bezier triangle’s tessellation Bezier triangle’s control point hull
  • 57. Bezier Triangle Control Points b 300 b 210 b 120 b 030 b 021 b 012 b 003 b 102 b 201 b 111 P(u,v) = u 3 b 300 + 3 u 2 v b 210 + 3 uv 2 b 120 + v 3 b 030 + 3 u 2 w b 201 + 6 uvw b 111 + 3 v 2 w b 021 + 3 uw 2 b 102 + 3 uw 2 b 012 + w 3 b 003 where w=1-u-v
  • 58.
  • 59. Bi-cubic Patch Mesh b 00 b 10 b 20 b 30 b 01 b 11 b 21 b 31 b 02 b 12 b 22 b 32 b 03 b 13 b 23 b 33
  • 60. Bi-cubic Quadrilateral Patch Bi-cubic patch’s tessellation Bi-cubic patch’s control point hull
  • 61. Surfaces are Determined by Their Control Points Moving control points displaces the evaluated surfaces
  • 62. Utah Teapot: Bi-cubic Patch Mesh
  • 64.
  • 65. Amplification of Standard Triangle Meshes Original faceted mesh Tessellation results in triangle amplification with curvature Results of Phong shading of curved
  • 66. Art Pipeline for Tessellation … Generate LODs Displaced Surface GPU Control Cage Smooth Surface Polygon Mesh
  • 67.  
  • 68.  
  • 69.
  • 70.
  • 71. Simple Example Rendered Original single triangle Adaptive tessellation automatically tessellates distant, small triangle less and close, large triangle more Visualization of barycentric weights used by tessellation evaluation shader
  • 72.
  • 73.
  • 74.
  • 75.
  • 76. Adaptive PN Triangles Tessellation Rendered Visualization of barycentric weights used by tessellation evaluation shader Original monkey head faceted mesh Tessellated & Phong shaded Wire frame of adaptive tessellation
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82.
  • 83.
  • 85.
  • 86.
  • 87.
  • 88.
  • 89.
  • 90.
  • 91.
  • 92.
  • 93.
  • 94.
  • 95.
  • 96.
  • 97.
  • 98. What got ( er, didn’t get ) deprecated? Feature Hardware accelerated YES Line stipple YES Quadrilaterals (GL_QUAD*) and polygons YES Regular (non-sprite) points YES Two-sided lighting YES, key cases optimized to be faster than shaders Fixed-function vertex processing YES Edge flags YES Immediate mode YES Line widths > 1
  • 99. What got ( er, didn’t get ) deprecated? Feature Hardware accelerated YES GL_DEPTH_TEXTURE_MODE YES ALPHA, LUMINANCE, LUMINANCE_ALPHA, INTENSITY texture formats Driver accelerated for speed glBitmap YES glPixelZoom YES glDrawPixels CPU vector instructions + GPU Pixel transfer modes YES Polygon stipple YES Separate polygon draw modes: glPolygonMode
  • 100. What got ( er, didn’t get ) deprecated? Feature Hardware accelerated YES Auxiliary color buffers YES glCopyPixels YES, fp16 Accumulation buffer YES Alpha test YES Fixed-function fragment processing YES Automatic mipmap generation YES Texture borders YES Texture GL_CLAMP wrap mode
  • 101. What got ( er, didn’t get ) deprecated? Feature Hardware accelerated Best advice : Overwhelming majority of deprecated features are fully hardware-accelerated by NVIDIA GPUs and their drivers so take advantage of them—they aren’t going away Think of these features as what you lack in Direct3D YES Color material No, but could be by Fermi Evaluators No, but selection could be Selection and feedback modes Highly optimized by NVIDIA, fastest way to send geometry Display lists Ignored, always fastest + nicest Hints No Attribute stacks
  • 102.
  • 103.
  • 104.
  • 105.
  • 106.
  • 107.
  • 108.
  • 111.
  • 113.