[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [25633] trunk/blender/source/blender/ render/intern/source/rendercore.c: fix crash on baking from selected to active, however need to validate this against 2. 4x to make sure displacement for eg gives the same results
Campbell Barton
ideasman42 at gmail.com
Wed Dec 30 23:35:22 CET 2009
Revision: 25633
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=25633
Author: campbellbarton
Date: 2009-12-30 23:35:22 +0100 (Wed, 30 Dec 2009)
Log Message:
-----------
fix crash on baking from selected to active, however need to validate this against 2.4x to make sure displacement for eg gives the same results
Modified Paths:
--------------
trunk/blender/source/blender/render/intern/source/rendercore.c
Modified: trunk/blender/source/blender/render/intern/source/rendercore.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/rendercore.c 2009-12-30 22:23:50 UTC (rev 25632)
+++ trunk/blender/source/blender/render/intern/source/rendercore.c 2009-12-30 22:35:22 UTC (rev 25633)
@@ -2254,9 +2254,7 @@
static int bake_intersect_tree(RayObject* raytree, Isect* isect, float *start, float *dir, float sign, float *hitco, float *dist)
{
- //TODO
- assert( 0 );
-#if 0
+ //TODO, validate against blender 2.4x, results may have changed.
float maxdist;
int hit;
@@ -2266,15 +2264,20 @@
else
maxdist= FLT_MAX + R.r.bake_biasdist;
- //TODO normalized direction?
- VECADDFAC(isect->start, start, dir, -R.r.bake_biasdist);
- isect->dir[0] = dir[0]*sign;
- isect->dir[1] = dir[1]*sign;
- isect->dir[2] = dir[2]*sign;
+ /* 'dir' is always normalized */
+ VECADDFAC(isect->start, start, dir, -R.r.bake_biasdist);
+
+ isect->vec[0] = dir[0]*maxdist*sign;
+ isect->vec[1] = dir[1]*maxdist*sign;
+ isect->vec[2] = dir[2]*maxdist*sign;
+
isect->labda = maxdist;
+ /* TODO, 2.4x had this...
+ hit = RE_ray_tree_intersect_check(R.raytree, isect, bake_check_intersect);
+ ...the active object may NOT be ignored in some cases.
+ */
hit = RE_rayobject_raycast(raytree, isect);
- //TODO bake_check_intersect
if(hit) {
hitco[0] = isect->start[0] + isect->labda*isect->vec[0];
hitco[1] = isect->start[1] + isect->labda*isect->vec[1];
@@ -2284,8 +2287,6 @@
}
return hit;
-#endif
- return 0;
}
static void bake_set_vlr_dxyco(BakeShade *bs, float *uv1, float *uv2, float *uv3)
More information about the Bf-blender-cvs
mailing list