[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [36738] trunk/blender/source/blender: additional bake modes

M.G. Kishalmi lmg at kishalmi.net
Wed May 18 09:46:54 CEST 2011


Revision: 36738
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=36738
Author:   lmg
Date:     2011-05-18 07:46:54 +0000 (Wed, 18 May 2011)
Log Message:
-----------
additional bake modes
 (refined patch #23430)

+ specular color
+ specular intensity
+ mirror color
+ mirror intensity
+ alpha (tranparency)
+ emission (glow)

Modified Paths:
--------------
    trunk/blender/source/blender/makesrna/intern/rna_scene.c
    trunk/blender/source/blender/render/extern/include/RE_pipeline.h
    trunk/blender/source/blender/render/intern/source/rendercore.c

Modified: trunk/blender/source/blender/makesrna/intern/rna_scene.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_scene.c	2011-05-18 06:48:52 UTC (rev 36737)
+++ trunk/blender/source/blender/makesrna/intern/rna_scene.c	2011-05-18 07:46:54 UTC (rev 36738)
@@ -2005,6 +2005,12 @@
 		{RE_BAKE_NORMALS, "NORMALS", 0, "Normals", "Bake normals"},
 		{RE_BAKE_TEXTURE, "TEXTURE", 0, "Textures", "Bake textures"},
 		{RE_BAKE_DISPLACEMENT, "DISPLACEMENT", 0, "Displacement", "Bake displacement"},
+		{RE_BAKE_EMIT, "EMIT", 0, "Emission", "Bake Emit values (glow)"},
+		{RE_BAKE_ALPHA, "ALPHA", 0, "Alpha", "Bake Alpha values (transparency)"},
+		{RE_BAKE_MIRROR_INTENSITY, "MIRROR_INTENSITY", 0, "Mirror Intensity", "Bake Mirror values"},
+		{RE_BAKE_MIRROR_COLOR, "MIRROR_COLOR", 0, "Mirror Colors", "Bake Mirror colors"},
+		{RE_BAKE_SPEC_INTENSITY, "SPEC_INTENSITY", 0, "Specular Intensity", "Bake Specular values"},
+		{RE_BAKE_SPEC_COLOR, "SPEC_COLOR", 0, "Specular Colors", "Bake Specular colors"},
 		{0, NULL, 0, NULL, NULL}};
 
 	static EnumPropertyItem bake_normal_space_items[] ={

Modified: trunk/blender/source/blender/render/extern/include/RE_pipeline.h
===================================================================
--- trunk/blender/source/blender/render/extern/include/RE_pipeline.h	2011-05-18 06:48:52 UTC (rev 36737)
+++ trunk/blender/source/blender/render/extern/include/RE_pipeline.h	2011-05-18 07:46:54 UTC (rev 36738)
@@ -250,13 +250,19 @@
 void RE_zbuf_accumulate_vecblur(struct NodeBlurData *nbd, int xsize, int ysize, float *newrect, float *imgrect, float *vecbufrect, float *zbufrect);
 
 /* shaded view or baking options */
-#define RE_BAKE_LIGHT			0
-#define RE_BAKE_ALL				1
-#define RE_BAKE_AO				2
-#define RE_BAKE_NORMALS			3
-#define RE_BAKE_TEXTURE			4
-#define RE_BAKE_DISPLACEMENT	5
-#define RE_BAKE_SHADOW			6
+#define RE_BAKE_LIGHT				0	/* not listed in rna_scene.c -> can't be enabled! */
+#define RE_BAKE_ALL					1
+#define RE_BAKE_AO					2
+#define RE_BAKE_NORMALS				3
+#define RE_BAKE_TEXTURE				4
+#define RE_BAKE_DISPLACEMENT		5
+#define RE_BAKE_SHADOW				6
+#define RE_BAKE_SPEC_COLOR			7
+#define RE_BAKE_SPEC_INTENSITY		8
+#define RE_BAKE_MIRROR_COLOR		9
+#define RE_BAKE_MIRROR_INTENSITY	10
+#define RE_BAKE_ALPHA				11
+#define RE_BAKE_EMIT				12
 
 void RE_Database_Baking(struct Render *re, struct Main *bmain, struct Scene *scene, unsigned int lay, int type, struct Object *actob);
 

Modified: trunk/blender/source/blender/render/intern/source/rendercore.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/rendercore.c	2011-05-18 06:48:52 UTC (rev 36737)
+++ trunk/blender/source/blender/render/intern/source/rendercore.c	2011-05-18 07:46:54 UTC (rev 36738)
@@ -2143,7 +2143,9 @@
 	
 		shade_input_set_shade_texco(shi);
 		
-		if(!ELEM3(bs->type, RE_BAKE_NORMALS, RE_BAKE_TEXTURE, RE_BAKE_SHADOW))
+		/* only do AO for a full bake (and obviously AO bakes)
+			AO for light bakes is a leftover and might not be needed */
+		if( ELEM3(bs->type, RE_BAKE_ALL, RE_BAKE_AO, RE_BAKE_LIGHT))
 			shade_samples_do_AO(ssamp);
 		
 		if(shi->mat->nodetree && shi->mat->use_nodes) {
@@ -2206,6 +2208,42 @@
 			VECCOPY(shr.combined, shr.shad);
 			shr.alpha = shi->alpha;
 		}
+		else if(bs->type==RE_BAKE_SPEC_COLOR) {
+			shr.combined[0]= shi->specr;
+			shr.combined[1]= shi->specg;
+			shr.combined[2]= shi->specb;
+			shr.alpha = 1.0f;
+		}
+		else if(bs->type==RE_BAKE_SPEC_INTENSITY) {
+			shr.combined[0]=
+			shr.combined[1]=
+			shr.combined[2]= shi->spec;
+			shr.alpha = 1.0f;
+		}
+		else if(bs->type==RE_BAKE_MIRROR_COLOR) {
+			shr.combined[0]= shi->mirr;
+			shr.combined[1]= shi->mirg;
+			shr.combined[2]= shi->mirb;
+			shr.alpha = 1.0f;
+		}
+		else if(bs->type==RE_BAKE_MIRROR_INTENSITY) {
+			shr.combined[0]=
+			shr.combined[1]=
+			shr.combined[2]= shi->ray_mirror;
+			shr.alpha = 1.0f;
+		}
+		else if(bs->type==RE_BAKE_ALPHA) {
+			shr.combined[0]=
+			shr.combined[1]=
+			shr.combined[2]= shi->alpha;
+			shr.alpha = 1.0f;
+		}
+		else if(bs->type==RE_BAKE_EMIT) {
+			shr.combined[0]=
+			shr.combined[1]=
+			shr.combined[2]= shi->emit;
+			shr.alpha = 1.0f;
+		}
 	}
 	
 	if(bs->rect_float) {




More information about the Bf-blender-cvs mailing list