[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [27361] branches/render25: Render Branch:
Brecht Van Lommel
brecht at blender.org
Tue Mar 9 14:03:03 CET 2010
Revision: 27361
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=27361
Author: blendix
Date: 2010-03-09 14:03:03 +0100 (Tue, 09 Mar 2010)
Log Message:
-----------
Render Branch:
* add lamp option "indirect" to indicate if the lamp should be used
as part of indirect lighting
* add shadow buffer option to indicate if strands should be part of
the shadow buffer
* revert some dupli debugging code that wasn't supposed to be comitted
Modified Paths:
--------------
branches/render25/release/scripts/ui/properties_data_lamp.py
branches/render25/source/blender/blenkernel/intern/anim.c
branches/render25/source/blender/makesdna/DNA_lamp_types.h
branches/render25/source/blender/makesrna/intern/makesrna.c
branches/render25/source/blender/makesrna/intern/rna_lamp.c
branches/render25/source/blender/render/extern/include/RE_shader_ext.h
branches/render25/source/blender/render/intern/source/lamp.c
branches/render25/source/blender/render/intern/source/rayshade.c
branches/render25/source/blender/render/intern/source/zbuf.c
Modified: branches/render25/release/scripts/ui/properties_data_lamp.py
===================================================================
--- branches/render25/release/scripts/ui/properties_data_lamp.py 2010-03-09 11:42:04 UTC (rev 27360)
+++ branches/render25/release/scripts/ui/properties_data_lamp.py 2010-03-09 13:03:03 UTC (rev 27361)
@@ -94,32 +94,53 @@
split = layout.split()
col = split.column()
- sub = col.column()
- sub.prop(lamp, "color", text="")
+ col.prop(lamp, "color", text="")
if lamp.type in ('POINT', 'SPOT', 'AREA'):
- sub.prop(lamp, "power")
+ col.prop(lamp, "power")
+ else:
+ col.prop(lamp, "energy")
+ col.prop(lamp, "negative")
+ if lamp.type in ('POINT', 'SPOT', 'AREA'):
+ col.prop(lamp, "multi_shade")
+
+ if wide_ui:
+ col = split.column()
+
+ if lamp.type in ('POINT', 'SPOT', 'AREA'):
if lamp.type != 'AREA' or lamp.multi_shade:
- sub.label(text="Falloff:")
- sub.prop(lamp, "falloff_type", text="")
+ col.label(text="Falloff:")
+ col.prop(lamp, "falloff_type", text="")
if lamp.falloff_type == 'CUSTOM_CURVE':
- sub.prop(lamp, "falloff_distance", text="Distance")
+ col.prop(lamp, "falloff_distance", text="Distance")
else:
- sub.prop(lamp, "falloff_smooth", text="Smooth")
+ col.prop(lamp, "falloff_smooth", text="Smooth")
col.prop(lamp, "sphere")
- else:
- sub.prop(lamp, "energy")
+class DATA_PT_lamp_options(DataButtonsPanel):
+ bl_label = "Options"
+ bl_default_closed = True
+
+ def draw(self, context):
+ layout = self.layout
+
+ lamp = context.lamp
+ wide_ui = context.region.width > narrowui
+
+ split = layout.split()
+
+ col = split.column()
+
+ col.prop(lamp, "specular")
+ col.prop(lamp, "diffuse")
+
if wide_ui:
col = split.column()
- col.prop(lamp, "negative")
+
+ col.prop(lamp, "indirect")
col.prop(lamp, "layer", text="This Layer Only")
- col.prop(lamp, "specular")
- col.prop(lamp, "diffuse")
- if lamp.type in ('POINT', 'SPOT', 'AREA'):
- col.prop(lamp, "multi_shade")
class DATA_PT_sunsky(DataButtonsPanel):
bl_label = "Sky & Atmosphere"
@@ -221,6 +242,9 @@
col.prop(lamp, "shadow_layer", text="This Layer Only")
col.prop(lamp, "only_shadow")
+ if lamp.shadow_method == 'BUFFER_SHADOW':
+ col.prop(lamp, "shadow_strands")
+
if lamp.shadow_method == 'RAY_SHADOW':
col = layout.column()
col.label(text="Sampling:")
@@ -385,6 +409,7 @@
DATA_PT_context_lamp,
DATA_PT_preview,
DATA_PT_lamp,
+ DATA_PT_lamp_options,
DATA_PT_falloff_curve,
DATA_PT_area,
DATA_PT_spot,
Modified: branches/render25/source/blender/blenkernel/intern/anim.c
===================================================================
--- branches/render25/source/blender/blenkernel/intern/anim.c 2010-03-09 11:42:04 UTC (rev 27360)
+++ branches/render25/source/blender/blenkernel/intern/anim.c 2010-03-09 13:03:03 UTC (rev 27361)
@@ -86,7 +86,7 @@
/* --------------------- */
/* forward declarations */
-static void object_duplilist_recursive(ID *id, Scene *scene, Object *ob, ListBase *duplilist, float obmat[4][4], float par_space_mat[4][4], int level, int animated);
+static void object_duplilist_recursive(ID *id, Scene *scene, Object *ob, ListBase *duplilist, float par_space_mat[][4], int level, int animated);
/* ******************************************************************** */
/* Animation Visualisation */
@@ -659,9 +659,9 @@
dob->no_draw= (dob->origlay & group->layer)==0;
if(go->ob->transflag & OB_DUPLI) {
- //copy_m4_m4(dob->ob->obmat, dob->mat);
- object_duplilist_recursive((ID *)group, scene, go->ob, lb, dob->mat, ob->obmat, level+1, animated);
- //copy_m4_m4(dob->ob->obmat, dob->omat);
+ copy_m4_m4(dob->ob->obmat, dob->mat);
+ object_duplilist_recursive((ID *)group, scene, go->ob, lb, ob->obmat, level+1, animated);
+ copy_m4_m4(dob->ob->obmat, dob->omat);
}
}
}
@@ -754,11 +754,11 @@
VECCOPY(dob->orco, vdd->orco[index]);
if(vdd->ob->transflag & OB_DUPLI) {
- //float tmpmat[4][4];
- //copy_m4_m4(tmpmat, vdd->ob->obmat);
- //copy_m4_m4(vdd->ob->obmat, obmat); /* pretend we are really this mat */
- object_duplilist_recursive((ID *)vdd->id, vdd->scene, vdd->ob, vdd->lb, obmat, obmat, vdd->level+1, vdd->animated);
- //copy_m4_m4(vdd->ob->obmat, tmpmat);
+ float tmpmat[4][4];
+ copy_m4_m4(tmpmat, vdd->ob->obmat);
+ copy_m4_m4(vdd->ob->obmat, obmat); /* pretend we are really this mat */
+ object_duplilist_recursive((ID *)vdd->id, vdd->scene, vdd->ob, vdd->lb, obmat, vdd->level+1, vdd->animated);
+ copy_m4_m4(vdd->ob->obmat, tmpmat);
}
}
@@ -1042,10 +1042,10 @@
if(ob->transflag & OB_DUPLI) {
float tmpmat[4][4];
- //copy_m4_m4(tmpmat, ob->obmat);
- //copy_m4_m4(ob->obmat, obmat); /* pretend we are really this mat */
- object_duplilist_recursive((ID *)id, scene, ob, lb, obmat, ob->obmat, level+1, animated);
- //copy_m4_m4(ob->obmat, tmpmat);
+ copy_m4_m4(tmpmat, ob->obmat);
+ copy_m4_m4(ob->obmat, obmat); /* pretend we are really this mat */
+ object_duplilist_recursive((ID *)id, scene, ob, lb, ob->obmat, level+1, animated);
+ copy_m4_m4(ob->obmat, tmpmat);
}
}
@@ -1378,7 +1378,7 @@
/* ------------- */
-static void object_duplilist_recursive(ID *id, Scene *scene, Object *ob, ListBase *duplilist, float obmat[4][4], float par_space_mat[4][4], int level, int animated)
+static void object_duplilist_recursive(ID *id, Scene *scene, Object *ob, ListBase *duplilist, float par_space_mat[][4], int level, int animated)
{
if((ob->transflag & OB_DUPLI)==0)
return;
@@ -1436,7 +1436,7 @@
{
ListBase *duplilist= MEM_mallocN(sizeof(ListBase), "duplilist");
duplilist->first= duplilist->last= NULL;
- object_duplilist_recursive((ID *)sce, sce, ob, duplilist, NULL, NULL, 0, 0); /* XXX */
+ object_duplilist_recursive((ID *)sce, sce, ob, duplilist, NULL, 0, 0);
return duplilist;
}
Modified: branches/render25/source/blender/makesdna/DNA_lamp_types.h
===================================================================
--- branches/render25/source/blender/makesdna/DNA_lamp_types.h 2010-03-09 11:42:04 UTC (rev 27360)
+++ branches/render25/source/blender/makesdna/DNA_lamp_types.h 2010-03-09 13:03:03 UTC (rev 27361)
@@ -149,6 +149,7 @@
#define LA_SHAD_TEX (1<<16)
#define LA_SHOW_CONE (1<<17)
#define LA_MULTI_SHADE (1<<18)
+#define LA_NO_INDIRECT (1<<19)
/* layer_shadow */
#define LA_LAYER_SHADOW_BOTH 0
@@ -175,6 +176,7 @@
/* bufflag, auto clipping */
#define LA_SHADBUF_AUTO_START 1
#define LA_SHADBUF_AUTO_END 2
+#define LA_SHADBUF_NO_STRANDS 4
/* filtertype */
#define LA_SHADBUF_BOX 0
@@ -192,7 +194,6 @@
#define LA_SAMP_HALTON 1
#define LA_SAMP_HAMMERSLEY 2
-
/* ray_samp_type */
#define LA_SAMP_ROUND 1 /* deprecated */
#define LA_SAMP_UMBRA 2 /* deprecated */
Modified: branches/render25/source/blender/makesrna/intern/makesrna.c
===================================================================
--- branches/render25/source/blender/makesrna/intern/makesrna.c 2010-03-09 11:42:04 UTC (rev 27360)
+++ branches/render25/source/blender/makesrna/intern/makesrna.c 2010-03-09 13:03:03 UTC (rev 27361)
@@ -485,13 +485,13 @@
if(dp->dnaarraylength == 1) {
if(prop->type == PROP_BOOLEAN && dp->booleanbit)
- fprintf(f, " values[i]= (%s(data->%s & (%d<<i)) != 0);\n", (dp->booleannegative)? "!": "", dp->dnaname, dp->booleanbit);
+ fprintf(f, " values[i]= %s((data->%s & (%d<<i)) != 0);\n", (dp->booleannegative)? "!": "", dp->dnaname, dp->booleanbit);
else
fprintf(f, " values[i]= (%s)%s((&data->%s)[i]);\n", rna_type_type(prop), (dp->booleannegative)? "!": "", dp->dnaname);
}
else {
if(prop->type == PROP_BOOLEAN && dp->booleanbit) {
- fprintf(f, " values[i]= (%s(data->%s[i] & ", (dp->booleannegative)? "!": "", dp->dnaname);
+ fprintf(f, " values[i]= %s((data->%s[i] & ", (dp->booleannegative)? "!": "", dp->dnaname);
rna_int_print(f, dp->booleanbit);
fprintf(f, ") != 0);\n");
}
@@ -516,7 +516,7 @@
else {
rna_print_data_get(f, dp);
if(prop->type == PROP_BOOLEAN && dp->booleanbit) {
- fprintf(f, " return (%s((data->%s) & ", (dp->booleannegative)? "!": "", dp->dnaname);
+ fprintf(f, " return %s(((data->%s) & ", (dp->booleannegative)? "!": "", dp->dnaname);
rna_int_print(f, dp->booleanbit);
fprintf(f, ") != 0);\n");
}
Modified: branches/render25/source/blender/makesrna/intern/rna_lamp.c
===================================================================
--- branches/render25/source/blender/makesrna/intern/rna_lamp.c 2010-03-09 11:42:04 UTC (rev 27360)
+++ branches/render25/source/blender/makesrna/intern/rna_lamp.c 2010-03-09 13:03:03 UTC (rev 27361)
@@ -369,6 +369,11 @@
RNA_def_property_boolean_negative_sdna(prop, NULL, "mode", LA_NO_DIFF);
RNA_def_property_ui_text(prop, "Diffuse", "Lamp does diffuse shading");
RNA_def_property_update(prop, 0, "rna_Lamp_update");
+
+ prop= RNA_def_property(srna, "indirect", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_negative_sdna(prop, NULL, "mode", LA_NO_INDIRECT);
+ RNA_def_property_ui_text(prop, "Indirect", "Lamp contributes to indirect lighting");
+ RNA_def_property_update(prop, 0, "rna_Lamp_update");
prop= RNA_def_property(srna, "multi_shade", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "mode", LA_MULTI_SHADE);
@@ -700,6 +705,11 @@
RNA_def_property_ui_text(prop, "Autoclip End", "Automatic calculation of clipping-end, based on visible vertices");
RNA_def_property_update(prop, 0, "rna_Lamp_draw_update");
+ prop= RNA_def_property(srna, "shadow_strands", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_negative_sdna(prop, NULL, "bufflag", LA_SHADBUF_NO_STRANDS);
+ RNA_def_property_ui_text(prop, "Shadow Strands", "Lamp shadow buffer includes strands");
+ RNA_def_property_update(prop, 0, "rna_Lamp_update");
+
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list