[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [59807] branches/soc-2013-cycles_mblur: Merged trunk into branch.

Gavin Howard gavin.d.howard at gmail.com
Wed Sep 4 20:14:40 CEST 2013


Revision: 59807
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=59807
Author:   gdh
Date:     2013-09-04 18:14:40 +0000 (Wed, 04 Sep 2013)
Log Message:
-----------
Merged trunk into branch. Includes r59727 to r59806.

Revision Links:
--------------
    http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=59727
    http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=59806

Modified Paths:
--------------
    branches/soc-2013-cycles_mblur/intern/cycles/blender/blender_sync.cpp
    branches/soc-2013-cycles_mblur/intern/cycles/device/device_memory.h
    branches/soc-2013-cycles_mblur/intern/cycles/kernel/closure/bsdf.h
    branches/soc-2013-cycles_mblur/intern/cycles/kernel/closure/bssrdf.h
    branches/soc-2013-cycles_mblur/intern/cycles/kernel/kernel_path.h
    branches/soc-2013-cycles_mblur/intern/cycles/kernel/kernel_subsurface.h
    branches/soc-2013-cycles_mblur/intern/cycles/kernel/kernel_types.h
    branches/soc-2013-cycles_mblur/intern/cycles/kernel/osl/osl_bssrdf.cpp
    branches/soc-2013-cycles_mblur/intern/cycles/kernel/osl/osl_bssrdf.h
    branches/soc-2013-cycles_mblur/intern/cycles/kernel/osl/osl_closures.cpp
    branches/soc-2013-cycles_mblur/intern/cycles/kernel/osl/osl_closures.h
    branches/soc-2013-cycles_mblur/intern/cycles/kernel/osl/osl_services.cpp
    branches/soc-2013-cycles_mblur/intern/cycles/kernel/osl/osl_shader.cpp
    branches/soc-2013-cycles_mblur/intern/cycles/kernel/shaders/node_subsurface_scattering.osl
    branches/soc-2013-cycles_mblur/intern/cycles/kernel/shaders/stdosl.h
    branches/soc-2013-cycles_mblur/intern/cycles/kernel/svm/svm_closure.h
    branches/soc-2013-cycles_mblur/intern/cycles/render/camera.cpp
    branches/soc-2013-cycles_mblur/intern/cycles/render/mesh.cpp
    branches/soc-2013-cycles_mblur/intern/cycles/render/nodes.cpp
    branches/soc-2013-cycles_mblur/intern/cycles/render/nodes.h
    branches/soc-2013-cycles_mblur/intern/cycles/render/object.cpp
    branches/soc-2013-cycles_mblur/intern/cycles/render/scene.h
    branches/soc-2013-cycles_mblur/intern/cycles/render/session.cpp
    branches/soc-2013-cycles_mblur/intern/cycles/render/session.h
    branches/soc-2013-cycles_mblur/intern/cycles/render/svm.cpp
    branches/soc-2013-cycles_mblur/intern/cycles/render/tile.cpp
    branches/soc-2013-cycles_mblur/intern/cycles/render/tile.h
    branches/soc-2013-cycles_mblur/intern/cycles/util/util_task.cpp
    branches/soc-2013-cycles_mblur/intern/elbeem/CMakeLists.txt
    branches/soc-2013-cycles_mblur/intern/ghost/intern/GHOST_EventManager.cpp
    branches/soc-2013-cycles_mblur/intern/ghost/intern/GHOST_WindowWin32.cpp
    branches/soc-2013-cycles_mblur/intern/guardedalloc/intern/mallocn.c
    branches/soc-2013-cycles_mblur/release/scripts/startup/bl_ui/properties_physics_common.py
    branches/soc-2013-cycles_mblur/release/scripts/startup/bl_ui/space_dopesheet.py
    branches/soc-2013-cycles_mblur/release/scripts/startup/bl_ui/space_node.py
    branches/soc-2013-cycles_mblur/source/CMakeLists.txt
    branches/soc-2013-cycles_mblur/source/blender/blenkernel/BKE_DerivedMesh.h
    branches/soc-2013-cycles_mblur/source/blender/blenkernel/BKE_mesh.h
    branches/soc-2013-cycles_mblur/source/blender/blenkernel/BKE_pointcache.h
    branches/soc-2013-cycles_mblur/source/blender/blenkernel/intern/DerivedMesh.c
    branches/soc-2013-cycles_mblur/source/blender/blenkernel/intern/bpath.c
    branches/soc-2013-cycles_mblur/source/blender/blenkernel/intern/collision.c
    branches/soc-2013-cycles_mblur/source/blender/blenkernel/intern/constraint.c
    branches/soc-2013-cycles_mblur/source/blender/blenkernel/intern/editmesh_bvh.c
    branches/soc-2013-cycles_mblur/source/blender/blenkernel/intern/image.c
    branches/soc-2013-cycles_mblur/source/blender/blenkernel/intern/mesh.c
    branches/soc-2013-cycles_mblur/source/blender/blenkernel/intern/mesh_validate.c
    branches/soc-2013-cycles_mblur/source/blender/blenkernel/intern/pointcache.c
    branches/soc-2013-cycles_mblur/source/blender/blenkernel/intern/sequencer.c
    branches/soc-2013-cycles_mblur/source/blender/blenkernel/intern/subsurf_ccg.c
    branches/soc-2013-cycles_mblur/source/blender/blenkernel/intern/tracking.c
    branches/soc-2013-cycles_mblur/source/blender/blenlib/BLI_edgehash.h
    branches/soc-2013-cycles_mblur/source/blender/blenlib/BLI_strict_flags.h
    branches/soc-2013-cycles_mblur/source/blender/blenlib/CMakeLists.txt
    branches/soc-2013-cycles_mblur/source/blender/blenlib/PIL_time.h
    branches/soc-2013-cycles_mblur/source/blender/blenlib/intern/BLI_ghash.c
    branches/soc-2013-cycles_mblur/source/blender/blenlib/intern/BLI_mempool.c
    branches/soc-2013-cycles_mblur/source/blender/blenlib/intern/path_util.c
    branches/soc-2013-cycles_mblur/source/blender/blenloader/intern/readfile.c
    branches/soc-2013-cycles_mblur/source/blender/bmesh/intern/bmesh_opdefines.c
    branches/soc-2013-cycles_mblur/source/blender/bmesh/intern/bmesh_operator_api.h
    branches/soc-2013-cycles_mblur/source/blender/bmesh/intern/bmesh_operators.c
    branches/soc-2013-cycles_mblur/source/blender/bmesh/operators/bmo_beautify.c
    branches/soc-2013-cycles_mblur/source/blender/bmesh/operators/bmo_dupe.c
    branches/soc-2013-cycles_mblur/source/blender/bmesh/tools/bmesh_bisect_plane.c
    branches/soc-2013-cycles_mblur/source/blender/editors/animation/anim_channels_defines.c
    branches/soc-2013-cycles_mblur/source/blender/editors/animation/anim_filter.c
    branches/soc-2013-cycles_mblur/source/blender/editors/animation/drivers.c
    branches/soc-2013-cycles_mblur/source/blender/editors/animation/keyframing.c
    branches/soc-2013-cycles_mblur/source/blender/editors/include/ED_keyframing.h
    branches/soc-2013-cycles_mblur/source/blender/editors/include/ED_screen_types.h
    branches/soc-2013-cycles_mblur/source/blender/editors/interface/interface.c
    branches/soc-2013-cycles_mblur/source/blender/editors/interface/interface_layout.c
    branches/soc-2013-cycles_mblur/source/blender/editors/mesh/editmesh_knife.c
    branches/soc-2013-cycles_mblur/source/blender/editors/mesh/editmesh_tools.c
    branches/soc-2013-cycles_mblur/source/blender/editors/object/object_transform.c
    branches/soc-2013-cycles_mblur/source/blender/editors/render/render_internal.c
    branches/soc-2013-cycles_mblur/source/blender/editors/screen/area.c
    branches/soc-2013-cycles_mblur/source/blender/editors/screen/screen_edit.c
    branches/soc-2013-cycles_mblur/source/blender/editors/screen/screen_ops.c
    branches/soc-2013-cycles_mblur/source/blender/editors/sculpt_paint/paint_vertex.c
    branches/soc-2013-cycles_mblur/source/blender/editors/space_graph/graph_edit.c
    branches/soc-2013-cycles_mblur/source/blender/editors/space_graph/graph_select.c
    branches/soc-2013-cycles_mblur/source/blender/editors/space_outliner/outliner_draw.c
    branches/soc-2013-cycles_mblur/source/blender/editors/space_outliner/outliner_tools.c
    branches/soc-2013-cycles_mblur/source/blender/editors/space_outliner/outliner_tree.c
    branches/soc-2013-cycles_mblur/source/blender/editors/space_sequencer/sequencer_view.c
    branches/soc-2013-cycles_mblur/source/blender/editors/space_sequencer/space_sequencer.c
    branches/soc-2013-cycles_mblur/source/blender/editors/space_view3d/drawvolume.c
    branches/soc-2013-cycles_mblur/source/blender/editors/space_view3d/view3d_fly.c
    branches/soc-2013-cycles_mblur/source/blender/gpu/shaders/gpu_shader_material.glsl
    branches/soc-2013-cycles_mblur/source/blender/imbuf/IMB_colormanagement.h
    branches/soc-2013-cycles_mblur/source/blender/imbuf/intern/colormanagement.c
    branches/soc-2013-cycles_mblur/source/blender/makesrna/intern/rna_constraint.c
    branches/soc-2013-cycles_mblur/source/blender/makesrna/intern/rna_define.c
    branches/soc-2013-cycles_mblur/source/blender/makesrna/intern/rna_mesh_api.c
    branches/soc-2013-cycles_mblur/source/blender/makesrna/intern/rna_modifier.c
    branches/soc-2013-cycles_mblur/source/blender/makesrna/intern/rna_nodetree.c
    branches/soc-2013-cycles_mblur/source/blender/makesrna/intern/rna_object_force.c
    branches/soc-2013-cycles_mblur/source/blender/makesrna/intern/rna_scene.c
    branches/soc-2013-cycles_mblur/source/blender/modifiers/intern/MOD_array.c
    branches/soc-2013-cycles_mblur/source/blender/modifiers/intern/MOD_decimate.c
    branches/soc-2013-cycles_mblur/source/blender/modifiers/intern/MOD_weightvgproximity.c
    branches/soc-2013-cycles_mblur/source/blender/nodes/NOD_composite.h
    branches/soc-2013-cycles_mblur/source/blender/nodes/NOD_shader.h
    branches/soc-2013-cycles_mblur/source/blender/nodes/NOD_texture.h
    branches/soc-2013-cycles_mblur/source/blender/nodes/intern/node_util.c
    branches/soc-2013-cycles_mblur/source/blender/nodes/shader/node_shader_util.c
    branches/soc-2013-cycles_mblur/source/blender/nodes/shader/nodes/node_shader_subsurface_scattering.c
    branches/soc-2013-cycles_mblur/source/blender/python/intern/bpy_interface.c
    branches/soc-2013-cycles_mblur/source/blender/python/intern/bpy_rna_anim.c
    branches/soc-2013-cycles_mblur/source/blender/render/intern/source/rendercore.c
    branches/soc-2013-cycles_mblur/source/blender/render/intern/source/shadeoutput.c
    branches/soc-2013-cycles_mblur/source/blender/render/intern/source/zbuf.c
    branches/soc-2013-cycles_mblur/source/blender/windowmanager/WM_api.h
    branches/soc-2013-cycles_mblur/source/blender/windowmanager/intern/wm_event_system.c

Added Paths:
-----------
    branches/soc-2013-cycles_mblur/source/blender/blenlib/PIL_time_utildefines.h

Property Changed:
----------------
    branches/soc-2013-cycles_mblur/
    branches/soc-2013-cycles_mblur/source/blender/editors/interface/interface.c
    branches/soc-2013-cycles_mblur/source/blender/editors/space_outliner/


Property changes on: branches/soc-2013-cycles_mblur
___________________________________________________________________
Modified: svn:mergeinfo
   - /branches/ge_dev:58091-58422
/branches/ge_harmony:42255,42279-42282,42286,42302,42338,42349,42616,42620,42698-42699,42739,42753,42773-42774,42832,44568,44597-44598,44793-44794
/branches/soc-2011-cucumber:37517,38166-38167,38177,38179-38180,38187,38242,38384,38387,38403-38404,38407,38968,38970,38973,39045,40845,42997-42998,43439
/branches/soc-2011-tomato:42376,42378-42379,42383,42385,42395,42397-42400,42407,42411,42418,42443-42444,42446,42467,42472,42486,42650-42652,42654-42655,42709-42710,42733-42734,42801,43872,44130,44141,44147-44149,44151-44152,44229-44230,45623-45625,46037,48089,48092,48551-48552,48679,48790,48792-48793,49076,49087,49292,49294,49466,49894,50052,50126,52854-52856,54573,58822,58989
/branches/soc-2013-depsgraph_mt:57516,57900,57939-57940,57945,57958-57961,58151,58155-58156,58169,58277-58279,58282-58283,58711,58787,58789,58796,59086-59087,59163,59166,59170,59181,59259-59260
/branches/soc-2013-dingto:57424,57487,57507,57525,57599,57670,57918-57919,57981,58091,58245,58253,58587,58772,58774-58775,58828,58835,59032,59214,59220,59251,59601
/tags/blender-2.67b-release/blender:57122
/trunk/blender:57388-59726
   + /branches/ge_dev:58091-58422
/branches/ge_harmony:42255,42279-42282,42286,42302,42338,42349,42616,42620,42698-42699,42739,42753,42773-42774,42832,44568,44597-44598,44793-44794
/branches/soc-2011-cucumber:37517,38166-38167,38177,38179-38180,38187,38242,38384,38387,38403-38404,38407,38968,38970,38973,39045,40845,42997-42998,43439
/branches/soc-2011-tomato:42376,42378-42379,42383,42385,42395,42397-42400,42407,42411,42418,42443-42444,42446,42467,42472,42486,42650-42652,42654-42655,42709-42710,42733-42734,42801,43872,44130,44141,44147-44149,44151-44152,44229-44230,45623-45625,46037,48089,48092,48551-48552,48679,48790,48792-48793,49076,49087,49292,49294,49466,49894,50052,50126,52854-52856,54573,58822,58989
/branches/soc-2013-depsgraph_mt:57516,57900,57939-57940,57945,57958-57961,58151,58155-58156,58169,58277-58279,58282-58283,58711,58787,58789,58796,59086-59087,59163,59166,59170,59181,59259-59260
/branches/soc-2013-dingto:57424,57487,57507,57525,57599,57670,57918-57919,57981,58091,58245,58253,58587,58772,58774-58775,58828,58835,59032,59214,59220,59251,59601
/tags/blender-2.67b-release/blender:57122
/trunk/blender:57388-59806

Modified: branches/soc-2013-cycles_mblur/intern/cycles/blender/blender_sync.cpp
===================================================================
--- branches/soc-2013-cycles_mblur/intern/cycles/blender/blender_sync.cpp	2013-09-04 16:24:58 UTC (rev 59806)
+++ branches/soc-2013-cycles_mblur/intern/cycles/blender/blender_sync.cpp	2013-09-04 18:14:40 UTC (rev 59807)
@@ -460,7 +460,7 @@
 		params.tile_size = make_int2(tile_x, tile_y);
 	}
 	
-	params.tile_order = RNA_enum_get(&cscene, "tile_order");
+	params.tile_order = (TileOrder)RNA_enum_get(&cscene, "tile_order");
 
 	params.start_resolution = get_int(cscene, "preview_start_resolution");
 

Modified: branches/soc-2013-cycles_mblur/intern/cycles/device/device_memory.h
===================================================================
--- branches/soc-2013-cycles_mblur/intern/cycles/device/device_memory.h	2013-09-04 16:24:58 UTC (rev 59806)
+++ branches/soc-2013-cycles_mblur/intern/cycles/device/device_memory.h	2013-09-04 18:14:40 UTC (rev 59807)
@@ -254,7 +254,6 @@
 
 private:
 	array<T> data;
-	bool referenced;
 };
 
 CCL_NAMESPACE_END

Modified: branches/soc-2013-cycles_mblur/intern/cycles/kernel/closure/bsdf.h
===================================================================
--- branches/soc-2013-cycles_mblur/intern/cycles/kernel/closure/bsdf.h	2013-09-04 16:24:58 UTC (rev 59806)
+++ branches/soc-2013-cycles_mblur/intern/cycles/kernel/closure/bsdf.h	2013-09-04 18:14:40 UTC (rev 59807)
@@ -28,7 +28,9 @@
 #endif
 #include "../closure/bsdf_westin.h"
 #include "../closure/bsdf_toon.h"
+#ifdef __SUBSURFACE__
 #include "../closure/bssrdf.h"
+#endif
 
 CCL_NAMESPACE_BEGIN
 

Modified: branches/soc-2013-cycles_mblur/intern/cycles/kernel/closure/bssrdf.h
===================================================================
--- branches/soc-2013-cycles_mblur/intern/cycles/kernel/closure/bssrdf.h	2013-09-04 16:24:58 UTC (rev 59806)
+++ branches/soc-2013-cycles_mblur/intern/cycles/kernel/closure/bssrdf.h	2013-09-04 18:14:40 UTC (rev 59807)
@@ -31,6 +31,7 @@
 	}
 	else {
 		sc->data1 = clamp(sc->data1, 0.0f, 1.0f); /* texture blur */
+		sc->T.x = clamp(sc->T.x, 0.0f, 1.0f); /* sharpness */
 		sc->type = type;
 
 		return SD_BSDF|SD_BSDF_HAS_EVAL|SD_BSSRDF;
@@ -95,17 +96,49 @@
 
 __device float bssrdf_cubic_eval(ShaderClosure *sc, float r)
 {
-	const float Rm = sc->data0;
+	const float sharpness = sc->T.x;
 
-	if(r >= Rm)
-		return 0.0f;
-	
-	/* integrate (2*pi*r * 10*(R - r)^3)/(pi * R^5) from 0 to R = 1 */
-	const float Rm5 = (Rm*Rm) * (Rm*Rm) * Rm;
-	const float f = Rm - min(r, Rm);
-	const float f3 = f*f*f;
+	if(sharpness == 0.0f) {
+		const float Rm = sc->data0;
 
-	return (f3 * 10.0f) / (Rm5 * M_PI_F);
+		if(r >= Rm)
+			return 0.0f;
+
+		/* integrate (2*pi*r * 10*(R - r)^3)/(pi * R^5) from 0 to R = 1 */
+		const float Rm5 = (Rm*Rm) * (Rm*Rm) * Rm;
+		const float f = Rm - r;
+		const float num = f*f*f;
+
+		return (10.0f * num) / (Rm5 * M_PI_F);
+
+	}
+	else {
+		float Rm = sc->data0*(1.0f + sharpness);
+
+		if(r >= Rm)
+			return 0.0f;
+
+		/* custom variation with extra sharpness, to match the previous code */
+		const float y = 1.0f/(1.0f + sharpness);
+		float Rmy, ry, ryinv;
+
+		if(sharpness == 1.0f) {
+			Rmy = sqrtf(Rm);
+			ry = sqrtf(r);
+			ryinv = (ry > 0.0f)? 1.0f/ry: 0.0f;
+		}
+		else {
+			Rmy = powf(Rm, y);
+			ry = powf(r, y);
+			ryinv = (r > 0.0f)? powf(r, 2.0f*y - 2.0f): 0.0f;
+		}
+
+		const float Rmy5 = (Rmy*Rmy) * (Rmy*Rmy) * Rmy;
+		const float f = Rmy - ry;
+		const float num = f*(f*f)*(y*ryinv);
+
+		return (10.0f * num) / (Rmy5 * M_PI_F);
+	}
 }
 
 __device float bssrdf_cubic_pdf(ShaderClosure *sc, float r)
@@ -143,9 +176,16 @@
 
 __device void bssrdf_cubic_sample(ShaderClosure *sc, float xi, float *r, float *h)
 {
-	const float Rm = sc->data0;
-	const float r_ = bssrdf_cubic_quintic_root_find(xi) * Rm;
+	float Rm = sc->data0;
+	float r_ = bssrdf_cubic_quintic_root_find(xi);
 
+	const float sharpness = sc->T.x;
+	if(sharpness != 0.0f) {
+		r_ = powf(r_, 1.0f + sharpness);
+		Rm *= (1.0f + sharpness);
+	}
+	
+	r_ *= Rm;
 	*r = r_;
 
 	/* h^2 + r^2 = Rm^2 */

Modified: branches/soc-2013-cycles_mblur/intern/cycles/kernel/kernel_path.h
===================================================================
--- branches/soc-2013-cycles_mblur/intern/cycles/kernel/kernel_path.h	2013-09-04 16:24:58 UTC (rev 59806)
+++ branches/soc-2013-cycles_mblur/intern/cycles/kernel/kernel_path.h	2013-09-04 18:14:40 UTC (rev 59807)
@@ -808,15 +808,9 @@
 			}
 		}
 #endif
-
-#ifdef __SUBSURFACE__
-
-		if(!kernel_path_integrate_lighting(kg, rng, sample, num_samples, &sd,
-			&throughput, &min_ray_pdf, &ray_pdf, &state, rng_offset, &L, &ray, &ray_t))
-			break;
-
-#else
-
+		
+		/* The following code is the same as in kernel_path_integrate_lighting(),
+		   but for CUDA the function call is slower. */
 #ifdef __EMISSION__
 		if(kernel_data.integrator.use_direct_light) {
 			/* sample illumination from lights to find path contribution */
@@ -898,8 +892,6 @@
 		ray.dP = sd.dP;
 		ray.dD = bsdf_domega_in;
 #endif
-
-#endif
 	}
 
 	float3 L_sum = path_radiance_sum(kg, &L);

Modified: branches/soc-2013-cycles_mblur/intern/cycles/kernel/kernel_subsurface.h
===================================================================
--- branches/soc-2013-cycles_mblur/intern/cycles/kernel/kernel_subsurface.h	2013-09-04 16:24:58 UTC (rev 59806)
+++ branches/soc-2013-cycles_mblur/intern/cycles/kernel/kernel_subsurface.h	2013-09-04 18:14:40 UTC (rev 59807)
@@ -16,15 +16,11 @@
 
 CCL_NAMESPACE_BEGIN
 
-#include "closure/bssrdf.h"
-
 /* NEW BSSRDF: See "BSSRDF Importance Sampling", SIGGRAPH 2013 */
 
 /* TODO:
  * - test using power heuristic for combing bssrdfs
  * - try to reduce one sample model variance
- * - possible shade all hits for progressive integrator
- * - cubic and gaussian scale difference tweak
  */
 
 #define BSSRDF_MULTI_EVAL

Modified: branches/soc-2013-cycles_mblur/intern/cycles/kernel/kernel_types.h
===================================================================
--- branches/soc-2013-cycles_mblur/intern/cycles/kernel/kernel_types.h	2013-09-04 16:24:58 UTC (rev 59806)
+++ branches/soc-2013-cycles_mblur/intern/cycles/kernel/kernel_types.h	2013-09-04 18:14:40 UTC (rev 59807)
@@ -392,10 +392,10 @@
 /* Ray */
 
 typedef struct Ray {
-	float3 P;
-	float3 D;
-	float t;
-	float time;
+	float3 P;		/* origin */
+	float3 D;		/* direction */
+	float t;		/* length of the ray */
+	float time;		/* time (for motion blur) */
 
 #ifdef __RAY_DIFFERENTIALS__
 	differential3 dP;
@@ -464,7 +464,7 @@
 	float data1;
 
 	float3 N;
-#ifdef __ANISOTROPIC__
+#if defined(__ANISOTROPIC__) || defined(__SUBSURFACE__)
 	float3 T;
 #endif
 

Modified: branches/soc-2013-cycles_mblur/intern/cycles/kernel/osl/osl_bssrdf.cpp
===================================================================
--- branches/soc-2013-cycles_mblur/intern/cycles/kernel/osl/osl_bssrdf.cpp	2013-09-04 16:24:58 UTC (rev 59806)
+++ branches/soc-2013-cycles_mblur/intern/cycles/kernel/osl/osl_bssrdf.cpp	2013-09-04 18:14:40 UTC (rev 59807)
@@ -56,10 +56,8 @@
 
 	void setup()
 	{
-		sc.type = CLOSURE_BSSRDF_COMPATIBLE_ID;
-		sc.prim = NULL;
+		sc.type = CLOSURE_BSSRDF_CUBIC_ID;
 		sc.data0 = fabsf(average(radius));
-		sc.data1 = 0.0f; // XXX texture blur
 	}
 
 	bool mergeable(const ClosurePrimitive *other) const
@@ -85,6 +83,19 @@
 	return params;
 }
 
+ClosureParam *closure_bssrdf_cubic_extended_params()
+{
+	static ClosureParam params[] = {
+		CLOSURE_FLOAT3_PARAM(CubicBSSRDFClosure, sc.N),
+		CLOSURE_FLOAT3_PARAM(CubicBSSRDFClosure, radius),
+		CLOSURE_FLOAT_PARAM(CubicBSSRDFClosure, sc.data1),
+		CLOSURE_FLOAT_PARAM(CubicBSSRDFClosure, sc.T.x),
+	    CLOSURE_STRING_KEYPARAM("label"),
+	    CLOSURE_FINISH_PARAM(CubicBSSRDFClosure)
+	};
+	return params;
+}
+
 CLOSURE_PREPARE(closure_bssrdf_cubic_prepare, CubicBSSRDFClosure)
 
 /* Gaussian */
@@ -97,9 +108,7 @@
 	void setup()
 	{
 		sc.type = CLOSURE_BSSRDF_GAUSSIAN_ID;
-		sc.prim = NULL;
 		sc.data0 = fabsf(average(radius));
-		sc.data1 = 0.0f; // XXX texture blurring!
 	}
 

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list