diff options
author | Thomas Dinges <blender@dingto.org> | 2013-08-03 17:12:09 +0400 |
---|---|---|
committer | Thomas Dinges <blender@dingto.org> | 2013-08-03 17:12:09 +0400 |
commit | 5fc6f04fc8b678670c2d40d91ca3ccadd653b3ed (patch) | |
tree | 48344bb4eccbb4c3048318891249c1081c527bc9 /intern/cycles/render | |
parent | ea95a78b0bf69b2e8a90a60d01342de47c4b2d12 (diff) |
Cycles / SSS:
* Render Passes are now available for Subsurface Scattering (Direct, Indirect and Color pass).
This is part of my GSoC project, SVN merge of r58587, r58828 and r58835.
Diffstat (limited to 'intern/cycles/render')
-rw-r--r-- | intern/cycles/render/film.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/intern/cycles/render/film.cpp b/intern/cycles/render/film.cpp index 2a16b7b6c21..4b48ee1d2c9 100644 --- a/intern/cycles/render/film.cpp +++ b/intern/cycles/render/film.cpp @@ -98,6 +98,9 @@ void Pass::add(PassType type, vector<Pass>& passes) case PASS_TRANSMISSION_COLOR: pass.components = 4; break; + case PASS_SUBSURFACE_COLOR: + pass.components = 4; + break; case PASS_DIFFUSE_INDIRECT: pass.components = 4; pass.exposure = true; @@ -113,6 +116,11 @@ void Pass::add(PassType type, vector<Pass>& passes) pass.exposure = true; pass.divide_type = PASS_TRANSMISSION_COLOR; break; + case PASS_SUBSURFACE_INDIRECT: + pass.components = 4; + pass.exposure = true; + pass.divide_type = PASS_SUBSURFACE_COLOR; + break; case PASS_DIFFUSE_DIRECT: pass.components = 4; pass.exposure = true; @@ -128,6 +136,11 @@ void Pass::add(PassType type, vector<Pass>& passes) pass.exposure = true; pass.divide_type = PASS_TRANSMISSION_COLOR; break; + case PASS_SUBSURFACE_DIRECT: + pass.components = 4; + pass.exposure = true; + pass.divide_type = PASS_SUBSURFACE_COLOR; + break; case PASS_EMISSION: pass.components = 4; @@ -327,6 +340,10 @@ void Film::device_update(Device *device, DeviceScene *dscene, Scene *scene) kfilm->pass_transmission_color = kfilm->pass_stride; kfilm->use_light_pass = 1; break; + case PASS_SUBSURFACE_COLOR: + kfilm->pass_subsurface_color = kfilm->pass_stride; + kfilm->use_light_pass = 1; + break; case PASS_DIFFUSE_INDIRECT: kfilm->pass_diffuse_indirect = kfilm->pass_stride; kfilm->use_light_pass = 1; @@ -339,6 +356,10 @@ void Film::device_update(Device *device, DeviceScene *dscene, Scene *scene) kfilm->pass_transmission_indirect = kfilm->pass_stride; kfilm->use_light_pass = 1; break; + case PASS_SUBSURFACE_INDIRECT: + kfilm->pass_subsurface_indirect = kfilm->pass_stride; + kfilm->use_light_pass = 1; + break; case PASS_DIFFUSE_DIRECT: kfilm->pass_diffuse_direct = kfilm->pass_stride; kfilm->use_light_pass = 1; @@ -351,6 +372,10 @@ void Film::device_update(Device *device, DeviceScene *dscene, Scene *scene) kfilm->pass_transmission_direct = kfilm->pass_stride; kfilm->use_light_pass = 1; break; + case PASS_SUBSURFACE_DIRECT: + kfilm->pass_subsurface_direct = kfilm->pass_stride; + kfilm->use_light_pass = 1; + break; case PASS_EMISSION: kfilm->pass_emission = kfilm->pass_stride; |