[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [20292] branches/blender2.5/blender: 2. 5 Material:

Brecht Van Lommel brecht at blender.org
Wed May 20 15:34:04 CEST 2009


Revision: 20292
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=20292
Author:   blendix
Date:     2009-05-20 15:34:04 +0200 (Wed, 20 May 2009)

Log Message:
-----------
2.5 Material:
* Added material "type" property, with Surface/Volume/Halo
  options, compatible with sim_physics, as requested for
  material buttons layout. Obviously the Volume setting
  does nothing currently.
* Deprecated MA_HALO flag in favor of this.

Modified Paths:
--------------
    branches/blender2.5/blender/release/ui/buttons_material.py
    branches/blender2.5/blender/source/blender/blenkernel/intern/ipo.c
    branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c
    branches/blender2.5/blender/source/blender/editors/interface/interface_icons.c
    branches/blender2.5/blender/source/blender/editors/preview/previewrender.c
    branches/blender2.5/blender/source/blender/editors/space_view3d/drawobject.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/makesrna/intern/rna_scene.c
    branches/blender2.5/blender/source/blender/render/intern/source/convertblender.c
    branches/blender2.5/blender/source/blender/render/intern/source/rendercore.c

Modified: branches/blender2.5/blender/release/ui/buttons_material.py
===================================================================
--- branches/blender2.5/blender/release/ui/buttons_material.py	2009-05-20 12:13:37 UTC (rev 20291)
+++ branches/blender2.5/blender/release/ui/buttons_material.py	2009-05-20 13:34:04 UTC (rev 20292)
@@ -5,40 +5,41 @@
 	__space_type__ = "BUTTONS_WINDOW"
 	__region_type__ = "WINDOW"
 	__context__ = "material"
+
+	def poll(self, context):
+		ob = context.active_object
+		return (ob and ob.active_material)
 	
 class MATERIAL_PT_material(MaterialButtonsPanel):
 	__idname__= "MATERIAL_PT_material"
 	__label__ = "Material"
-	
+
 	def draw(self, context):
 		layout = self.layout
-		try:		
-			mat = context.active_object.active_material
-		except:	
-			mat = None
-		
-		if not mat:
-			return
+		mat = context.active_object.active_material
 	
 		row = layout.row()
+		row.itemR(mat, "type", expand=True)
+
+		row = layout.row()
 		row.column().itemR(mat, "diffuse_color")
 		row.column().itemR(mat, "specular_color")
 		row.column().itemR(mat, "mirror_color")
 		
 		row = layout.row()
-		row.itemR(mat, "color_model")
 		row.itemR(mat, "alpha")
 			
 class MATERIAL_PT_sss(MaterialButtonsPanel):
 	__idname__= "MATERIAL_PT_sss"
 	__label__ = "Subsurface Scattering"
+
+	def poll(self, context):
+		ob = context.active_object
+		return (ob and ob.active_material and ob.active_material.type == "SURFACE")
 	
 	def draw(self, context):
 		layout = self.layout
-		try:		
-			sss = context.active_object.active_material.subsurface_scattering
-		except:	
-			sss = None
+		sss = context.active_object.active_material.subsurface_scattering
 		
 		if not sss:
 			return
@@ -66,7 +67,7 @@
 	
 	def poll(self, context):
 		ob = context.active_object
-		return (ob and ob.active_material)
+		return (ob and ob.active_material and ob.active_material.type == "SURFACE")
 	
 	def draw_header(self, context):
 		raym = context.active_object.active_material.raytrace_mirror
@@ -99,17 +100,15 @@
 class MATERIAL_PT_raytransp(MaterialButtonsPanel):
 	__idname__= "MATERIAL_PT_raytransp"
 	__label__= "Ray Transparency"
+	
+	def poll(self, context):
+		ob = context.active_object
+		return (ob and ob.active_material and ob.active_material.type == "SURFACE")
 
 	def draw(self, context):
 		layout = self.layout
-		try:		
-			rayt = context.active_object.active_material.raytrace_transparency
-		except:	
-			rayt = None
+		rayt = context.active_object.active_material.raytrace_transparency
 
-		if not rayt:
-			return
-
 		layout.itemR(rayt, "enabled", text="Enable")
 		
 		split = layout.split()
@@ -135,61 +134,56 @@
 	__idname__= "MATERIAL_PT_halo"
 	__label__= "Halo"
 	
+	def poll(self, context):
+		ob = context.active_object
+		return (ob and ob.active_material and ob.active_material.type == "HALO")
+	
 	def draw(self, context):
 		layout = self.layout
-		try:		
-			halo = context.active_object.active_material.halo
-		except:	
-			halo = None
+		mat = context.active_object.active_material
+		halo = mat.halo
 
-		if not halo:
-			return
-	
-		layout.itemR(halo, "enabled", text="Enable Halo")
+		split = layout.split()
+		
+		sub = split.column()
+		sub.itemL(text="General Settings:")
+		sub.itemR(halo, "size")
+		sub.itemR(halo, "hardness")
+		sub.itemR(halo, "add")
+		
+		sub = split.column()
+		sub.itemL(text="Elements:")
+		sub.itemR(halo, "ring")
+		sub.itemR(halo, "lines")
+		sub.itemR(halo, "star")
+		sub.itemR(halo, "flare_mode")
 
-		if halo.enabled:
-			
-			split = layout.split()
-			
-			sub = split.column()
-			sub.itemL(text="General Settings:")
-			sub.itemR(halo, "size")
-			sub.itemR(halo, "hardness")
-			sub.itemR(halo, "add")
-			
-			sub = split.column()
-			sub.itemL(text="Elements:")
-			sub.itemR(halo, "ring")
-			sub.itemR(halo, "lines")
-			sub.itemR(halo, "star")
-			sub.itemR(halo, "flare_mode")
-
-			row = layout.row()
-			
-			sub = row.column()
-			sub.itemL(text="Options:")
-			sub.itemR(halo, "use_texture", text="Texture")
-			sub.itemR(halo, "use_vertex_normal", text="Vertex Normal")
-			sub.itemR(halo, "xalpha")
-			sub.itemR(halo, "shaded")
-			sub.itemR(halo, "soft")
+		row = layout.row()
 		
-			sub = row.column()
-			if (halo.ring):
-				sub.itemR(halo, "rings")
-			if (halo.lines):
-				sub.itemR(halo, "line_number")
-			if (halo.ring or halo.lines):
-				sub.itemR(halo, "seed")
-			if (halo.star):
-				sub.itemR(halo, "star_tips")
-			if (halo.flare_mode):
-				sub.itemL(text="Flare:")
-				sub.itemR(halo, "flare_size", text="Size")
-				sub.itemR(halo, "flare_subsize", text="Subsize")
-				sub.itemR(halo, "flare_boost", text="Boost")
-				sub.itemR(halo, "flare_seed", text="Seed")
-				sub.itemR(halo, "flares_sub", text="Sub")
+		sub = row.column()
+		sub.itemL(text="Options:")
+		sub.itemR(halo, "use_texture", text="Texture")
+		sub.itemR(halo, "use_vertex_normal", text="Vertex Normal")
+		sub.itemR(halo, "xalpha")
+		sub.itemR(halo, "shaded")
+		sub.itemR(halo, "soft")
+	
+		sub = row.column()
+		if (halo.ring):
+			sub.itemR(halo, "rings")
+		if (halo.lines):
+			sub.itemR(halo, "line_number")
+		if (halo.ring or halo.lines):
+			sub.itemR(halo, "seed")
+		if (halo.star):
+			sub.itemR(halo, "star_tips")
+		if (halo.flare_mode):
+			sub.itemL(text="Flare:")
+			sub.itemR(halo, "flare_size", text="Size")
+			sub.itemR(halo, "flare_subsize", text="Subsize")
+			sub.itemR(halo, "flare_boost", text="Boost")
+			sub.itemR(halo, "flare_seed", text="Seed")
+			sub.itemR(halo, "flares_sub", text="Sub")
 				
 bpy.types.register(MATERIAL_PT_material)
 bpy.types.register(MATERIAL_PT_raymir)

Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/ipo.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/ipo.c	2009-05-20 12:13:37 UTC (rev 20291)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/ipo.c	2009-05-20 13:34:04 UTC (rev 20292)
@@ -160,7 +160,7 @@
 // 	...
 	{MA_RAYTRANSP, "raytrace_transparency.enabled", 0},
 	{MA_RAYMIRROR, "raytrace_mirror.enabled", 0},
-	{MA_HALO, "halo.enabled", 0}
+//	{MA_HALO, "type", MA_TYPE_HALO}
 };
 
 /* ----------------- */

Modified: branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c	2009-05-20 12:13:37 UTC (rev 20291)
+++ branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c	2009-05-20 13:34:04 UTC (rev 20292)
@@ -8912,6 +8912,7 @@
 	   bump the version (or sub-version.) */
 	{
 		Object *ob;
+		Material *ma;
 		int i;
 
 		for(ob = main->object.first; ob; ob = ob->id.next) {
@@ -8977,6 +8978,13 @@
 				ob->data = olddata;
 			}
 		}
+
+		for(ma = main->mat.first; ma; ma = ma->id.next) {
+			if(ma->mode & MA_HALO) {
+				ma->material_type= MA_TYPE_HALO;
+				ma->mode &= ~MA_HALO;
+			}
+		}
 	}
 
 	/* WATCH IT!!!: pointers from libdata have not been converted yet here! */

Modified: branches/blender2.5/blender/source/blender/editors/interface/interface_icons.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/interface/interface_icons.c	2009-05-20 12:13:37 UTC (rev 20291)
+++ branches/blender2.5/blender/source/blender/editors/interface/interface_icons.c	2009-05-20 13:34:04 UTC (rev 20292)
@@ -813,7 +813,7 @@
 		} 
 		else if (GS(id->name) == ID_MA) {
 			Material* mat = (Material*)id;
-			if (mat->mode & MA_HALO) {
+			if (mat->material_type == MA_TYPE_HALO) {
 				set_alpha( (char*) ri.rect, ri.pr_rectx, ri.pr_recty, 255);
 			}
 		}

Modified: branches/blender2.5/blender/source/blender/editors/preview/previewrender.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/preview/previewrender.c	2009-05-20 12:13:37 UTC (rev 20291)
+++ branches/blender2.5/blender/source/blender/editors/preview/previewrender.c	2009-05-20 13:34:04 UTC (rev 20292)
@@ -349,7 +349,7 @@
 
 				
 				if(sp->pr_method==PR_ICON_RENDER) {
-					if (mat->mode & MA_HALO) {
+					if (mat->material_type == MA_TYPE_HALO) {
 						sce->lay= 1<<MA_FLAT;
 					} 
 					else {

Modified: branches/blender2.5/blender/source/blender/editors/space_view3d/drawobject.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_view3d/drawobject.c	2009-05-20 12:13:37 UTC (rev 20291)
+++ branches/blender2.5/blender/source/blender/editors/space_view3d/drawobject.c	2009-05-20 13:34:04 UTC (rev 20292)
@@ -2281,7 +2281,7 @@
 	Object *ob= base->object;
 	Mesh *me = ob->data;
 	Material *ma= give_current_material(ob, 1);
-	int hasHaloMat = (ma && (ma->mode&MA_HALO));
+	int hasHaloMat = (ma && (ma->material_type == MA_TYPE_HALO));
 	int draw_wire = 0;
 	int totvert, totedge, totface;
 	DispList *dl;

Modified: branches/blender2.5/blender/source/blender/makesdna/DNA_material_types.h
===================================================================
--- branches/blender2.5/blender/source/blender/makesdna/DNA_material_types.h	2009-05-20 12:13:37 UTC (rev 20291)
+++ branches/blender2.5/blender/source/blender/makesdna/DNA_material_types.h	2009-05-20 13:34:04 UTC (rev 20292)
@@ -52,7 +52,7 @@
 	ID id;
 	struct AnimData *adt;	/* animation data (must be immediately after id for utilities to use it) */ 
 	
-	short colormodel, flag;	
+	short material_type, flag;	
 	/* note, keep this below synced with render_types.h */
 	float r, g, b;
 	float specr, specg, specb;
@@ -147,11 +147,10 @@
 	 */
 #define MAXMAT			16
 
-/* colormodel */
-#define MA_RGB			0
-#define MA_CMYK			1
-#define MA_YUV			2
-#define MA_HSV			3
+/* material_type */
+#define MA_TYPE_SURFACE	0
+#define MA_TYPE_HALO	1
+#define MA_TYPE_VOLUME	2
 
 /* flag */
 		/* for render */
@@ -166,7 +165,7 @@
 #define MA_WIRE			8
 #define MA_VERTEXCOL	16
 #define MA_HALO_SOFT	16
-#define MA_HALO			32
+#define MA_HALO			32			/* deprecated */
 #define MA_ZTRA			64
 #define MA_VERTEXCOLP	128
 #define MA_ZINV			256

Modified: branches/blender2.5/blender/source/blender/makesrna/intern/rna_material.c
===================================================================
--- branches/blender2.5/blender/source/blender/makesrna/intern/rna_material.c	2009-05-20 12:13:37 UTC (rev 20291)
+++ branches/blender2.5/blender/source/blender/makesrna/intern/rna_material.c	2009-05-20 13:34:04 UTC (rev 20292)
@@ -62,14 +62,14 @@

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list