[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [21901] branches/blender2.5/blender: 2.5: Materials
Brecht Van Lommel
brecht at blender.org
Sat Jul 25 23:31:19 CEST 2009
Revision: 21901
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=21901
Author: blendix
Date: 2009-07-25 23:31:17 +0200 (Sat, 25 Jul 2009)
Log Message:
-----------
2.5: Materials
* Diffuse/specular ramps works again.
* Wire is now a material type next to Surface and Halo.
* Removed Volume material type option until it is actually there.
* Some button layout tweaks.
Modified Paths:
--------------
branches/blender2.5/blender/release/ui/buttons_material.py
branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c
branches/blender2.5/blender/source/blender/makesdna/DNA_material_types.h
branches/blender2.5/blender/source/blender/makesrna/intern/rna_material.c
branches/blender2.5/blender/source/blender/render/intern/source/convertblender.c
branches/blender2.5/blender/source/blender/render/intern/source/rayshade.c
branches/blender2.5/blender/source/blender/render/intern/source/shadbuf.c
branches/blender2.5/blender/source/blender/render/intern/source/shadeinput.c
branches/blender2.5/blender/source/blender/render/intern/source/zbuf.c
branches/blender2.5/blender/source/gameengine/Converter/BL_BlenderDataConversion.cpp
Modified: branches/blender2.5/blender/release/ui/buttons_material.py
===================================================================
--- branches/blender2.5/blender/release/ui/buttons_material.py 2009-07-25 20:59:09 UTC (rev 21900)
+++ branches/blender2.5/blender/release/ui/buttons_material.py 2009-07-25 21:31:17 UTC (rev 21901)
@@ -75,40 +75,23 @@
if mat:
layout.itemR(mat, "type", expand=True)
- if mat.type == 'SURFACE':
+ if mat.type in ('SURFACE', 'WIRE', 'VOLUME'):
split = layout.split()
sub = split.column()
- sub.itemR(mat, "z_buffer")
sub.itemR(mat, "alpha", slider=True)
sub.itemR(mat, "ambient", slider=True)
sub.itemR(mat, "emit")
+ sub.itemR(mat, "translucency", slider=True)
sub = split.column()
+ sub.itemR(mat, "z_transparency")
sub.itemR(mat, "shadeless")
- sub.itemR(mat, "wireframe")
-
sub.itemR(mat, "tangent_shading")
sub.itemR(mat, "cubic", slider=True)
- elif mat.type == 'VOLUME':
- split = layout.split()
-
- sub = split.column()
- sub.itemR(mat, "z_buffer")
- sub.itemR(mat, "alpha", slider=True)
- sub.itemR(mat, "ambient", slider=True)
- sub.itemR(mat, "emit")
-
- sub = split.column()
- sub.itemR(mat, "shadeless")
- sub.itemR(mat, "wireframe")
-
- sub.itemR(mat, "tangent_shading")
- sub.itemR(mat, "cubic", slider=True)
elif mat.type == 'HALO':
layout.itemR(mat, "alpha", slider=True)
-
class MATERIAL_PT_strand(MaterialButtonsPanel):
__idname__= "MATERIAL_PT_strand"
@@ -158,18 +141,24 @@
sub.itemR(mat, "full_oversampling")
sub.itemR(mat, "sky")
sub.itemR(mat, "exclude_mist")
+ sub.itemR(mat, "invert_z")
+
+ col = sub.column(align=True)
+ col.itemL(text="Light Group:")
+ col.itemR(mat, "light_group", text="")
+ row = col.row()
+ row.active = mat.light_group
+ row.itemR(mat, "light_group_exclusive", text="Exclusive")
+
sub = split.column()
sub.itemR(mat, "face_texture")
colsub = sub.column()
colsub.active = mat.face_texture
colsub.itemR(mat, "face_texture_alpha")
- sub.itemR(mat, "invert_z")
- sub.itemR(mat, "light_group")
- sub.itemR(mat, "light_group_exclusive")
-
-
+ sub.itemR(mat, "vertex_color_paint")
+ sub.itemR(mat, "vertex_color_light")
+ sub.itemR(mat, "object_color")
-
class MATERIAL_PT_shadows(MaterialButtonsPanel):
__idname__= "MATERIAL_PT_shadows"
__label__ = "Shadows"
@@ -201,7 +190,7 @@
def poll(self, context):
mat = context.material
- return (mat and mat.type != "HALO")
+ return (mat and mat.type != 'HALO')
def draw(self, context):
layout = self.layout
@@ -211,19 +200,15 @@
sub = split.column()
sub.itemR(mat, "diffuse_color", text="")
- sub.itemR(mat, "vertex_color_paint")
- sub.itemR(mat, "vertex_color_light")
+ row = sub.row()
+ row.active = mat.shadeless== False
+ row.itemR(mat, "diffuse_reflection", text="Intensity", slider=True)
sub = split.column()
sub.active = mat.shadeless== False
- sub.itemR(mat, "diffuse_reflection", text="Intensity", slider=True)
- sub.itemR(mat, "translucency", slider=True)
- sub.itemR(mat, "object_color")
+ sub.itemR(mat, "diffuse_shader", text="")
+ sub.itemR(mat, "use_diffuse_ramp", text="Ramp")
- row = layout.row()
- row.active = mat.shadeless== False
- row.itemR(mat, "diffuse_shader", text="Shader")
-
split = layout.split()
split.active = mat.shadeless== False
sub = split.column()
@@ -240,16 +225,16 @@
sub = split.column()
sub.itemR(mat, "diffuse_fresnel_factor", text="Factor")
- layout.template_color_ramp(mat.diffuse_ramp, expand=True)
+ if mat.use_diffuse_ramp:
+ layout.template_color_ramp(mat.diffuse_ramp, expand=True)
-
class MATERIAL_PT_specular(MaterialButtonsPanel):
__idname__= "MATERIAL_PT_specular"
__label__ = "Specular"
def poll(self, context):
mat = context.material
- return (mat and mat.type != "HALO")
+ return (mat and mat.type != 'HALO')
def draw(self, context):
layout = self.layout
@@ -261,30 +246,31 @@
sub = split.column()
sub.itemR(mat, "specular_color", text="")
- sub = split.column()
sub.itemR(mat, "specular_reflection", text="Intensity", slider=True)
+
+ sub = split.column()
+ sub.itemR(mat, "specular_shader", text="")
+ sub.itemR(mat, "use_specular_ramp", text="Ramp")
- layout.itemR(mat, "spec_shader", text="Shader")
-
split = layout.split()
sub = split.column()
- if mat.spec_shader in ('COOKTORR', 'PHONG'):
+ if mat.specular_shader in ('COOKTORR', 'PHONG'):
sub.itemR(mat, "specular_hardness", text="Hardness")
- if mat.spec_shader == 'BLINN':
+ if mat.specular_shader == 'BLINN':
sub.itemR(mat, "specular_hardness", text="Hardness")
sub = split.column()
sub.itemR(mat, "specular_ior", text="IOR")
- if mat.spec_shader == 'WARDISO':
+ if mat.specular_shader == 'WARDISO':
sub.itemR(mat, "specular_slope", text="Slope")
- if mat.spec_shader == 'TOON':
+ if mat.specular_shader == 'TOON':
sub.itemR(mat, "specular_toon_size", text="Size")
sub = split.column()
sub.itemR(mat, "specular_toon_smooth", text="Smooth")
- layout.template_color_ramp(mat.specular_ramp, expand=True)
+ if mat.use_specular_ramp:
+ layout.template_color_ramp(mat.specular_ramp, expand=True)
-
class MATERIAL_PT_sss(MaterialButtonsPanel):
__idname__= "MATERIAL_PT_sss"
__label__ = "Subsurface Scattering"
@@ -292,7 +278,7 @@
def poll(self, context):
mat = context.material
- return (mat and mat.type == "SURFACE")
+ return (mat and (mat.type == 'SURFACE' or mat.type == 'WIRE'))
def draw_header(self, context):
layout = self.layout
@@ -331,7 +317,7 @@
def poll(self, context):
mat = context.material
- return (mat and mat.type == "SURFACE")
+ return (mat and (mat.type == 'SURFACE' or mat.type == 'WIRE'))
def draw_header(self, context):
layout = self.layout
@@ -375,7 +361,7 @@
def poll(self, context):
mat = context.material
- return (mat and mat.type == "SURFACE")
+ return (mat and (mat.type == 'SURFACE' or mat.type == 'WIRE'))
def draw_header(self, context):
layout = self.layout
@@ -419,7 +405,7 @@
def poll(self, context):
mat = context.material
- return (mat and mat.type == "HALO")
+ return (mat and mat.type == 'HALO')
def draw(self, context):
layout = self.layout
Modified: branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c 2009-07-25 20:59:09 UTC (rev 21900)
+++ branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c 2009-07-25 21:31:17 UTC (rev 21901)
@@ -9281,6 +9281,10 @@
}
for(ma = main->mat.first; ma; ma = ma->id.next) {
+ if(ma->mode & MA_WIRE) {
+ ma->material_type= MA_TYPE_WIRE;
+ ma->mode &= ~MA_WIRE;
+ }
if(ma->mode & MA_HALO) {
ma->material_type= MA_TYPE_HALO;
ma->mode &= ~MA_HALO;
Modified: branches/blender2.5/blender/source/blender/makesdna/DNA_material_types.h
===================================================================
--- branches/blender2.5/blender/source/blender/makesdna/DNA_material_types.h 2009-07-25 20:59:09 UTC (rev 21900)
+++ branches/blender2.5/blender/source/blender/makesdna/DNA_material_types.h 2009-07-25 21:31:17 UTC (rev 21901)
@@ -148,6 +148,7 @@
#define MA_TYPE_SURFACE 0
#define MA_TYPE_HALO 1
#define MA_TYPE_VOLUME 2
+#define MA_TYPE_WIRE 3
/* flag */
/* for render */
@@ -159,7 +160,7 @@
#define MA_TRACEBLE 1
#define MA_SHADOW 2
#define MA_SHLESS 4
-#define MA_WIRE 8
+#define MA_WIRE 8 /* deprecated */
#define MA_VERTEXCOL 16
#define MA_HALO_SOFT 16
#define MA_HALO 32 /* deprecated */
Modified: branches/blender2.5/blender/source/blender/makesrna/intern/rna_material.c
===================================================================
--- branches/blender2.5/blender/source/blender/makesrna/intern/rna_material.c 2009-07-25 20:59:09 UTC (rev 21900)
+++ branches/blender2.5/blender/source/blender/makesrna/intern/rna_material.c 2009-07-25 21:31:17 UTC (rev 21901)
@@ -166,6 +166,28 @@
}
}
+static void rna_Material_use_diffuse_ramp_set(PointerRNA *ptr, int value)
+{
+ Material *ma= (Material*)ptr->data;
+
+ if(value) ma->mode |= MA_RAMP_COL;
+ else ma->mode &= ~MA_RAMP_COL;
+
+ if((ma->mode & MA_RAMP_COL) && ma->ramp_col == NULL)
+ ma->ramp_col= add_colorband(0);
+}
+
+static void rna_Material_use_specular_ramp_set(PointerRNA *ptr, int value)
+{
+ Material *ma= (Material*)ptr->data;
+
+ if(value) ma->mode |= MA_RAMP_SPEC;
+ else ma->mode &= ~MA_RAMP_SPEC;
+
+ if((ma->mode & MA_RAMP_SPEC) && ma->ramp_spec == NULL)
+ ma->ramp_spec= add_colorband(0);
+}
+
#else
static void rna_def_material_mtex(BlenderRNA *brna)
@@ -477,11 +499,23 @@
RNA_def_property_update(prop, NC_MATERIAL|ND_SHADING_DRAW, NULL);
/* Color bands */
+ prop= RNA_def_property(srna, "use_diffuse_ramp", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "mode", MA_RAMP_COL);
+ RNA_def_property_boolean_funcs(prop, NULL, "rna_Material_use_diffuse_ramp_set");
+ RNA_def_property_ui_text(prop, "Use Diffuse Ramp", "Toggle diffuse ramp operations.");
+ RNA_def_property_update(prop, NC_MATERIAL|ND_SHADING_DRAW, NULL);
+
prop= RNA_def_property(srna, "diffuse_ramp", PROP_POINTER, PROP_NONE);
RNA_def_property_pointer_sdna(prop, NULL, "ramp_col");
RNA_def_property_struct_type(prop, "ColorRamp");
RNA_def_property_ui_text(prop, "Diffuse Ramp", "Color ramp used to affect diffuse shading.");
+ prop= RNA_def_property(srna, "use_specular_ramp", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "mode", MA_RAMP_SPEC);
+ RNA_def_property_boolean_funcs(prop, NULL, "rna_Material_use_specular_ramp_set");
+ RNA_def_property_ui_text(prop, "Use Specular Ramp", "Toggle specular ramp operations.");
+ RNA_def_property_update(prop, NC_MATERIAL|ND_SHADING_DRAW, NULL);
+
prop= RNA_def_property(srna, "specular_ramp", PROP_POINTER, PROP_NONE);
RNA_def_property_pointer_sdna(prop, NULL, "ramp_spec");
RNA_def_property_struct_type(prop, "ColorRamp");
@@ -912,7 +946,7 @@
{
PropertyRNA *prop;
- static EnumPropertyItem prop_spec_shader_items[] = {
+ static EnumPropertyItem prop_specular_shader_items[] = {
{MA_SPEC_COOKTORR, "COOKTORR", 0, "CookTorr", ""},
{MA_SPEC_PHONG, "PHONG", 0, "Phong", ""},
{MA_SPEC_BLINN, "BLINN", 0, "Blinn", ""},
@@ -920,9 +954,9 @@
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list