From 4bd3477e29319922d7e7bbb774462d419fa0f40b Mon Sep 17 00:00:00 2001 From: Mitchell Stokes Date: Sat, 12 Jan 2013 20:01:58 +0000 Subject: 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. --- source/gameengine/Ketsji/KX_BlenderMaterial.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'source/gameengine/Ketsji/KX_BlenderMaterial.cpp') diff --git a/source/gameengine/Ketsji/KX_BlenderMaterial.cpp b/source/gameengine/Ketsji/KX_BlenderMaterial.cpp index a55dd701826..231ec27030d 100644 --- a/source/gameengine/Ketsji/KX_BlenderMaterial.cpp +++ b/source/gameengine/Ketsji/KX_BlenderMaterial.cpp @@ -400,6 +400,8 @@ KX_BlenderMaterial::ActivatShaders( if (rasty->GetDrawingMode() == RAS_IRasterizer::KX_TEXTURED) tmp->setShaderData(true, rasty); + else if (rasty->GetDrawingMode() == RAS_IRasterizer::KX_SHADOW && IsAlpha() && !rasty->GetUsingOverrideShader()) + tmp->setShaderData(true, rasty); else tmp->setShaderData(false, rasty); @@ -445,6 +447,8 @@ KX_BlenderMaterial::ActivateBlenderShaders( if (rasty->GetDrawingMode() == RAS_IRasterizer::KX_TEXTURED) tmp->setBlenderShaderData(true, rasty); + else if (rasty->GetDrawingMode() == RAS_IRasterizer::KX_SHADOW && IsAlpha() && !rasty->GetUsingOverrideShader()) + tmp->setBlenderShaderData(true, rasty); else tmp->setBlenderShaderData(false, rasty); @@ -494,6 +498,8 @@ KX_BlenderMaterial::ActivateMat( if (rasty->GetDrawingMode() == RAS_IRasterizer::KX_TEXTURED) tmp->setTexData( true,rasty ); + else if (rasty->GetDrawingMode() == RAS_IRasterizer::KX_SHADOW && IsAlpha() && !rasty->GetUsingOverrideShader()) + tmp->setTexData(true, rasty); else tmp->setTexData( false,rasty); @@ -628,7 +634,8 @@ void KX_BlenderMaterial::ActivatGLMaterials( RAS_IRasterizer* rasty )const void KX_BlenderMaterial::ActivateTexGen(RAS_IRasterizer *ras) const { - if (ras->GetDrawingMode() == RAS_IRasterizer::KX_TEXTURED) { + if (ras->GetDrawingMode() == RAS_IRasterizer::KX_TEXTURED || + (ras->GetDrawingMode() == RAS_IRasterizer::KX_SHADOW && IsAlpha() && !ras->GetUsingOverrideShader())) { ras->SetAttribNum(0); if (mShader && GLEW_ARB_shader_objects) { if (mShader->GetAttribute() == BL_Shader::SHD_TANGENT) { -- cgit v1.2.3