Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Ebb <matt@mke3.net>2009-08-24 12:13:09 +0400
committerMatt Ebb <matt@mke3.net>2009-08-24 12:13:09 +0400
commit90895fce8ca4f40bd41026b0406d80e8e83e0e8d (patch)
treec1ba1e4f7e7761db9824fca1b03a748c69574e0b
parent6ddcb4774609d882ce869a0fe60a3c0516129d58 (diff)
* Fix for camera+internal surface object inside ztransp volume
-rw-r--r--source/blender/render/intern/source/shadeinput.c3
-rw-r--r--source/blender/render/intern/source/volumetric.c16
2 files changed, 10 insertions, 9 deletions
diff --git a/source/blender/render/intern/source/shadeinput.c b/source/blender/render/intern/source/shadeinput.c
index ede3c2e0503..ed654eaf526 100644
--- a/source/blender/render/intern/source/shadeinput.c
+++ b/source/blender/render/intern/source/shadeinput.c
@@ -169,7 +169,8 @@ void shade_material_loop(ShadeInput *shi, ShadeResult *shr)
}
if(R.r.mode & R_RAYTRACE) {
- shade_volume_inside(shi, shr);
+ if (R.render_volumes_inside.first)
+ shade_volume_inside(shi, shr);
}
}
diff --git a/source/blender/render/intern/source/volumetric.c b/source/blender/render/intern/source/volumetric.c
index cf66d580944..0e2e3913819 100644
--- a/source/blender/render/intern/source/volumetric.c
+++ b/source/blender/render/intern/source/volumetric.c
@@ -575,15 +575,14 @@ static void volume_trace(struct ShadeInput *shi, struct ShadeResult *shr, int in
startco = shi->camera_co;
endco = shi->co;
- if (!ztransp) {
- if (trace_behind) {
+ if (trace_behind) {
+ if (!ztransp)
/* trace behind the volume object */
vol_trace_behind(shi, shi->vlr, endco, col);
- } else {
- /* we're tracing through the volume between the camera
- * and a solid surface, so use that pre-shaded radiance */
- QUATCOPY(col, shr->combined);
- }
+ } else {
+ /* we're tracing through the volume between the camera
+ * and a solid surface, so use that pre-shaded radiance */
+ QUATCOPY(col, shr->combined);
}
/* shade volume from 'camera' to 1st hit point */
@@ -676,8 +675,9 @@ void shade_volume_inside(ShadeInput *shi, ShadeResult *shr)
MatInside *m;
Material *mat_backup;
- if (BLI_countlist(&R.render_volumes_inside) == 0) return;
+ //if (BLI_countlist(&R.render_volumes_inside) == 0) return;
+ /* XXX: extend to multiple volumes perhaps later */
mat_backup = shi->mat;
m = R.render_volumes_inside.first;
shi->mat = m->ma;