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>2008-12-31 08:08:04 +0300
committerMatt Ebb <matt@mke3.net>2008-12-31 08:08:04 +0300
commit834fda50d99210a5a69360bbed84f76934792171 (patch)
treeb6130ee3b3d8ba191924ce5198530dd59581f8c3 /source/blender/render/intern/include/volumetric.h
parentbe1d06a2c544a4ea27139475a72edb75afa37879 (diff)
Volume rendering
* Fixed an old problem where if both the camera and a solid surface were inside a volume, the volume wouldn't attenuate in front of the surface (was visible in the blender conference art festival clouds animation: http://mke3.net/blender/devel/rendering/volumetrics/vol_shade_cam_inside.mov * Initial support for refracting solids inside volumes. I might be able to make this work better, but not sure at the moment. It's a bit dodgy, limited by the code that does the recursive ray shading - it's really not set up for this kind of thing and could use a refactor very much.
Diffstat (limited to 'source/blender/render/intern/include/volumetric.h')
-rw-r--r--source/blender/render/intern/include/volumetric.h10
1 files changed, 7 insertions, 3 deletions
diff --git a/source/blender/render/intern/include/volumetric.h b/source/blender/render/intern/include/volumetric.h
index a69238f54b3..40d79e8d173 100644
--- a/source/blender/render/intern/include/volumetric.h
+++ b/source/blender/render/intern/include/volumetric.h
@@ -30,8 +30,9 @@ float vol_get_stepsize(struct ShadeInput *shi, int context);
float vol_get_density(struct ShadeInput *shi, float *co);
void vol_get_scattering(ShadeInput *shi, float *scatter, float *co, float stepsize, float density);
-void volume_trace(struct ShadeInput *shi, struct ShadeResult *shr);
-void volume_trace_shadow(struct ShadeInput *shi, struct ShadeResult *shr, struct Isect *last_is);
+void shade_volume_outside(ShadeInput *shi, ShadeResult *shr);
+void shade_volume_inside(ShadeInput *shi, ShadeResult *shr);
+void shade_volume_shadow(struct ShadeInput *shi, struct ShadeResult *shr, struct Isect *last_is);
#define STEPSIZE_VIEW 0
#define STEPSIZE_SHADE 1
@@ -40,4 +41,7 @@ void volume_trace_shadow(struct ShadeInput *shi, struct ShadeResult *shr, struct
#define VOL_IS_SAMEMATERIAL 2
#define VOL_BOUNDS_DEPTH 0
-#define VOL_BOUNDS_SS 1 \ No newline at end of file
+#define VOL_BOUNDS_SS 1
+
+#define VOL_SHADE_OUTSIDE 0
+#define VOL_SHADE_INSIDE 1 \ No newline at end of file