[Bf-blender-cvs] [ea9de15] soc-2013-dingto: Cycles Volume: rename isotropic to scatter volume, g to anisotropy, scattering to volume bounces.

Brecht Van Lommel noreply at git.blender.org
Sun Dec 8 13:03:12 CET 2013


Commit: ea9de15d0faa790844af476b187d8c1b8bd0a993
Author: Brecht Van Lommel
Date:   Mon Dec 2 17:35:26 2013 +0100
http://developer.blender.org/rBea9de15d0faa790844af476b187d8c1b8bd0a993

Cycles Volume: rename isotropic to scatter volume, g to anisotropy, scattering to volume bounces.

===================================================================

M	intern/cycles/app/cycles_xml.cpp
M	intern/cycles/blender/addon/presets.py
M	intern/cycles/blender/addon/properties.py
M	intern/cycles/blender/addon/ui.py
M	intern/cycles/blender/blender_shader.cpp
M	intern/cycles/blender/blender_sync.cpp
M	intern/cycles/kernel/kernel_path.h
M	intern/cycles/kernel/kernel_path_state.h
M	intern/cycles/kernel/kernel_types.h
M	intern/cycles/kernel/kernel_volume.h
M	intern/cycles/kernel/shaders/CMakeLists.txt
D	intern/cycles/kernel/shaders/node_henyey_greenstein_volume.osl
A	intern/cycles/kernel/shaders/node_scatter_volume.osl
M	intern/cycles/render/integrator.cpp
M	intern/cycles/render/integrator.h
M	intern/cycles/render/nodes.cpp
M	intern/cycles/render/nodes.h
M	intern/cycles/render/shader.cpp
M	release/scripts/addons
M	release/scripts/addons_contrib
M	release/scripts/presets/cycles/integrator/direct_light.py
M	release/scripts/presets/cycles/integrator/full_global_illumination.py
M	release/scripts/presets/cycles/integrator/limited_global_illumination.py
M	release/scripts/startup/nodeitems_builtins.py
M	source/blender/blenkernel/BKE_node.h
M	source/blender/blenkernel/intern/node.c
M	source/blender/nodes/CMakeLists.txt
M	source/blender/nodes/NOD_shader.h
M	source/blender/nodes/NOD_static_types.h
D	source/blender/nodes/shader/nodes/node_shader_volume_isotropic.c
A	source/blender/nodes/shader/nodes/node_shader_volume_scatter.c

===================================================================

diff --git a/intern/cycles/app/cycles_xml.cpp b/intern/cycles/app/cycles_xml.cpp
index df187f0..43b004d 100644
--- a/intern/cycles/app/cycles_xml.cpp
+++ b/intern/cycles/app/cycles_xml.cpp
@@ -455,8 +455,8 @@ static void xml_read_shader_graph(const XMLReadState& state, Shader *shader, pug
 		else if(string_iequals(node.name(), "transparent_volume")) {
 			snode = new TransparentVolumeNode();
 		}
-		else if(string_iequals(node.name(), "isotropic_volume")) {
-			snode = new IsotropicVolumeNode();
+		else if(string_iequals(node.name(), "scatter_volume")) {
+			snode = new ScatterVolumeNode();
 		}
 		else if(string_iequals(node.name(), "geometry")) {
 			snode = new GeometryNode();
diff --git a/intern/cycles/blender/addon/presets.py b/intern/cycles/blender/addon/presets.py
index 18873d2..a9bd0a9 100644
--- a/intern/cycles/blender/addon/presets.py
+++ b/intern/cycles/blender/addon/presets.py
@@ -38,7 +38,7 @@ class AddPresetIntegrator(AddPresetBase, Operator):
         "cycles.diffuse_bounces",
         "cycles.glossy_bounces",
         "cycles.transmission_bounces",
-        "cycles.scattering_bounces",
+        "cycles.volume_bounces",
         "cycles.transparent_min_bounces",
         "cycles.transparent_max_bounces"
     ]
diff --git a/intern/cycles/blender/addon/properties.py b/intern/cycles/blender/addon/properties.py
index eba492c..2d4da6b 100644
--- a/intern/cycles/blender/addon/properties.py
+++ b/intern/cycles/blender/addon/properties.py
@@ -292,8 +292,8 @@ class CyclesRenderSettings(bpy.types.PropertyGroup):
                 min=0, max=1024,
                 default=12,
                 )
-        cls.scattering_bounces = IntProperty(
-                name="Scattering Bounces",
+        cls.volume_bounces = IntProperty(
+                name="Volume Bounces",
                 description="Maximum number of volumetric scattering events",
                 min=0, max=1024,
                 default=128,
diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py
index b2764ee..4b29942 100644
--- a/intern/cycles/blender/addon/ui.py
+++ b/intern/cycles/blender/addon/ui.py
@@ -193,7 +193,7 @@ class CyclesRender_PT_light_paths(CyclesButtonsPanel, Panel):
         sub.prop(cscene, "diffuse_bounces", text="Diffuse")
         sub.prop(cscene, "glossy_bounces", text="Glossy")
         sub.prop(cscene, "transmission_bounces", text="Transmission")
-        sub.prop(cscene, "scattering_bounces", text="Scattering")
+        sub.prop(cscene, "volume_bounces", text="Volume")
         
 class CyclesRender_PT_volumetrics(CyclesButtonsPanel, Panel):
     bl_label = "Volumetrics"
diff --git a/intern/cycles/blender/blender_shader.cpp b/intern/cycles/blender/blender_shader.cpp
index 161fc26..8c4e83b 100644
--- a/intern/cycles/blender/blender_shader.cpp
+++ b/intern/cycles/blender/blender_shader.cpp
@@ -422,8 +422,8 @@ static ShaderNode *add_node(Scene *scene, BL::BlendData b_data, BL::Scene b_scen
 	else if (b_node.is_a(&RNA_ShaderNodeAmbientOcclusion)) {
 		node = new AmbientOcclusionNode();
 	}
-	else if (b_node.is_a(&RNA_ShaderNodeVolumeIsotropic)) {
-		node = new IsotropicVolumeNode();
+	else if (b_node.is_a(&RNA_ShaderNodeVolumeScatter)) {
+		node = new ScatterVolumeNode();
 	}
 	else if (b_node.is_a(&RNA_ShaderNodeVolumeTransparent)) {
 		node = new TransparentVolumeNode();
diff --git a/intern/cycles/blender/blender_sync.cpp b/intern/cycles/blender/blender_sync.cpp
index 84c5873..80bf4a5 100644
--- a/intern/cycles/blender/blender_sync.cpp
+++ b/intern/cycles/blender/blender_sync.cpp
@@ -166,7 +166,7 @@ void BlenderSync::sync_integrator()
 	integrator->max_diffuse_bounce = get_int(cscene, "diffuse_bounces");
 	integrator->max_glossy_bounce = get_int(cscene, "glossy_bounces");
 	integrator->max_transmission_bounce = get_int(cscene, "transmission_bounces");
-	integrator->max_scattering_bounce = get_int(cscene, "scattering_bounces");
+	integrator->max_volume_bounce = get_int(cscene, "volume_bounces");
 
 	integrator->transparent_max_bounce = get_int(cscene, "transparent_max_bounces");
 	integrator->transparent_min_bounce = get_int(cscene, "transparent_min_bounces");
diff --git a/intern/cycles/kernel/kernel_path.h b/intern/cycles/kernel/kernel_path.h
index 6d0956a..af960f3 100644
--- a/intern/cycles/kernel/kernel_path.h
+++ b/intern/cycles/kernel/kernel_path.h
@@ -540,12 +540,12 @@ ccl_device float4 kernel_path_integrate(KernelGlobals *kg, RNG *rng, int sample,
 #endif
 
 #ifdef __VOLUME__
-		if(state.scattering_bounce < kernel_data.integrator.max_scattering_bounce) {
+		if(state.volume_bounce < kernel_data.integrator.max_volume_bounce) {
 			int vol_result = kernel_path_trace_volume(kg, rng, rng_offset, &rng_congruential, sample, &ray, &isect, isect.t,
 							&state, media_volume_shader, &throughput, &L, buffer, &ray_pdf, &volume_eval, &volume_pdf, &omega_cache);
 
 			if (vol_result == VOLUME_PATH_CONTINUE) {
-				state.scattering_bounce++;
+				state.volume_bounce++;
 				continue;
 			}
 			else if (vol_result == VOLUME_PATH_TERMINATED)
diff --git a/intern/cycles/kernel/kernel_path_state.h b/intern/cycles/kernel/kernel_path_state.h
index 4cbe5b5..dc39752 100644
--- a/intern/cycles/kernel/kernel_path_state.h
+++ b/intern/cycles/kernel/kernel_path_state.h
@@ -24,7 +24,7 @@ typedef struct PathState {
 	int glossy_bounce;
 	int transmission_bounce;
 	int transparent_bounce;
-	int scattering_bounce;
+	int volume_bounce;
 } PathState;
 
 ccl_device_inline void path_state_init(PathState *state)
@@ -35,7 +35,7 @@ ccl_device_inline void path_state_init(PathState *state)
 	state->glossy_bounce = 0;
 	state->transmission_bounce = 0;
 	state->transparent_bounce = 0;
-	state->scattering_bounce = 0;
+	state->volume_bounce = 0;
 }
 
 ccl_device_inline void path_state_next(KernelGlobals *kg, PathState *state, int label)
@@ -119,7 +119,7 @@ ccl_device_inline float path_state_terminate_probability(KernelGlobals *kg, Path
 		   (state->diffuse_bounce >= kernel_data.integrator.max_diffuse_bounce) ||
 		   (state->glossy_bounce >= kernel_data.integrator.max_glossy_bounce) ||
 		   (state->transmission_bounce >= kernel_data.integrator.max_transmission_bounce) ||
-		   (state->scattering_bounce >= kernel_data.integrator.max_scattering_bounce))
+		   (state->volume_bounce >= kernel_data.integrator.max_volume_bounce))
 		{
 			return 0.0f;
 		}
diff --git a/intern/cycles/kernel/kernel_types.h b/intern/cycles/kernel/kernel_types.h
index d62fd3e..b8e4efe 100644
--- a/intern/cycles/kernel/kernel_types.h
+++ b/intern/cycles/kernel/kernel_types.h
@@ -749,7 +749,7 @@ typedef struct KernelIntegrator {
 	int max_diffuse_bounce;
 	int max_glossy_bounce;
 	int max_transmission_bounce;
-	int max_scattering_bounce;
+	int max_volume_bounce;
 
 	/* transparent */
 	int transparent_min_bounce;
diff --git a/intern/cycles/kernel/kernel_volume.h b/intern/cycles/kernel/kernel_volume.h
index ff292db..1b131ff 100644
--- a/intern/cycles/kernel/kernel_volume.h
+++ b/intern/cycles/kernel/kernel_volume.h
@@ -454,7 +454,7 @@ ccl_device int kernel_volumetric_homogeneous_sampler(KernelGlobals *kg, float ra
 	}
 
 #if 1
-	if (*omega_cache != NULL) {
+	if (omega_cache) {
 		if(*omega_cache == 0.0f) {
 			*omega_cache =  get_sigma_sample(kg, sd, randp, path_flag, ray.P);
 		}
@@ -528,7 +528,7 @@ ccl_device int kernel_volumetric_equiangular_sampler(KernelGlobals *kg, RNG *rng
 	if(ls.pdf == 0.0f)
 		return 0;
 
-	if (*omega_cache != NULL) {
+	if (omega_cache) {
 		if(*omega_cache == 0.0f) {
 			*omega_cache =  get_sigma_sample(kg, sd, randp, path_flag, ray.P);
 		}
diff --git a/intern/cycles/kernel/shaders/CMakeLists.txt b/intern/cycles/kernel/shaders/CMakeLists.txt
index d78a862..1cc2eb8 100644
--- a/intern/cycles/kernel/shaders/CMakeLists.txt
+++ b/intern/cycles/kernel/shaders/CMakeLists.txt
@@ -29,7 +29,7 @@ set(SRC_OSL
 	node_glossy_bsdf.osl
 	node_gradient_texture.osl
 	node_hair_info.osl
-	node_henyey_greenstein_volume.osl
+	node_scatter_volume.osl
 	node_holdout.osl
 	node_hsv.osl
 	node_image_texture.osl
diff --git a/intern/cycles/kernel/shaders/node_henyey_greenstein_volume.osl b/intern/cycles/kernel/shaders/node_scatter_volume.osl
similarity index 86%
rename from intern/cycles/kernel/shaders/node_henyey_greenstein_volume.osl
rename to intern/cycles/kernel/shaders/node_scatter_volume.osl
index 3f367e9..12f2cb2 100644
--- a/intern/cycles/kernel/shaders/node_henyey_greenstein_volume.osl
+++ b/intern/cycles/kernel/shaders/node_scatter_volume.osl
@@ -16,12 +16,12 @@
 
 #include "stdosl.h"
 
-shader node_henyey_greenstein_volume(
+shader node_scatter_volume(
 	color Color = color(0.8, 0.8, 0.8),
 	float Density = 1.0,
-	float g = 0.0,
+	float Anisotropy = 0.0,
 	normal Normal = N,
 	output closure color Volume = 0)
 {
-	Volume = Color * henyey_greenstein(Normal, Density, g);
+	Volume = Color * henyey_greenstein(Normal, Density, Anisotropy);
 }
diff --git a/intern/cycles/render/integrator.cpp b/intern/cycles/render/integrator.cpp
index 42e8a9e..efeb4d4 100644
--- a/intern/cycles/render/integrator.cpp
+++ b/intern/cycles/render/integrator.cpp
@@ -33,7 +33,7 @@ Integrator::Integrator()
 	max_diffuse_bounce = max_bounce;
 	max_glossy_bounce = max_bounce;
 	max_transmission_bounce = max_bounce;
-	max_scattering_bounce = max_bounce;
+	max_volume_bounce = max_bounce;
 	probalistic_termination = true;
 
 	transparent_min_bounce = min_bounce;
@@ -94,7 +94,7 @@ void Integrator::device_update(Device *device, DeviceScene *dscene, Scene *scene
 	kintegrator->max_diffuse_bounce = max_diffuse_bounce + 1;
 	kintegrator->max_glossy_bounce = max_glossy_bounce + 1;
 	kintegrator->max_transmission_bounce = max_transmission_bounce + 1;
-	kintegrator->max_scattering_bounce = max_scattering_bounce + 1;
+	kintegrator->max_volume_bounce = max_volume_bounce + 1;
 
 	kintegrator->transparent_max_bounce = transparent_max_bounce + 1;
 	if(transparent_probalistic)
@@ -172,7 +172,7 @@ bool Integrator::modified(const Integrator& integrator)
 		max_diffuse_bounce == integrator.max_diffuse_bounce &&
 		max_glossy_bounce == integrator.max_glossy_bounce &&
 		max_transmission_bounce == integrator.max_transmission_bounce &&
-		max_scattering_bounce == integrator.max_scattering_bounce &&
+		max_volume_bounce == integrat

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list