Revision: 22213 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=22213 Author: jaguarandi Date: 2009-08-04 19:24:49 +0200 (Tue, 04 Aug 2009)
Log Message: ----------- Skip BB tests on primitives the efficiency of this depends on ray-bb and ray-triangle functions efficiency Modified Paths: -------------- branches/soc-2009-jaguarandi/source/blender/render/extern/include/RE_raytrace.h branches/soc-2009-jaguarandi/source/blender/render/intern/raytrace/rayobject_vbvh.cpp Modified: branches/soc-2009-jaguarandi/source/blender/render/extern/include/RE_raytrace.h =================================================================== --- branches/soc-2009-jaguarandi/source/blender/render/extern/include/RE_raytrace.h 2009-08-04 15:40:49 UTC (rev 22212) +++ branches/soc-2009-jaguarandi/source/blender/render/extern/include/RE_raytrace.h 2009-08-04 17:24:49 UTC (rev 22213) @@ -37,7 +37,7 @@ #define RE_RAY_LCTS_MAX_SIZE 256 -#define RT_USE_LAST_HIT /* last shadow hit is reused before raycasting on whole tree */ +#define RT_USE_LAST_HIT /* last shadow hit is reused before raycasting on whole tree */ //#define RT_USE_HINT /* last hit object is reused before raycasting on whole tree */ #define RE_RAYCOUNTER Modified: branches/soc-2009-jaguarandi/source/blender/render/intern/raytrace/rayobject_vbvh.cpp =================================================================== --- branches/soc-2009-jaguarandi/source/blender/render/intern/raytrace/rayobject_vbvh.cpp 2009-08-04 15:40:49 UTC (rev 22212) +++ branches/soc-2009-jaguarandi/source/blender/render/intern/raytrace/rayobject_vbvh.cpp 2009-08-04 17:24:49 UTC (rev 22213) @@ -81,12 +81,23 @@ inline static void bvh_node_push_childs(Node *node, Isect *isec, Node **stack, int &stack_pos) { Node *child = node->child; - while(child) + + if(!RayObject_isAligned(child)) { stack[stack_pos++] = child; - if(RayObject_isAligned(child)) + } + else + { + while(child) + { + //Skips BB tests on primitives + if(!RayObject_isAligned(child->child)) + stack[stack_pos++] = child->child; + else + stack[stack_pos++] = child; + child = child->sibling; - else break; + } } } _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs