[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [23686] trunk/blender/source/blender/ render/intern/source: * More fixes post-raytrace commit

Matt Ebb matt at mke3.net
Wed Oct 7 14:17:29 CEST 2009


Revision: 23686
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=23686
Author:   broken
Date:     2009-10-07 14:17:29 +0200 (Wed, 07 Oct 2009)

Log Message:
-----------
* More fixes post-raytrace commit

Modified Paths:
--------------
    trunk/blender/source/blender/render/intern/source/volume_precache.c
    trunk/blender/source/blender/render/intern/source/volumetric.c

Modified: trunk/blender/source/blender/render/intern/source/volume_precache.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/volume_precache.c	2009-10-07 11:36:29 UTC (rev 23685)
+++ trunk/blender/source/blender/render/intern/source/volume_precache.c	2009-10-07 12:17:29 UTC (rev 23686)
@@ -74,11 +74,15 @@
 	if (RE_rayobject_raycast(tree, isect)) {
 		float hitco[3];
 		
-		hitco[0] = isect->start[0] + isect->labda*isect->vec[0];
-		hitco[1] = isect->start[1] + isect->labda*isect->vec[1];
-		hitco[2] = isect->start[2] + isect->labda*isect->vec[2];
-		VecAddf(isect->start, hitco, offset);
-
+		isect->start[0] = isect->start[0] + isect->labda*isect->vec[0];
+		isect->start[1] = isect->start[1] + isect->labda*isect->vec[1];
+		isect->start[2] = isect->start[2] + isect->labda*isect->vec[2];
+		
+		isect->labda = FLT_MAX;
+		isect->skip = RE_SKIP_VLR_NEIGHBOUR;
+		isect->orig.face= isect->hit.face;
+		isect->orig.ob= isect->hit.ob;
+		
 		return intersect_outside_volume(tree, isect, offset, limit-1, depth+1);
 	} else {
 		return depth;
@@ -96,22 +100,14 @@
 	memset(&isect, 0, sizeof(isect));
 	VECCOPY(isect.start, co);
 	VECCOPY(isect.vec, vec);
-	isect.labda = FLT_MAX;
-	
-	/*
-	isect.end[0] = co[0] + vec[0] * maxsize;
-	isect.end[1] = co[1] + vec[1] * maxsize;
-	isect.end[2] = co[2] + vec[2] * maxsize;
-	*/
-	
-	/* and give it a little offset to prevent self-intersections */
-	VecMulf(vec, 1e-5);
-	VecAddf(isect.start, isect.start, vec);
-	
 	isect.mode= RE_RAY_MIRROR;
 	isect.last_hit= NULL;
 	isect.lay= -1;
 	
+	isect.labda = FLT_MAX;
+	isect.orig.face= NULL;
+	isect.orig.ob = NULL;
+
 	final_depth = intersect_outside_volume(tree, &isect, vec, limit, depth);
 	
 	/* even number of intersections: point is outside
@@ -120,47 +116,6 @@
 	else return 1;
 }
 
-/*
-static int inside_check_func(Isect *is, int ob, RayObject *face)
-{
-	return 1;
-}
-
-static void vlr_face_coords(RayFace *face, float **v1, float **v2, float **v3, float **v4)
-{
-	VlakRen *vlr= (VlakRen*)face;
-
-	*v1 = (vlr->v1)? vlr->v1->co: NULL;
-	*v2 = (vlr->v2)? vlr->v2->co: NULL;
-	*v3 = (vlr->v3)? vlr->v3->co: NULL;
-	*v4 = (vlr->v4)? vlr->v4->co: NULL;
-}
-
-RayObject *create_raytree_obi(ObjectInstanceRen *obi, float *bbmin, float *bbmax)
-{
-	int v;
-	VlakRen *vlr= NULL;
-	
-	/ * create empty raytree * /
-	RayTree *tree = RE_ray_tree_create(64, obi->obr->totvlak, bbmin, bbmax,
-		vlr_face_coords, inside_check_func, NULL, NULL);
-	
-	/ * fill it with faces * /
-	for(v=0; v<obi->obr->totvlak; v++) {
-		if((v & 255)==0)
-			vlr= obi->obr->vlaknodes[v>>8].vlak;
-		else
-			vlr++;
-	
-		RE_ray_tree_add_face(tree, 0, vlr);
-	}
-	
-	RE_ray_tree_done(tree);
-	
-	return tree;
-}
-*/
-
 /* *** light cache filtering *** */
 
 static float get_avg_surrounds(float *cache, int *res, int xx, int yy, int zz)

Modified: trunk/blender/source/blender/render/intern/source/volumetric.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/volumetric.c	2009-10-07 11:36:29 UTC (rev 23685)
+++ trunk/blender/source/blender/render/intern/source/volumetric.c	2009-10-07 12:17:29 UTC (rev 23686)
@@ -98,15 +98,14 @@
 		}
 
 		is.mode = RE_RAY_MIRROR;
-		is.skip = RE_SKIP_VLR_NEIGHBOUR | RE_SKIP_VLR_RENDER_CHECK | RE_SKIP_VLR_NON_SOLID_MATERIAL;
+		is.skip = RE_SKIP_VLR_RENDER_CHECK | RE_SKIP_VLR_NON_SOLID_MATERIAL;
 		
 		if(lar->mode & (LA_LAYER|LA_LAYER_SHADOW))
 			is.lay= lar->lay;	
 		else
 			is.lay= -1;
 			
-		is.last_hit = NULL;
-		is.orig.ob = (void*)shi->obi;
+		is.orig.ob = NULL;
 		is.orig.face = NULL;
 		is.last_hit = lar->last_hit[shi->thread];
 		
@@ -132,12 +131,6 @@
 	VECCOPY(isect->start, co);
 	VECCOPY(isect->vec, vec );
 	isect->labda = FLT_MAX;
-	/*
-	isect->end[0] = co[0] + vec[0] * maxsize;
-	isect->end[1] = co[1] + vec[1] * maxsize;
-	isect->end[2] = co[2] + vec[2] * maxsize;
-	*/
-	
 	isect->mode= RE_RAY_MIRROR;
 	isect->last_hit = NULL;
 	isect->lay= -1;





More information about the Bf-blender-cvs mailing list