SlideShare ist ein Scribd-Unternehmen logo
1 von 79
Shadow Mapping with Today’s OpenGL Hardware   CEDEC 2001 Tokyo, Japan
Mark J. Kilgard Graphics Software Engineer NVIDIA Corporation
Motivation for Better Shadows ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Common Real-time Shadow Techniques Shadow volumes Light maps Projected planar shadows Hybrid approaches
Problems with Common Shadow Techniques ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Introducing Another Technique: Shadow Mapping ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Shadow Mapping References ,[object Object],[object Object],[object Object],[object Object]
The Shadow Mapping Concept (1) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
The Shadow Mapping Concept (2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
The Shadow Mapping Concept (3) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Shadow Mapping with a Picture in 2D (1) ,[object Object],light source  eye position  depth map Z  = A fragment’s light Z = B depth map image plane eye view image plane, a.k.a. the frame buffer
Shadow Mapping with a Picture in 2D (2) light source  eye position  depth map Z  = A fragment’s light Z = B depth map image plane eye view image plane, a.k.a. the frame buffer The A    B unshadowed fragment case
Note image precision mismatch! The depth map could be at a different resolution from the framebuffer This mismatch can lead to artifacts Shadow Mapping with a Picture in 2D (3)
Visualizing the Shadow Mapping Technique (1) ,[object Object],the point light source
Visualizing the Shadow Mapping Technique (2) ,[object Object],with shadows without shadows
Visualizing the Shadow Mapping Technique (3) ,[object Object],FYI: from the eye’s point-of-view again
Visualizing the Shadow Mapping Technique (4) ,[object Object],FYI: from the light’s point-of-view again
Visualizing the Shadow Mapping Technique (5) ,[object Object],FYI: depth map for light’s point-of-view again
Visualizing the Shadow Mapping Technique (6) ,[object Object]
Visualizing the Shadow Mapping Technique (6) ,[object Object],Green is where the light planar distance and the light depth map are  approximately equal Non-green is where shadows should be
Visualizing the Shadow Mapping Technique (7) ,[object Object],Notice how specular highlights never appear in shadows Notice how curved surfaces cast shadows on each other
Construct Light View Depth Map ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Justification for glPolygonOffset When Constructing Shadow Maps ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Sampling a Polygon’s Depth at Pixel Centers (1) ,[object Object],X Z Pixel centers Polygon
Sampling a Polygon’s Depth at Pixel Centers (2) X Z ,[object Object],X Z
Sampling a Polygon’s Depth at Pixel Centers (3) ,[object Object],X Z  z/  x
Why You Need glPolygonOffset’s Slope ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Depth Map Bias Issues ,[object Object],Too little bias, everything begins to shadow Too much bias, shadow starts too far back Just right
Selecting the Depth Map Bias ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Render Scene and Access the Depth Texture ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
What is Projective Texturing? ,[object Object],[object Object],Source: Wolfgang Heidrich [99]
About Projective Texturing (1) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
About Projective Texturing (2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
About Projective Texturing (3) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
About Projective Texturing (4) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Back to the Shadow Mapping Discussion . . . ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
OpenGL’s Standard Vertex Coordinate Transform ,[object Object],object coordinates (x, y, z, w) eye coordinates (x, y, z, w) modelview matrix projection matrix divide by w viewport & depth range normalized  device coordinates (x, y, z) clip coordinates (x, y, z, w) window coordinates (x, y, z)
Eye Linear Texture Coordinate Generation ,[object Object],object coordinates eye coordinates modelview matrix projection matrix divide by w viewport & depth range normalized  device coordinates clip coordinates window coordinates eye-linear plane equations (s, t,  r , q) (x, y, z)
Setting Up Eye Linear Texgen ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Eye Linear Texgen Transform ,[object Object],[object Object],s t r q Splane[0]  Splane[1]  Splane[2]  Splane[3] Tplane[0]  Tplane[1]  Tplane[2]  Tplane[3] Rplane[0]  Rplane[1]  Rplane[2]  Rplane[3] Qplane[0]  Qplane[1]  Qplane[2]  Qplane[3] = x e y e z e w e
Shadow Map Eye Linear Texgen Transform 1/2 1/2 1/2 1 1/2 1/2 1/2 Light frustum (projection) matrix Light view (look at) matrix Inverse eye view (look at) matrix Eye view (look at) matrix Modeling matrix x o y o z o w o x e y e z e w e = = x e y e z e w e s t r q glTexGen automatically applies this when modelview matrix contains just the eye view transform Supply this combined transform to glTexGen
Shadow Map Operation ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Dedicated Hardware Shadow Mapping Support ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
OpenGL Extensions for Shadow Map Hardware ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
New Depth Texture Internal Texture Formats ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Depth Texture Details ,[object Object],[object Object],[object Object],[object Object],[object Object]
Depth Texture Copy Performance ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Hardware Shadow Map Filtering ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Hardware Shadow Map Filtering Example GL_NEAREST: blocky GL_LINEAR: antialiased edges Low shadow map resolution used to heightens filtering artifacts
Depth Values are not Blend-able ,[object Object],eye position  What pixel covers in shadow map texture Texel sample depth = 0.25 Texel sample depth = 0.63 0.63 0.25 0.25 0.63 Average(0.25, 0.25, 0.63, 0.63) = 0.44 0.57  > 0.44 so pixel is  wrongly  “in shadow” Truth: nothing is at 0.44, just 0.25 and 0.57 Pixel depth = 0.57
Percentage Closer Filtering eye position  What pixel covers in shadow map texture Texel sample depth = 0.25 Texel sample depth = 0.63 Shadowed Average(0.57>0.25, 0.57>0.25, 0.57<0.63, 0.57<0.63) = 50% so pixel is reasonably 50% shadowed   (actually hardware does weighted average) Pixel depth = 0.57 Unshadowed ,[object Object]
Mipmap Filtering for Depth Textures with Percentage Closer Filtering (1) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Mipmap Filtering for Depth Textures with Percentage Closer Filtering (2) ,[object Object],[object Object],[object Object]
Advice for Shadowed Illumination Model (1) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
The Need for Dimming Diffuse No dimming; shadowed regions have 0% diffuse and 0% specular With dimming; shadowed regions have 40% diffuse and 0% specular Front facing shadowed regions appear unnaturally flat. Still evidence of curvature in shadowed regions. No specular in shadowed regions in both versions.
Advice for Shadowed Illumination Model (2) ,[object Object],[object Object],[object Object],[object Object]
Careful about Back Projecting Shadow Maps (1) ,[object Object],Spotlight casting shadows (a hooded light source) Spotlight’s of cone of illumination where “true” shadows can form Back-projection of spotlight’s cone of illumination Pentagon would be incorrectly lit by back-projection if not specially handled
Careful about Back Projecting Shadow Maps (2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Other Useful OpenGL Extensions for Improving Shadow Mapping ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Combining Shadow Mapping with other Techniques ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
An Alternative to Dedicated Shadow Mapping Hardware ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Issues with Shadow Mapping (1) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Issues with Shadow Mapping (2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Some Theory for Determining Your Shadow Map Resolution (1) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Some Theory for Determining Your Shadow Map Resolution (2) ,[object Object],[object Object],[object Object],[object Object],[object Object]
Four Images of Dueling Frusta Case Eye’s View Light’s View Eye’s View with projection of color-coded mipmap levels from light: Blue = magnification Red = minification Light’s View with re-projection of above image from the eye
Interpretation of the Four Images of the Dueling Frusta Case Eye’s View Light’s View Region that is smallest in the light’s view is a region that is very large in the eye’s view.  This implies that it would require a very high-resolution shadow map to avoid obvious blocky shadow edge artifacts.
Example of Blocky Shadow Edge Artifacts in Dueling Frusta Situations Light position out here pointing towards the viewer. Blocky shadow edge artifacts. Notice that shadow edge is well defined in the distance.
Good Situation, Close to the Miner’s Lamp Eye’s View Light’s View Very similar views Note how the color-coded images share similar pattern and the coloration is uniform.  Implies single depth map resolution would work well for most of the scene. Ghosting is where projection would be in shadow.
More Examples ,[object Object],Note object self-shadowing
More Examples ,[object Object]
More Examples ,[object Object],Note shadow leakage due to infinitely thin floor Could be fixed by giving floor thickness
Combine with Projective Texturing for Spotlight Shadows ,[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Combining Shadows with Atmospherics Credit: Cass Everitt
Luxo Jr. in Real-time using Shadow Mapping ,[object Object]
Luxo Jr. Demo Details ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],(Sorry, no demo.  Images are from web cast video  of Apple’s MacWorld Japan announcement.)
Shadow Mapping Source Code ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Credits ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Conclusions ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

Weitere ähnliche Inhalte

Was ist angesagt?

Hierachical z Map Occlusion Culling
Hierachical z Map Occlusion CullingHierachical z Map Occlusion Culling
Hierachical z Map Occlusion Culling
YEONG-CHEON YOU
 
[0107 박민근] 쉽게 배우는 hdr과 톤맵핑
[0107 박민근] 쉽게 배우는 hdr과 톤맵핑[0107 박민근] 쉽게 배우는 hdr과 톤맵핑
[0107 박민근] 쉽게 배우는 hdr과 톤맵핑
MinGeun Park
 
[0122 구경원]게임에서의 충돌처리
[0122 구경원]게임에서의 충돌처리[0122 구경원]게임에서의 충돌처리
[0122 구경원]게임에서의 충돌처리
KyeongWon Koo
 
Z Buffer Optimizations
Z Buffer OptimizationsZ Buffer Optimizations
Z Buffer Optimizations
pjcozzi
 
Moving Frostbite to Physically Based Rendering
Moving Frostbite to Physically Based RenderingMoving Frostbite to Physically Based Rendering
Moving Frostbite to Physically Based Rendering
Electronic Arts / DICE
 

Was ist angesagt? (20)

Hierachical z Map Occlusion Culling
Hierachical z Map Occlusion CullingHierachical z Map Occlusion Culling
Hierachical z Map Occlusion Culling
 
카툰 렌더링
카툰 렌더링카툰 렌더링
카툰 렌더링
 
[0107 박민근] 쉽게 배우는 hdr과 톤맵핑
[0107 박민근] 쉽게 배우는 hdr과 톤맵핑[0107 박민근] 쉽게 배우는 hdr과 톤맵핑
[0107 박민근] 쉽게 배우는 hdr과 톤맵핑
 
[0122 구경원]게임에서의 충돌처리
[0122 구경원]게임에서의 충돌처리[0122 구경원]게임에서의 충돌처리
[0122 구경원]게임에서의 충돌처리
 
Lighting the City of Glass
Lighting the City of GlassLighting the City of Glass
Lighting the City of Glass
 
Cascade Shadow Mapping
Cascade Shadow MappingCascade Shadow Mapping
Cascade Shadow Mapping
 
Z Buffer Optimizations
Z Buffer OptimizationsZ Buffer Optimizations
Z Buffer Optimizations
 
빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술
 
Ssao
SsaoSsao
Ssao
 
Moving Frostbite to Physically Based Rendering
Moving Frostbite to Physically Based RenderingMoving Frostbite to Physically Based Rendering
Moving Frostbite to Physically Based Rendering
 
輪読発表資料: Efficient Virtual Shadow Maps for Many Lights
輪読発表資料: Efficient Virtual Shadow Maps for Many Lights輪読発表資料: Efficient Virtual Shadow Maps for Many Lights
輪読発表資料: Efficient Virtual Shadow Maps for Many Lights
 
Abalanche - Unity Shader Graph #1: Shader & PBR Materials
Abalanche - Unity Shader Graph #1: Shader & PBR MaterialsAbalanche - Unity Shader Graph #1: Shader & PBR Materials
Abalanche - Unity Shader Graph #1: Shader & PBR Materials
 
Probabilistic Approaches to Shadow Maps Filtering
Probabilistic Approaches to Shadow Maps FilteringProbabilistic Approaches to Shadow Maps Filtering
Probabilistic Approaches to Shadow Maps Filtering
 
[데브루키] Color space gamma correction
[데브루키] Color space gamma correction[데브루키] Color space gamma correction
[데브루키] Color space gamma correction
 
TA가 뭐예요? (What is a Technical Artist? 블루홀스튜디오)
TA가 뭐예요? (What is a Technical Artist? 블루홀스튜디오)TA가 뭐예요? (What is a Technical Artist? 블루홀스튜디오)
TA가 뭐예요? (What is a Technical Artist? 블루홀스튜디오)
 
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
 
Cascades Demo Secrets
Cascades Demo SecretsCascades Demo Secrets
Cascades Demo Secrets
 
Physically Based Lighting in Unreal Engine 4
Physically Based Lighting in Unreal Engine 4Physically Based Lighting in Unreal Engine 4
Physically Based Lighting in Unreal Engine 4
 
Stochastic Screen-Space Reflections
Stochastic Screen-Space ReflectionsStochastic Screen-Space Reflections
Stochastic Screen-Space Reflections
 
Ndc11 이창희_hdr
Ndc11 이창희_hdrNdc11 이창희_hdr
Ndc11 이창희_hdr
 

Andere mochten auch

Kalman filter - Applications in Image processing
Kalman filter - Applications in Image processingKalman filter - Applications in Image processing
Kalman filter - Applications in Image processing
Ravi Teja
 
Telescope pre のコピー
Telescope pre のコピーTelescope pre のコピー
Telescope pre のコピー
Hitsuji Kaji
 
OpenGL Introduction.
OpenGL Introduction.OpenGL Introduction.
OpenGL Introduction.
Girish Ghate
 

Andere mochten auch (17)

openFrameworks 007 - 3D
openFrameworks 007 - 3DopenFrameworks 007 - 3D
openFrameworks 007 - 3D
 
Kalman filter - Applications in Image processing
Kalman filter - Applications in Image processingKalman filter - Applications in Image processing
Kalman filter - Applications in Image processing
 
Dynamic C++ ACCU 2013
Dynamic C++ ACCU 2013Dynamic C++ ACCU 2013
Dynamic C++ ACCU 2013
 
openFrameworks 007 - utils
openFrameworks 007 - utilsopenFrameworks 007 - utils
openFrameworks 007 - utils
 
Open frameworks 101_fitc
Open frameworks 101_fitcOpen frameworks 101_fitc
Open frameworks 101_fitc
 
iOS OpenGL
iOS OpenGLiOS OpenGL
iOS OpenGL
 
Opengl Lighting Basic
Opengl Lighting BasicOpengl Lighting Basic
Opengl Lighting Basic
 
GLSLで遊ぶポイントスプライト
GLSLで遊ぶポイントスプライトGLSLで遊ぶポイントスプライト
GLSLで遊ぶポイントスプライト
 
Week 2 understand lighting (semester 1)
Week 2 understand lighting (semester 1)Week 2 understand lighting (semester 1)
Week 2 understand lighting (semester 1)
 
OpenGL Interaction
OpenGL InteractionOpenGL Interaction
OpenGL Interaction
 
Telescope pre のコピー
Telescope pre のコピーTelescope pre のコピー
Telescope pre のコピー
 
Felwyrld Tech
Felwyrld TechFelwyrld Tech
Felwyrld Tech
 
CS 354 Shadows
CS 354 ShadowsCS 354 Shadows
CS 354 Shadows
 
OpenGL Introduction.
OpenGL Introduction.OpenGL Introduction.
OpenGL Introduction.
 
Computer vision techniques for interactive art
Computer vision techniques for interactive artComputer vision techniques for interactive art
Computer vision techniques for interactive art
 
中級グラフィックス入門~シャドウマッピング総まとめ~
中級グラフィックス入門~シャドウマッピング総まとめ~中級グラフィックス入門~シャドウマッピング総まとめ~
中級グラフィックス入門~シャドウマッピング総まとめ~
 
OpenGL Basics
OpenGL BasicsOpenGL Basics
OpenGL Basics
 

Ähnlich wie Shadow Mapping with Today's OpenGL Hardware

Shadow Techniques for Real-Time and Interactive Applications
Shadow Techniques for Real-Time and Interactive ApplicationsShadow Techniques for Real-Time and Interactive Applications
Shadow Techniques for Real-Time and Interactive Applications
stefan_b
 
Practical and Robust Stenciled Shadow Volumes for Hardware-Accelerated Rendering
Practical and Robust Stenciled Shadow Volumes for Hardware-Accelerated RenderingPractical and Robust Stenciled Shadow Volumes for Hardware-Accelerated Rendering
Practical and Robust Stenciled Shadow Volumes for Hardware-Accelerated Rendering
Mark Kilgard
 
study Active Refocusing Of Images And Videos
study Active Refocusing Of Images And Videosstudy Active Refocusing Of Images And Videos
study Active Refocusing Of Images And Videos
Chiamin Hsu
 

Ähnlich wie Shadow Mapping with Today's OpenGL Hardware (20)

Interactive Refractions And Caustics Using Image Space Techniques
Interactive Refractions And Caustics Using Image Space TechniquesInteractive Refractions And Caustics Using Image Space Techniques
Interactive Refractions And Caustics Using Image Space Techniques
 
Shadow Techniques for Real-Time and Interactive Applications
Shadow Techniques for Real-Time and Interactive ApplicationsShadow Techniques for Real-Time and Interactive Applications
Shadow Techniques for Real-Time and Interactive Applications
 
Advanced Lighting for Interactive Applications
Advanced Lighting for Interactive ApplicationsAdvanced Lighting for Interactive Applications
Advanced Lighting for Interactive Applications
 
Shadow Caster Culling for Efficient Shadow Mapping (Authors: Jiří Bittner, Ol...
Shadow Caster Culling for Efficient Shadow Mapping (Authors: Jiří Bittner, Ol...Shadow Caster Culling for Efficient Shadow Mapping (Authors: Jiří Bittner, Ol...
Shadow Caster Culling for Efficient Shadow Mapping (Authors: Jiří Bittner, Ol...
 
Soft Shadow Maps for Linear Lights
Soft Shadow Maps for Linear LightsSoft Shadow Maps for Linear Lights
Soft Shadow Maps for Linear Lights
 
Virtual Reality 3D home applications
Virtual Reality 3D home applicationsVirtual Reality 3D home applications
Virtual Reality 3D home applications
 
A Practical and Robust Bump-mapping Technique for Today’s GPUs (slides)
A Practical and Robust Bump-mapping Technique for Today’s GPUs (slides)A Practical and Robust Bump-mapping Technique for Today’s GPUs (slides)
A Practical and Robust Bump-mapping Technique for Today’s GPUs (slides)
 
Build Your Own 3D Scanner: 3D Scanning with Swept-Planes
Build Your Own 3D Scanner: 3D Scanning with Swept-PlanesBuild Your Own 3D Scanner: 3D Scanning with Swept-Planes
Build Your Own 3D Scanner: 3D Scanning with Swept-Planes
 
Lecture1
Lecture1Lecture1
Lecture1
 
Practical and Robust Stenciled Shadow Volumes for Hardware-Accelerated Rendering
Practical and Robust Stenciled Shadow Volumes for Hardware-Accelerated RenderingPractical and Robust Stenciled Shadow Volumes for Hardware-Accelerated Rendering
Practical and Robust Stenciled Shadow Volumes for Hardware-Accelerated Rendering
 
Svr Raskar
Svr RaskarSvr Raskar
Svr Raskar
 
Secrets of CryENGINE 3 Graphics Technology
Secrets of CryENGINE 3 Graphics TechnologySecrets of CryENGINE 3 Graphics Technology
Secrets of CryENGINE 3 Graphics Technology
 
Deferred Pixel Shading on the PLAYSTATION®3
Deferred Pixel Shading on the PLAYSTATION®3Deferred Pixel Shading on the PLAYSTATION®3
Deferred Pixel Shading on the PLAYSTATION®3
 
Normal Mapping / Computer Graphics - IK
Normal Mapping / Computer Graphics - IKNormal Mapping / Computer Graphics - IK
Normal Mapping / Computer Graphics - IK
 
Real-time Shadowing Techniques: Shadow Volumes
Real-time Shadowing Techniques: Shadow VolumesReal-time Shadowing Techniques: Shadow Volumes
Real-time Shadowing Techniques: Shadow Volumes
 
study Active Refocusing Of Images And Videos
study Active Refocusing Of Images And Videosstudy Active Refocusing Of Images And Videos
study Active Refocusing Of Images And Videos
 
Trytten computergraphics(1)
Trytten computergraphics(1)Trytten computergraphics(1)
Trytten computergraphics(1)
 
Dual photography
Dual photographyDual photography
Dual photography
 
visual realism in geometric modeling
visual realism in geometric modelingvisual realism in geometric modeling
visual realism in geometric modeling
 
Lecture 11 Perspective Projection
Lecture 11 Perspective ProjectionLecture 11 Perspective Projection
Lecture 11 Perspective Projection
 

Mehr von Mark Kilgard

Mehr von 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
 
NVIDIA OpenGL and Vulkan Support for 2017
NVIDIA OpenGL and Vulkan Support for 2017NVIDIA OpenGL and Vulkan Support for 2017
NVIDIA OpenGL and Vulkan Support for 2017
 
NVIDIA OpenGL 4.6 in 2017
NVIDIA OpenGL 4.6 in 2017NVIDIA OpenGL 4.6 in 2017
NVIDIA OpenGL 4.6 in 2017
 
NVIDIA OpenGL in 2016
NVIDIA OpenGL in 2016NVIDIA OpenGL in 2016
NVIDIA OpenGL in 2016
 
Virtual Reality Features of NVIDIA GPUs
Virtual Reality Features of NVIDIA GPUsVirtual Reality Features of NVIDIA GPUs
Virtual Reality Features of NVIDIA GPUs
 
Migrating from OpenGL to Vulkan
Migrating from OpenGL to VulkanMigrating from OpenGL to Vulkan
Migrating from OpenGL to Vulkan
 
EXT_window_rectangles
EXT_window_rectanglesEXT_window_rectangles
EXT_window_rectangles
 
OpenGL for 2015
OpenGL for 2015OpenGL for 2015
OpenGL for 2015
 
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
 
OpenGL 4.5 Update for NVIDIA GPUs
OpenGL 4.5 Update for NVIDIA GPUsOpenGL 4.5 Update for NVIDIA GPUs
OpenGL 4.5 Update for NVIDIA GPUs
 
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
 
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
 
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
 
SIGGRAPH 2012: NVIDIA OpenGL for 2012
SIGGRAPH 2012: NVIDIA OpenGL for 2012SIGGRAPH 2012: NVIDIA OpenGL for 2012
SIGGRAPH 2012: NVIDIA OpenGL for 2012
 

Kürzlich hochgeladen

Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
FIDO Alliance
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
panagenda
 
Microsoft BitLocker Bypass Attack Method.pdf
Microsoft BitLocker Bypass Attack Method.pdfMicrosoft BitLocker Bypass Attack Method.pdf
Microsoft BitLocker Bypass Attack Method.pdf
Overkill Security
 

Kürzlich hochgeladen (20)

Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
 
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
 
الأمن السيبراني - ما لا يسع للمستخدم جهله
الأمن السيبراني - ما لا يسع للمستخدم جهلهالأمن السيبراني - ما لا يسع للمستخدم جهله
الأمن السيبراني - ما لا يسع للمستخدم جهله
 
Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform Engineering
 
Design Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptxDesign Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptx
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
 
Vector Search @ sw2con for slideshare.pptx
Vector Search @ sw2con for slideshare.pptxVector Search @ sw2con for slideshare.pptx
Vector Search @ sw2con for slideshare.pptx
 
Top 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development CompaniesTop 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development Companies
 
Generative AI Use Cases and Applications.pdf
Generative AI Use Cases and Applications.pdfGenerative AI Use Cases and Applications.pdf
Generative AI Use Cases and Applications.pdf
 
ADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptxADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptx
 
Introduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptxIntroduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptx
 
2024 May Patch Tuesday
2024 May Patch Tuesday2024 May Patch Tuesday
2024 May Patch Tuesday
 
UiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overviewUiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overview
 
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
 
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
 
How to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cfHow to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cf
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Microsoft BitLocker Bypass Attack Method.pdf
Microsoft BitLocker Bypass Attack Method.pdfMicrosoft BitLocker Bypass Attack Method.pdf
Microsoft BitLocker Bypass Attack Method.pdf
 
Design and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data ScienceDesign and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data Science
 
Navigating the Large Language Model choices_Ravi Daparthi
Navigating the Large Language Model choices_Ravi DaparthiNavigating the Large Language Model choices_Ravi Daparthi
Navigating the Large Language Model choices_Ravi Daparthi
 

Shadow Mapping with Today's OpenGL Hardware

  • 1. Shadow Mapping with Today’s OpenGL Hardware CEDEC 2001 Tokyo, Japan
  • 2. Mark J. Kilgard Graphics Software Engineer NVIDIA Corporation
  • 3.
  • 4. Common Real-time Shadow Techniques Shadow volumes Light maps Projected planar shadows Hybrid approaches
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12. Shadow Mapping with a Picture in 2D (2) light source eye position depth map Z = A fragment’s light Z = B depth map image plane eye view image plane, a.k.a. the frame buffer The A  B unshadowed fragment case
  • 13. Note image precision mismatch! The depth map could be at a different resolution from the framebuffer This mismatch can lead to artifacts Shadow Mapping with a Picture in 2D (3)
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41. Shadow Map Eye Linear Texgen Transform 1/2 1/2 1/2 1 1/2 1/2 1/2 Light frustum (projection) matrix Light view (look at) matrix Inverse eye view (look at) matrix Eye view (look at) matrix Modeling matrix x o y o z o w o x e y e z e w e = = x e y e z e w e s t r q glTexGen automatically applies this when modelview matrix contains just the eye view transform Supply this combined transform to glTexGen
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49. Hardware Shadow Map Filtering Example GL_NEAREST: blocky GL_LINEAR: antialiased edges Low shadow map resolution used to heightens filtering artifacts
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55. The Need for Dimming Diffuse No dimming; shadowed regions have 0% diffuse and 0% specular With dimming; shadowed regions have 40% diffuse and 0% specular Front facing shadowed regions appear unnaturally flat. Still evidence of curvature in shadowed regions. No specular in shadowed regions in both versions.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66. Four Images of Dueling Frusta Case Eye’s View Light’s View Eye’s View with projection of color-coded mipmap levels from light: Blue = magnification Red = minification Light’s View with re-projection of above image from the eye
  • 67. Interpretation of the Four Images of the Dueling Frusta Case Eye’s View Light’s View Region that is smallest in the light’s view is a region that is very large in the eye’s view. This implies that it would require a very high-resolution shadow map to avoid obvious blocky shadow edge artifacts.
  • 68. Example of Blocky Shadow Edge Artifacts in Dueling Frusta Situations Light position out here pointing towards the viewer. Blocky shadow edge artifacts. Notice that shadow edge is well defined in the distance.
  • 69. Good Situation, Close to the Miner’s Lamp Eye’s View Light’s View Very similar views Note how the color-coded images share similar pattern and the coloration is uniform. Implies single depth map resolution would work well for most of the scene. Ghosting is where projection would be in shadow.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.