Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMitchell Stokes <mogurijin@gmail.com>2013-01-13 00:01:58 +0400
committerMitchell Stokes <mogurijin@gmail.com>2013-01-13 00:01:58 +0400
commit4bd3477e29319922d7e7bbb774462d419fa0f40b (patch)
treec6dda5487cd5c31a4874829992f9e74b99dcce6a /source/gameengine/Ketsji/KX_BlenderMaterial.cpp
parent3225131223711c99b3bdd4c27693cf4943d90b11 (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_BlenderMaterial.cpp')
-rw-r--r--source/gameengine/Ketsji/KX_BlenderMaterial.cpp9
1 files changed, 8 insertions, 1 deletions
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) {