diff options
author | Mitchell Stokes <mogurijin@gmail.com> | 2013-01-13 00:01:58 +0400 |
---|---|---|
committer | Mitchell Stokes <mogurijin@gmail.com> | 2013-01-13 00:01:58 +0400 |
commit | 4bd3477e29319922d7e7bbb774462d419fa0f40b (patch) | |
tree | c6dda5487cd5c31a4874829992f9e74b99dcce6a /source/gameengine/Ketsji/KX_Light.cpp | |
parent | 3225131223711c99b3bdd4c27693cf4943d90b11 (diff) |
BGE: Adding preliminary alpha shadow support for Simple shadow maps. They do not work in the viewport nor do they work for Variance shadow maps.
Diffstat (limited to 'source/gameengine/Ketsji/KX_Light.cpp')
-rw-r--r-- | source/gameengine/Ketsji/KX_Light.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/source/gameengine/Ketsji/KX_Light.cpp b/source/gameengine/Ketsji/KX_Light.cpp index 5414a4df0f8..a8f309cc592 100644 --- a/source/gameengine/Ketsji/KX_Light.cpp +++ b/source/gameengine/Ketsji/KX_Light.cpp @@ -246,6 +246,9 @@ void KX_LightObject::BindShadowBuffer(RAS_IRasterizer *ras, RAS_ICanvas *canvas, lamp = GetGPULamp(); GPU_lamp_shadow_buffer_bind(lamp, viewmat, &winsize, winmat); + if (GPU_lamp_shadow_buffer_type(lamp) == LA_SHADMAP_VARIANCE) + ras->SetUsingOverrideShader(true); + /* GPU_lamp_shadow_buffer_bind() changes the viewport, so update the canvas */ canvas->UpdateViewPort(0, 0, winsize, winsize); @@ -276,6 +279,9 @@ void KX_LightObject::UnbindShadowBuffer(RAS_IRasterizer *ras) { GPULamp *lamp = GetGPULamp(); GPU_lamp_shadow_buffer_unbind(lamp); + + if (GPU_lamp_shadow_buffer_type(lamp) == LA_SHADMAP_VARIANCE) + ras->SetUsingOverrideShader(false); } struct Image *KX_LightObject::GetTextureImage(short texslot) |