[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