[Bf-blender-cvs] [9bea4db] soc-2013-dingto: Cycles Volume: remove use volumetrics option.

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


Commit: 9bea4db0d85f87a6518d6902221e4a5d86b702c0
Author: Brecht Van Lommel
Date:   Mon Dec 2 17:53:27 2013 +0100
http://developer.blender.org/rB9bea4db0d85f87a6518d6902221e4a5d86b702c0

Cycles Volume: remove use volumetrics option.

In general it should not be needed to turn on such features, cycles should
auto-detect if there is a volume shader and just use it. It would be useful
at some point to have global options to turn off effects, but we better group
those options somewhere then.

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

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_sync.cpp
M	intern/cycles/kernel/kernel_emission.h
M	intern/cycles/kernel/kernel_types.h
M	intern/cycles/kernel/kernel_volume.h
M	intern/cycles/render/integrator.cpp
M	intern/cycles/render/integrator.h
M	intern/cycles/render/shader.cpp
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

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

diff --git a/intern/cycles/blender/addon/presets.py b/intern/cycles/blender/addon/presets.py
index a9bd0a9..f1a62e8 100644
--- a/intern/cycles/blender/addon/presets.py
+++ b/intern/cycles/blender/addon/presets.py
@@ -34,7 +34,6 @@ class AddPresetIntegrator(AddPresetBase, Operator):
         "cycles.max_bounces",
         "cycles.min_bounces",
         "cycles.no_caustics",
-        "cycles.use_volumetric",
         "cycles.diffuse_bounces",
         "cycles.glossy_bounces",
         "cycles.transmission_bounces",
diff --git a/intern/cycles/blender/addon/properties.py b/intern/cycles/blender/addon/properties.py
index 2d4da6b..860d996 100644
--- a/intern/cycles/blender/addon/properties.py
+++ b/intern/cycles/blender/addon/properties.py
@@ -426,19 +426,7 @@ class CyclesRenderSettings(bpy.types.PropertyGroup):
                             "but time can be saved by manually stopping the render when the noise is low enough)",
                 default=False,
                 )
-        cls.use_volumetric = BoolProperty(
-                name="Use Volumetric",
-                description="Turn on volumetric rendering",
-                default=False
-                )
 
-        cls.volume_density_factor = FloatProperty(
-                name="Density Factor",
-                description="global attenuation coefficient (material volume density) multiplyer",
-                default=1.0,
-                min=0.0, max=100000.0
-                )
-        
         cls.volume_sampling_algorithm = EnumProperty(
                 name="Sampling algorithm",
                 description="Choose volumetric sampling algorithm for inhomogeneous volumes",
diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py
index 4b29942..585a2e3 100644
--- a/intern/cycles/blender/addon/ui.py
+++ b/intern/cycles/blender/addon/ui.py
@@ -195,32 +195,23 @@ class CyclesRender_PT_light_paths(CyclesButtonsPanel, Panel):
         sub.prop(cscene, "transmission_bounces", text="Transmission")
         sub.prop(cscene, "volume_bounces", text="Volume")
         
-class CyclesRender_PT_volumetrics(CyclesButtonsPanel, Panel):
-    bl_label = "Volumetrics"
+class CyclesRender_PT_volume_sampling(CyclesButtonsPanel, Panel):
+    bl_label = "Volume Sampling"
     bl_options = {'DEFAULT_CLOSED'}
     
-    def draw_header(self, context):
-        rd = context.scene.cycles
-
-        self.layout.prop(rd, "use_volumetric", text="")
-
     def draw(self, context):
         layout = self.layout
 
         scene = context.scene
         cscene = scene.cycles
         
-        layout.active = cscene.use_volumetric
-        
         col = layout.column()
-        col.label(text="Sampling:")
         col.prop(cscene, "volume_sampling_algorithm", text="Inhomogeneous")
         col.prop(cscene, "volume_homogeneous_sampling", text="Homogeneous")
         
         layout.separator()
         
         col = layout.column()
-        col.prop(cscene, "volume_density_factor")
         row = col.row()
         row.prop(cscene, "volume_max_iterations")
         row.prop(cscene, "volume_cell_step")
diff --git a/intern/cycles/blender/blender_sync.cpp b/intern/cycles/blender/blender_sync.cpp
index 80bf4a5..5361cb9 100644
--- a/intern/cycles/blender/blender_sync.cpp
+++ b/intern/cycles/blender/blender_sync.cpp
@@ -173,8 +173,6 @@ void BlenderSync::sync_integrator()
 	integrator->transparent_shadows = get_boolean(cscene, "use_transparent_shadows");
 
 	integrator->no_caustics = get_boolean(cscene, "no_caustics");
-	integrator->use_volumetric = get_boolean(cscene, "use_volumetric");
-	integrator->volume_density_factor = get_float(cscene, "volume_density_factor");
 	integrator->volume_sampling_algorithm = get_enum(cscene, "volume_sampling_algorithm");
 	integrator->volume_homogeneous_sampling = get_enum(cscene, "volume_homogeneous_sampling");
 	integrator->volume_max_iterations = get_int(cscene, "volume_max_iterations");
diff --git a/intern/cycles/kernel/kernel_emission.h b/intern/cycles/kernel/kernel_emission.h
index 2a75a3d..7259deb 100644
--- a/intern/cycles/kernel/kernel_emission.h
+++ b/intern/cycles/kernel/kernel_emission.h
@@ -105,7 +105,7 @@ ccl_device float get_sigma_sample_(KernelGlobals *kg, ShaderData *sd, float rand
 	float v = sd->closure.data0;
 #endif
 
-	return sigma_from_value_(v, kernel_data.integrator.volume_density_factor);
+	return sigma_from_value_(v, 1.0f);
 }
 #endif
 
@@ -155,7 +155,7 @@ ccl_device_noinline bool direct_emission(KernelGlobals *kg, ShaderData *sd, int
 		// W = post_hit_bsdf_pdf   * 1.0f/ (4.0f * M_PI_F * t*t) *   pre_hit_bsdf_pdf
 
 		float volume_pdf = 1.0f;
-		if(( kernel_data.integrator.use_volumetric ) && (sd->flag & SD_HAS_VOLUME) && (sd->flag & SD_HOMOGENEOUS_VOLUME))
+		if(( kernel_data.integrator.use_volumetrics ) && (sd->flag & SD_HAS_VOLUME) && (sd->flag & SD_HOMOGENEOUS_VOLUME))
 		{
 			float sigma = get_sigma_sample_(kg, sd, 0, 0, make_float3(0.0f, 0.0f, 0.0f));
 			volume_pdf = sigma * exp(-ls.t * sigma); 	
diff --git a/intern/cycles/kernel/kernel_types.h b/intern/cycles/kernel/kernel_types.h
index b8e4efe..3996950 100644
--- a/intern/cycles/kernel/kernel_types.h
+++ b/intern/cycles/kernel/kernel_types.h
@@ -761,8 +761,7 @@ typedef struct KernelIntegrator {
 	float filter_glossy;
 
 	/* volumetric */
-	int use_volumetric;
-	float volume_density_factor;
+	int use_volumetrics;
 	int volume_sampling_algorithm; // when homogeneous = false, 0 = cell marching, 1 = woodcock delta tracking
 	int volume_homogeneous_sampling;
 	int volume_max_iterations;
diff --git a/intern/cycles/kernel/kernel_volume.h b/intern/cycles/kernel/kernel_volume.h
index 1b131ff..1a6de55 100644
--- a/intern/cycles/kernel/kernel_volume.h
+++ b/intern/cycles/kernel/kernel_volume.h
@@ -68,7 +68,7 @@ ccl_device float get_sigma_sample(KernelGlobals *kg, ShaderData *sd, float randv
        shader_eval_volume(kg, sd, randv, path_flag, SHADER_CONTEXT_MAIN);
        float v = sd->closure.data0;
 #endif
-       return sigma_from_value(v, kernel_data.integrator.volume_density_factor);
+       return sigma_from_value(v, 1.0f);
 }
 
 ccl_device  float3 kernel_volume_get_final_homogeneous_extinction_tsd(KernelGlobals *kg, ShaderData *sd, float trandp, Ray ray, int path_flag)
@@ -190,7 +190,7 @@ ccl_device int get_media_volume_shader(KernelGlobals *kg, float3 P, int bounce)
 {
 	/* check all objects that intersect random ray from given point, assume we have perfect geometry (all meshes closed, correct faces direct
 	 we can calculate current volume material, assuming background as start, and reassign when we cross face */
-	if(!kernel_data.integrator.use_volumetric)
+	if(!kernel_data.integrator.use_volumetrics)
 		return kernel_data.background.shader;
 
 	Ray ray;
@@ -242,7 +242,7 @@ ccl_device int kernel_volumetric_woodcock_sampler(KernelGlobals *kg, RNG *rng_co
 
 	int max_iter = kernel_data.integrator.volume_max_iterations;
 	//float max_prob = kernel_data.integrator.volume_woodcock_max_density;
-	//float max_sigma_t = sigma_from_value(max_prob, kernel_data.integrator.volume_density_factor);
+	//float max_sigma_t = sigma_from_value(max_prob, 1.0f);
 	float max_sigma_t = 0.0f;
 	
 	float step = end / 10.0f; // uses 10 segments for maximum - needs parameter
@@ -305,7 +305,7 @@ ccl_device int kernel_volumetric_woodcock_sampler2(KernelGlobals *kg, RNG *rng_c
 
 	int max_iter = kernel_data.integrator.volume_max_iterations;
 	float max_prob = kernel_data.integrator.volume_woodcock_max_density;
-	float max_sigma_t = sigma_from_value(max_prob, kernel_data.integrator.volume_density_factor);
+	float max_sigma_t = sigma_from_value(max_prob, 1.0f);
 	
 	int i = 0;
 	float t = 0;
@@ -620,7 +620,7 @@ ccl_device float3 kernel_volume_get_shadow_attenuation(KernelGlobals *kg, RNG *r
 	float3 attenuation = make_float3(1.0f, 1.0f, 1.0f);
 	*volume_pdf = 1.0f;
 
-	if(!kernel_data.integrator.use_volumetric)
+	if(!kernel_data.integrator.use_volumetrics)
 		return attenuation;
 
 	ShaderData tsd;
@@ -833,7 +833,7 @@ ccl_device int kernel_path_trace_volume(KernelGlobals *kg, RNG *rng, int rng_off
 	*volume_pdf = 1.0f;
 	*volume_eval = make_float3( *volume_pdf, *volume_pdf, *volume_pdf);
 
-	if(!kernel_data.integrator.use_volumetric)
+	if(!kernel_data.integrator.use_volumetrics)
 		return VOLUME_PATH_PARTICLE_MISS;
 
 	ShaderData vsd;
diff --git a/intern/cycles/render/integrator.cpp b/intern/cycles/render/integrator.cpp
index efeb4d4..56aac7b 100644
--- a/intern/cycles/render/integrator.cpp
+++ b/intern/cycles/render/integrator.cpp
@@ -42,8 +42,6 @@ Integrator::Integrator()
 	transparent_shadows = false;
 
 	no_caustics = false;
-	use_volumetric = false;
-	volume_density_factor = M_E/10;
 	volume_sampling_algorithm = 0;
 	volume_homogeneous_sampling = 0;
 	
@@ -105,8 +103,6 @@ void Integrator::device_update(Device *device, DeviceScene *dscene, Scene *scene
 	kintegrator->transparent_shadows = transparent_shadows;
 
 	kintegrator->no_caustics = no_caustics;
-	kintegrator->use_volumetric = use_volumetric;
-	kintegrator->volume_density_factor = volume_density_factor;
 	kintegrator->volume_sampling_algorithm = volume_sampling_algorithm;
 	kintegrator->volume_homogeneous_sampling = volume_homogeneous_sampling;
 	kintegrator->volume_max_iterations = volume_max_iterations;
@@ -181,8 +177,6 @@ bool Integrator::modified(const Integrator& integrator)
 		no_caustics == integrator.no_caustics &&
 		filter_glossy == integrator.filter_glossy &&
 		layer_flag == integrator.layer_flag &&
-		volume_density_factor == integrator.volume_density_factor &&
-		use_volumetric == integrator.use_volumetric &&
 		volume_sampling_algorithm == integrator.volume_sampling_algorithm &&
 		volume_homogeneous_sampling == integrator.volume_homogeneous_sampling &&
 		volume_max_iterations == integrator.volume_max_iterations &&
diff --git a/intern/cycles/render/integrator.h b/intern/cycles/render/integrator.h
index 997a491..7279098 100644
--- a/intern/cycles/render/integrator.h
+++ b/intern/cycles/render/integrator.h
@@ -42,8 +42,6 @@ public:
 	bool transparent_shadows;
 
 	bool no_caustics;
-	bool use_volumetric;
-	float volume_density_factor;
 
 	int volume_sampling_algorithm; // when homogeneous = false, 0 = cell marching, 1 = woodcock

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list