[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