[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [58610] trunk/blender/source/gameengine: BGE Fix [#18804] Shadow type faces cast onto invisible faces (non-GLSL)

Daniel Stokes kupomail at gmail.com
Fri Jul 26 01:42:20 CEST 2013


Revision: 58610
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=58610
Author:   kupoman
Date:     2013-07-25 23:42:20 +0000 (Thu, 25 Jul 2013)
Log Message:
-----------
BGE Fix [#18804] Shadow type faces cast onto invisible faces (non-GLSL)

Changing the RayHit method to ignore invisible faces

Modified Paths:
--------------
    trunk/blender/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.cpp
    trunk/blender/source/gameengine/GamePlayer/common/GPC_RenderTools.cpp

Modified: trunk/blender/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.cpp
===================================================================
--- trunk/blender/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.cpp	2013-07-25 19:27:18 UTC (rev 58609)
+++ trunk/blender/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.cpp	2013-07-25 23:42:20 UTC (rev 58610)
@@ -37,6 +37,7 @@
 #include "RAS_LightObject.h"
 #include "RAS_ICanvas.h"
 #include "RAS_GLExtensionManager.h"
+#include "RAS_MeshObject.h"
 
 #include "KX_GameObject.h"
 #include "KX_PolygonMaterial.h"
@@ -157,6 +158,11 @@
 bool KX_BlenderRenderTools::RayHit(KX_ClientObjectInfo *client, KX_RayCast *result, void * const data)
 {
 	double* const oglmatrix = (double* const) data;
+
+	RAS_Polygon* poly = result->m_hitMesh->GetPolygon(result->m_hitPolygon);
+	if (!poly->IsVisible())
+		return false;
+
 	MT_Point3 resultpoint(result->m_hitPoint);
 	MT_Vector3 resultnormal(result->m_hitNormal);
 	MT_Vector3 left(oglmatrix[0],oglmatrix[1],oglmatrix[2]);

Modified: trunk/blender/source/gameengine/GamePlayer/common/GPC_RenderTools.cpp
===================================================================
--- trunk/blender/source/gameengine/GamePlayer/common/GPC_RenderTools.cpp	2013-07-25 19:27:18 UTC (rev 58609)
+++ trunk/blender/source/gameengine/GamePlayer/common/GPC_RenderTools.cpp	2013-07-25 23:42:20 UTC (rev 58610)
@@ -37,6 +37,7 @@
 #include "RAS_LightObject.h"
 #include "RAS_ICanvas.h"
 #include "RAS_GLExtensionManager.h"
+#include "RAS_MeshObject.h"
 
 #include "KX_GameObject.h"
 #include "KX_PolygonMaterial.h"
@@ -166,6 +167,11 @@
 bool GPC_RenderTools::RayHit(KX_ClientObjectInfo *client, KX_RayCast *result, void * const data)
 {
 	double* const oglmatrix = (double* const) data;
+
+	RAS_Polygon* poly = result->m_hitMesh->GetPolygon(result->m_hitPolygon);
+	if (!poly->IsVisible())
+		return false;
+
 	MT_Point3 resultpoint(result->m_hitPoint);
 	MT_Vector3 resultnormal(result->m_hitNormal);
 	MT_Vector3 left(oglmatrix[0],oglmatrix[1],oglmatrix[2]);




More information about the Bf-blender-cvs mailing list