[Bf-blender-cvs] [4f949bb] bake-cycles: Cycles-Bake: expose only the modes suggested by brecht

Dalai Felinto noreply at git.blender.org
Wed Apr 23 02:46:43 CEST 2014


Commit: 4f949bbd7de4e91547ceb719bb716d3e7e775936
Author: Dalai Felinto
Date:   Tue Jan 21 20:07:33 2014 -0200
https://developer.blender.org/rB4f949bbd7de4e91547ceb719bb716d3e7e775936

Cycles-Bake: expose only the modes suggested by brecht

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

M	intern/cycles/blender/blender_session.cpp
M	intern/cycles/kernel/kernel_displace.h
M	intern/cycles/kernel/kernel_types.h

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

diff --git a/intern/cycles/blender/blender_session.cpp b/intern/cycles/blender/blender_session.cpp
index 8c52982..27f3ba7 100644
--- a/intern/cycles/blender/blender_session.cpp
+++ b/intern/cycles/blender/blender_session.cpp
@@ -266,6 +266,54 @@ static ShaderEvalType get_shader_type(const string& pass_type)
 {
 	const char *shader_type = pass_type.c_str();
 
+	/* data passes */
+	if (strcmp(shader_type, "NORMAL")==0)
+		return SHADER_EVAL_NORMAL;
+	else if (strcmp(shader_type, "UV")==0)
+		return SHADER_EVAL_UV;
+	else if (strcmp(shader_type, "DIFFUSE_COLOR")==0)
+		return SHADER_EVAL_DIFFUSE_COLOR;
+	else if (strcmp(shader_type, "GLOSSY_COLOR")==0)
+		return SHADER_EVAL_GLOSSY_COLOR;
+	else if (strcmp(shader_type, "TRANSMISSION_COLOR")==0)
+		return SHADER_EVAL_TRANSMISSION_COLOR;
+	else if (strcmp(shader_type, "SUBSURFACE_COLOR")==0)
+		return SHADER_EVAL_SUBSURFACE_COLOR;
+	else if (strcmp(shader_type, "EMIT")==0)
+		return SHADER_EVAL_EMISSION;
+
+	/* light passes */
+	else if (strcmp(shader_type, "AO")==0)
+		return SHADER_EVAL_AO;
+	else if (strcmp(shader_type, "COMBINED")==0)
+		return SHADER_EVAL_COMBINED;
+	else if (strcmp(shader_type, "SHADOW")==0)
+		return SHADER_EVAL_SHADOW;
+	else if (strcmp(shader_type, "DIFFUSE_DIRECT")==0)
+		return SHADER_EVAL_DIFFUSE_DIRECT;
+	else if (strcmp(shader_type, "GLOSSY_DIRECT")==0)
+		return SHADER_EVAL_GLOSSY_DIRECT;
+	else if (strcmp(shader_type, "TRANSMISSION_DIRECT")==0)
+		return SHADER_EVAL_TRANSMISSION_DIRECT;
+	else if (strcmp(shader_type, "SUBSURFACE_DIRECT")==0)
+		return SHADER_EVAL_SUBSURFACE_DIRECT;
+	else if (strcmp(shader_type, "DIFFUSE_INDIRECT")==0)
+		return SHADER_EVAL_DIFFUSE_INDIRECT;
+	else if (strcmp(shader_type, "GLOSSY_INDIRECT")==0)
+		return SHADER_EVAL_GLOSSY_INDIRECT;
+	else if (strcmp(shader_type, "TRANSMISSION_INDIRECT")==0)
+		return SHADER_EVAL_TRANSMISSION_INDIRECT;
+	else if (strcmp(shader_type, "SUBSURFACE_INDIRECT")==0)
+		return SHADER_EVAL_SUBSURFACE_INDIRECT;
+
+	/* extra */
+	else if (strcmp(shader_type, "ENVIRONMENT")==0)
+		return SHADER_EVAL_ENVIRONMENT;
+
+	else
+		return SHADER_EVAL_BAKE;
+
+#if 0
 	if (strcmp(shader_type, "COMBINED")==0)
 		return SHADER_EVAL_COMBINED;
 	else if (strcmp(shader_type, "Z")==0)
@@ -331,6 +379,7 @@ static ShaderEvalType get_shader_type(const string& pass_type)
 		return SHADER_EVAL_REFLECTION;
 	else
 		return SHADER_EVAL_BAKE;
+#endif
 }
 
 static BL::RenderResult begin_render_result(BL::RenderEngine b_engine, int x, int y, int w, int h, const char *layername)
diff --git a/intern/cycles/kernel/kernel_displace.h b/intern/cycles/kernel/kernel_displace.h
index 54f7bcf..088bd52 100644
--- a/intern/cycles/kernel/kernel_displace.h
+++ b/intern/cycles/kernel/kernel_displace.h
@@ -45,6 +45,32 @@ ccl_device void kernel_bake_evaluate(KernelGlobals *kg, ccl_global uint4 *input,
 	int segment = ~0;
 
 	switch (type) {
+		/* data passes */
+		case SHADER_EVAL_NORMAL:
+		case SHADER_EVAL_UV:
+		case SHADER_EVAL_DIFFUSE_COLOR:
+		case SHADER_EVAL_GLOSSY_COLOR:
+		case SHADER_EVAL_TRANSMISSION_COLOR:
+		case SHADER_EVAL_SUBSURFACE_COLOR:
+		case SHADER_EVAL_EMISSION:
+
+		/* light passes */
+		case SHADER_EVAL_AO:
+		case SHADER_EVAL_COMBINED:
+		case SHADER_EVAL_SHADOW:
+		case SHADER_EVAL_DIFFUSE_DIRECT:
+		case SHADER_EVAL_GLOSSY_DIRECT:
+		case SHADER_EVAL_TRANSMISSION_DIRECT:
+		case SHADER_EVAL_SUBSURFACE_DIRECT:
+		case SHADER_EVAL_DIFFUSE_INDIRECT:
+		case SHADER_EVAL_GLOSSY_INDIRECT:
+		case SHADER_EVAL_TRANSMISSION_INDIRECT:
+		case SHADER_EVAL_SUBSURFACE_INDIRECT:
+
+		/* extra */
+		case SHADER_EVAL_ENVIRONMENT:
+
+#if 0
 		case SHADER_EVAL_COMBINED:
 		{
 			/* TODO it's not taking into consideration the
@@ -168,7 +194,8 @@ ccl_device void kernel_bake_evaluate(KernelGlobals *kg, ccl_global uint4 *input,
 			out = sd.N;
 			break;
 		}
-		case SHADER_EVAL_BAKE:
+#endif
+
 		default:
 		{
 			/* no real shader, returning the position of the verts for debugging */
diff --git a/intern/cycles/kernel/kernel_types.h b/intern/cycles/kernel/kernel_types.h
index 209b0a4..c636a9c 100644
--- a/intern/cycles/kernel/kernel_types.h
+++ b/intern/cycles/kernel/kernel_types.h
@@ -165,6 +165,31 @@ typedef enum ShaderEvalType {
 	SHADER_EVAL_BAKE, /* no real shade, it's used in the code to
 	                   * differentiate the type of shader eval from the above
 	                   */
+	/* data passes */
+	SHADER_EVAL_NORMAL,
+	SHADER_EVAL_UV,
+	SHADER_EVAL_DIFFUSE_COLOR,
+	SHADER_EVAL_GLOSSY_COLOR,
+	SHADER_EVAL_TRANSMISSION_COLOR,
+	SHADER_EVAL_SUBSURFACE_COLOR,
+	SHADER_EVAL_EMISSION,
+
+	/* light passes */
+	SHADER_EVAL_AO,
+	SHADER_EVAL_COMBINED,
+	SHADER_EVAL_SHADOW,
+	SHADER_EVAL_DIFFUSE_DIRECT,
+	SHADER_EVAL_GLOSSY_DIRECT,
+	SHADER_EVAL_TRANSMISSION_DIRECT,
+	SHADER_EVAL_SUBSURFACE_DIRECT,
+	SHADER_EVAL_DIFFUSE_INDIRECT,
+	SHADER_EVAL_GLOSSY_INDIRECT,
+	SHADER_EVAL_TRANSMISSION_INDIRECT,
+	SHADER_EVAL_SUBSURFACE_INDIRECT,
+
+	/* extra */
+	SHADER_EVAL_ENVIRONMENT,
+#if 0
 	SHADER_EVAL_COMBINED,
 	SHADER_EVAL_DEPTH,
 	SHADER_EVAL_MIST,
@@ -194,6 +219,7 @@ typedef enum ShaderEvalType {
 	SHADER_EVAL_SPECULAR,
 	SHADER_EVAL_REFLECTION,
 	SHADER_EVAL_ENVIRONMENT,
+#endif
 } ShaderEvalType;
 
 /* Path Tracing




More information about the Bf-blender-cvs mailing list