diff options
author | Matt Ebb <matt@mke3.net> | 2008-12-31 08:08:04 +0300 |
---|---|---|
committer | Matt Ebb <matt@mke3.net> | 2008-12-31 08:08:04 +0300 |
commit | 834fda50d99210a5a69360bbed84f76934792171 (patch) | |
tree | b6130ee3b3d8ba191924ce5198530dd59581f8c3 /source/blender/render/intern/include/volumetric.h | |
parent | be1d06a2c544a4ea27139475a72edb75afa37879 (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.h | 10 |
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 |