[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