Revision: 17143
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17143
Author:   broken
Date:     2008-10-21 10:21:36 +0200 (Tue, 21 Oct 2008)

Log Message:
-----------
* reimplemented some things, hopefully may fix some problems zanqdo was having

Modified Paths:
--------------
    branches/sim_physics/source/blender/render/extern/include/RE_shader_ext.h
    branches/sim_physics/source/blender/render/intern/source/rayshade.c
    branches/sim_physics/source/blender/render/intern/source/shadeinput.c
    branches/sim_physics/source/blender/render/intern/source/volumetric.c

Modified: 
branches/sim_physics/source/blender/render/extern/include/RE_shader_ext.h
===================================================================
--- branches/sim_physics/source/blender/render/extern/include/RE_shader_ext.h   
2008-10-21 08:00:19 UTC (rev 17142)
+++ branches/sim_physics/source/blender/render/extern/include/RE_shader_ext.h   
2008-10-21 08:21:36 UTC (rev 17143)
@@ -100,7 +100,6 @@
        struct StrandRen *strand;
        struct ObjectInstanceRen *obi;
        struct ObjectRen *obr;
-       struct Render *re;                              /* link back to the 
Render */
        int facenr;
        float facenor[3];                               /* copy from face */
        short flippednor;                               /* is facenor flipped? 
*/

Modified: branches/sim_physics/source/blender/render/intern/source/rayshade.c
===================================================================
--- branches/sim_physics/source/blender/render/intern/source/rayshade.c 
2008-10-21 08:00:19 UTC (rev 17142)
+++ branches/sim_physics/source/blender/render/intern/source/rayshade.c 
2008-10-21 08:21:36 UTC (rev 17143)
@@ -467,7 +467,6 @@
                //shi.do_preview= 0; // memset above, so dont need this
                shi.light_override= origshi->light_override;
                shi.mat_override= origshi->mat_override;
-               shi.re = origshi->re;
                
                memset(&shr, 0, sizeof(ShadeResult));
                
@@ -1301,7 +1300,6 @@
                
                shi.depth= 1;                                   /* only used to 
indicate tracing */
                shi.mask= 1;
-               shi.re = &R;
                
                /*shi.osatex= 0;
                shi.thread= shi.sample= 0;

Modified: branches/sim_physics/source/blender/render/intern/source/shadeinput.c
===================================================================
--- branches/sim_physics/source/blender/render/intern/source/shadeinput.c       
2008-10-21 08:00:19 UTC (rev 17142)
+++ branches/sim_physics/source/blender/render/intern/source/shadeinput.c       
2008-10-21 08:21:36 UTC (rev 17143)
@@ -1270,7 +1270,6 @@
        shi->combinedflag= ~rl->pass_xor;
        shi->mat_override= rl->mat_override;
        shi->light_override= rl->light_override;
-       shi->re = &R;
 //     shi->rl= rl;
        /* note shi.depth==0  means first hit, not raytracing */
        

Modified: branches/sim_physics/source/blender/render/intern/source/volumetric.c
===================================================================
--- branches/sim_physics/source/blender/render/intern/source/volumetric.c       
2008-10-21 08:00:19 UTC (rev 17142)
+++ branches/sim_physics/source/blender/render/intern/source/volumetric.c       
2008-10-21 08:21:36 UTC (rev 17143)
@@ -95,7 +95,7 @@
 /* TODO: Box or sphere intersection types could speed things up */
 static int vol_get_bounds(ShadeInput *shi, float *co, float *vec, float 
*hitco, Isect *isect, int intersect_type, int checkfunc)
 {
-       float maxsize = RE_ray_tree_max_size(shi->re->raytree);
+       float maxsize = RE_ray_tree_max_size(R.raytree);
        int intersected=0;
 
        /* TODO: use object's bounding box to calculate max size */
@@ -114,9 +114,9 @@
        else if (intersect_type == VOL_BOUNDS_SS) isect->faceorig= NULL;
        
        if (checkfunc==VOL_IS_BACKFACE)
-               intersected = RE_ray_tree_intersect_check(shi->re->raytree, 
isect, vol_backface_intersect_check);
+               intersected = RE_ray_tree_intersect_check(R.raytree, isect, 
vol_backface_intersect_check);
        else
-               intersected = RE_ray_tree_intersect(shi->re->raytree, isect);
+               intersected = RE_ray_tree_intersect(R.raytree, isect);
        
        if(intersected)
        {
@@ -455,7 +455,7 @@
        float col[3] = {0.f, 0.f, 0.f};
        int i=0;
 
-       for(go=shi->re->lights.first; go; go= go->next)
+       for(go=R.lights.first; go; go= go->next)
        {
                float lacol[3] = {0.f, 0.f, 0.f};
        
@@ -596,7 +596,6 @@
        shi_new.combinedflag= 0xFFFFFF;          /* ray trace does all options 
*/
        shi_new.light_override= shi->light_override;
        shi_new.mat_override= shi->mat_override;
-       shi_new.re = shi->re;
        
        VECCOPY(shi_new.camera_co, is->start);
        
@@ -616,7 +615,7 @@
 static void vol_trace_behind(ShadeInput *shi, VlakRen *vlr, float *co, float 
*col)
 {
        Isect isect;
-       float maxsize = RE_ray_tree_max_size(shi->re->raytree);
+       float maxsize = RE_ray_tree_max_size(R.raytree);
 
        VECCOPY(isect.start, co);
        isect.end[0] = isect.start[0] + shi->view[0] * maxsize;
@@ -632,7 +631,7 @@
        isect.lay= -1;
        
        /* check to see if there's anything behind the volume, otherwise shade 
the sky */
-       if(RE_ray_tree_intersect(shi->re->raytree, &isect)) {
+       if(RE_ray_tree_intersect(R.raytree, &isect)) {
                shade_intersection(shi, col, &isect);
        } else {
                shadeSkyView(col, co, shi->view, NULL);
@@ -865,6 +864,8 @@
        float i = 1.0f;
        double time, lasttime= PIL_check_seconds_timer();
        const int res = ma->vol_precache_resolution;
+       
+       R = *re;
 
        /* create a raytree with just the faces of the instanced ObjectRen, 
         * used for checking if the cached point is inside or outside. */
@@ -882,7 +883,6 @@
        shi.obi= obi;
        shi.obr= obi->obr;
        shi.lay = re->scene->lay;
-       shi.re = re;
        VECCOPY(shi.view, view);
        
        stepsize = vol_get_stepsize(&shi, STEPSIZE_VIEW);


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to