[Bf-committers] [Bf-blender-cvs] SVN commit: /data/svn/bf-blender [34914] trunk/blender/release/scripts/ui/ properties_material.py: Commit patch [#25939] material panel proposal by Ervin Weber (lusque).

Michael Fox mfoxdogg at gmail.com
Wed Feb 16 22:33:00 CET 2011


This goes against all of the 2.5 UI design principles and pardigms and
show be removed or onlt be visible when needed, as its a clear case of
craming chikens into a basket, a big ugly mess

On that note it seems the design principles and paradigms that was set
when 2.5 was being desinged seem to have been trown out the window, its
a bloody mess, didn't parts behave differently share same info
differently, the UI of 2.5 is really getting more and more like 2.49 its
not funny, please can we get back on track instead of tacking on UI
elements like in the 2.4 series


On Wed, 2011-02-16 at 19:39 +0000, Thomas Dinges wrote:
> Revision: 34914
>           http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=34914
> Author:   dingto
> Date:     2011-02-16 19:39:45 +0000 (Wed, 16 Feb 2011)
> Log Message:
> -----------
> Commit patch [#25939] material panel proposal by Ervin Weber (lusque). Thanks!
> 
> >From the patch description:
> "A new panel is proposed to bring togheter all the properties of a material that belong to the render pipeline level.
> Such properties are currently not mixable with node materials, as nodes operate on a shader level."
> 
> Commiting this patch as approved in the sundy meeting. 
> 
> Modified Paths:
> --------------
>     trunk/blender/release/scripts/ui/properties_material.py
> 
> Modified: trunk/blender/release/scripts/ui/properties_material.py
> ===================================================================
> --- trunk/blender/release/scripts/ui/properties_material.py	2011-02-16 18:29:26 UTC (rev 34913)
> +++ trunk/blender/release/scripts/ui/properties_material.py	2011-02-16 19:39:45 UTC (rev 34914)
> @@ -34,6 +34,16 @@
>      return None
>  
> 
> +def check_material(mat):
> +    if mat is not None:
> +        if mat.use_nodes:
> +            if mat.active_node_material is not None:
> +                return True
> +            return False
> +        return True
> +    return False
> +
> +
>  class MATERIAL_MT_sss_presets(bpy.types.Menu):
>      bl_label = "SSS Presets"
>      preset_subdir = "sss"
> @@ -116,9 +126,16 @@
>          elif mat:
>              split.template_ID(space, "pin_id")
>              split.separator()
> -
> +        
>          if mat:
>              layout.prop(mat, "type", expand=True)
> +            if mat.use_nodes:
> +                row = layout.row()
> +                row.label(text="", icon='NODETREE')
> +                if mat.active_node_material:
> +                    row.prop(mat.active_node_material, "name", text="")
> +                else:
> +                    row.label(text="No material node selected")
>  
> 
>  class MATERIAL_PT_preview(MaterialButtonsPanel, bpy.types.Panel):
> @@ -129,16 +146,66 @@
>          self.layout.template_preview(context.material)
>  
> 
> +class MATERIAL_PT_pipeline(MaterialButtonsPanel, bpy.types.Panel):
> +    bl_label = "Render Pipeline Options"
> +    bl_options = {'DEFAULT_CLOSED'}
> +    COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
> +    
> +    @classmethod
> +    def poll(cls, context):
> +        mat = context.material
> +        engine = context.scene.render.engine
> +        return mat and (mat.type in ('SURFACE', 'WIRE', 'VOLUME')) and (engine in cls.COMPAT_ENGINES)
> +    
> +    def draw(self, context):
> +        layout = self. layout
> +        
> +        mat = context.material
> +        #split = layout.split()
> +        mat_type =  mat.type in ('SURFACE', 'WIRE')
> +        
> +        row = layout.row()
> +        row.active = mat_type
> +        row.prop(mat, "use_transparency")
> +        sub = row.column()
> +        sub.prop(mat, "offset_z")
> +        sub.active = mat_type and mat.use_transparency and mat.transparency_method == 'Z_TRANSPARENCY'
> +        
> +        row = layout.row()
> +        row.active = mat.use_transparency or not mat_type
> +        row.prop(mat, "transparency_method", expand=True)
> +        
> +        layout.separator() 
> +        
> +        split = layout.split()
> +        col = split.column()
> +        
> +        col.prop(mat, "use_raytrace") # 
> +        col.prop(mat, "use_full_oversampling") # 
> +        sub = col.column()
> +        sub.active = mat_type
> +        sub.prop(mat, "use_sky")
> +        sub.prop(mat, "invert_z")
> +        
> +        col = split.column()
> +        col.active = mat_type
> +        
> +        col.prop(mat, "use_cast_shadows_only", text="Cast Only")
> +        col.prop(mat, "shadow_cast_alpha", text="Casting Alpha")
> +        col.prop(mat, "use_cast_buffer_shadows")
> +        col.prop(mat, "use_cast_approximate")
> +
> +
>  class MATERIAL_PT_diffuse(MaterialButtonsPanel, bpy.types.Panel):
>      bl_label = "Diffuse"
>      COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
>  
>      @classmethod
>      def poll(cls, context):
> -        mat = active_node_mat(context.material)
> +        mat = context.material
>          engine = context.scene.render.engine
> -        return mat and (mat.type in ('SURFACE', 'WIRE')) and (engine in cls.COMPAT_ENGINES)
> -
> +        return check_material(mat) and (mat.type in ('SURFACE', 'WIRE')) and (engine in cls.COMPAT_ENGINES)
> +    
>      def draw(self, context):
>          layout = self.layout
>  
> @@ -202,10 +269,10 @@
>  
>      @classmethod
>      def poll(cls, context):
> -        mat = active_node_mat(context.material)
> +        mat = context.material
>          engine = context.scene.render.engine
> -        return mat and (mat.type in ('SURFACE', 'WIRE')) and (engine in cls.COMPAT_ENGINES)
> -
> +        return check_material(mat) and (mat.type in ('SURFACE', 'WIRE')) and (engine in cls.COMPAT_ENGINES)
> +    
>      def draw(self, context):
>          layout = self.layout
>  
> @@ -267,10 +334,10 @@
>  
>      @classmethod
>      def poll(cls, context):
> -        mat = active_node_mat(context.material)
> +        mat = context.material
>          engine = context.scene.render.engine
> -        return mat and (mat.type in ('SURFACE', 'WIRE')) and (engine in cls.COMPAT_ENGINES)
> -
> +        return check_material(mat) and (mat.type in ('SURFACE', 'WIRE')) and (engine in cls.COMPAT_ENGINES)
> +    
>      def draw(self, context):
>          layout = self.layout
>  
> @@ -302,31 +369,23 @@
>  
>      @classmethod
>      def poll(cls, context):
> -        mat = active_node_mat(context.material)
> +        mat = context.material
>          engine = context.scene.render.engine
> -        return mat and (mat.type in ('SURFACE', 'WIRE')) and (engine in cls.COMPAT_ENGINES)
> +        return check_material(mat) and (mat.type in ('SURFACE', 'WIRE')) and (engine in cls.COMPAT_ENGINES)
>  
> -    def draw_header(self, context):
> -        mat = active_node_mat(context.material)
> -
> -        self.layout.prop(mat, "use_transparency", text="")
> -
>      def draw(self, context):
>          layout = self.layout
> -
> +        
> +        base_mat = context.material
>          mat = active_node_mat(context.material)
>          rayt = mat.raytrace_transparency
> -
> -        row = layout.row()
> -        row.active = mat.use_transparency and (not mat.use_shadeless)
> -        row.prop(mat, "transparency_method", expand=True)
> -
> +        
>          split = layout.split()
>  
>          col = split.column()
>          col.prop(mat, "alpha")
>          row = col.row()
> -        row.active = mat.use_transparency and (not mat.use_shadeless)
> +        row.active = base_mat.use_transparency and (not mat.use_shadeless) # 
>          row.prop(mat, "specular_alpha", text="Specular")
>  
>          col = split.column()
> @@ -336,10 +395,10 @@
>          sub.active = rayt.fresnel > 0
>          sub.prop(rayt, "fresnel_factor", text="Blend")
>  
> -        if mat.transparency_method == 'RAYTRACE':
> +        if base_mat.transparency_method == 'RAYTRACE':
>              layout.separator()
>              split = layout.split()
> -            split.active = mat.use_transparency
> +            split.active = base_mat.use_transparency
>  
>              col = split.column()
>              col.prop(rayt, "ior")
> @@ -364,13 +423,13 @@
>  
>      @classmethod
>      def poll(cls, context):
> -        mat = active_node_mat(context.material)
> +        mat = context.material
>          engine = context.scene.render.engine
> -        return mat and (mat.type in ('SURFACE', 'WIRE')) and (engine in cls.COMPAT_ENGINES)
> +        return check_material(mat) and (mat.type in ('SURFACE', 'WIRE')) and (engine in cls.COMPAT_ENGINES)
>  
>      def draw_header(self, context):
>          raym = active_node_mat(context.material).raytrace_mirror
> -
> +        
>          self.layout.prop(raym, "use", text="")
>  
>      def draw(self, context):
> @@ -422,9 +481,9 @@
>  
>      @classmethod
>      def poll(cls, context):
> -        mat = active_node_mat(context.material)
> +        mat = context.material
>          engine = context.scene.render.engine
> -        return mat and (mat.type in ('SURFACE', 'WIRE')) and (engine in cls.COMPAT_ENGINES)
> +        return check_material(mat) and (mat.type in ('SURFACE', 'WIRE')) and (engine in cls.COMPAT_ENGINES)
>  
>      def draw_header(self, context):
>          mat = active_node_mat(context.material)
> @@ -633,10 +692,10 @@
>  
>      @classmethod
>      def poll(cls, context):
> -        mat = active_node_mat(context.material)
> +        mat = context.material
>          engine = context.scene.render.engine
> -        return mat and (mat.type in ('SURFACE', 'WIRE')) and (engine in cls.COMPAT_ENGINES)
> -
> +        return check_material(mat) and (mat.type in ('SURFACE', 'WIRE')) and (engine in cls.COMPAT_ENGINES)
> +    
>      def draw(self, context):
>          layout = self.layout
>  
> @@ -645,14 +704,7 @@
>          split = layout.split()
>  
>          col = split.column()
> -        col.prop(mat, "use_raytrace")
> -        col.prop(mat, "use_full_oversampling")
> -        col.prop(mat, "use_sky")
>          col.prop(mat, "use_mist")
> -        col.prop(mat, "invert_z")
> -        sub = col.row()
> -        sub.prop(mat, "offset_z")
> -        sub.active = mat.use_transparency and mat.transparency_method == 'Z_TRANSPARENCY'
>          sub = col.column(align=True)
>          sub.label(text="Light Group:")
>          sub.prop(mat, "light_group", text="")
> @@ -678,10 +730,10 @@
>  
>      @classmethod
>      def poll(cls, context):
> -        mat = active_node_mat(context.material)
> +        mat = context.material
>          engine = context.scene.render.engine
> -        return mat and (mat.type in ('SURFACE', 'WIRE')) and (engine in cls.COMPAT_ENGINES)
> -
> +        return check_material(mat) and (mat.type in ('SURFACE', 'WIRE')) and (engine in cls.COMPAT_ENGINES)
> +    
>      def draw(self, context):
>          layout = self.layout
>  
> @@ -693,11 +745,8 @@
>          col.prop(mat, "use_shadows", text="Receive")
>          col.prop(mat, "use_transparent_shadows", text="Receive Transparent")
>          col.prop(mat, "use_only_shadow", text="Shadows Only")
> -        col.prop(mat, "use_cast_shadows_only", text="Cast Only")
> -        col.prop(mat, "shadow_cast_alpha", text="Casting Alpha")
>  
>          col = split.column()
> -        col.prop(mat, "use_cast_buffer_shadows")
>          sub = col.column()
>          sub.active = mat.use_cast_buffer_shadows
>          sub.prop(mat, "shadow_buffer_bias", text="Buffer Bias")
> @@ -705,7 +754,6 @@
>          sub = col.column()
>          sub.active = (not mat.use_ray_shadow_bias)
>          sub.prop(mat, "shadow_ray_bias", text="Ray Bias")
> -        col.prop(mat, "use_cast_approximate")
>  
> 
>  class MATERIAL_PT_transp_game(MaterialButtonsPanel, bpy.types.Panel):
> @@ -715,31 +763,17 @@
>  
>      @classmethod
>      def poll(cls, context):
> -        mat = active_node_mat(context.material)
> +        mat = context.material
>          engine = context.scene.render.engine
> -        return mat  and (engine in cls.COMPAT_ENGINES)
> +        return check_material(mat) and (engine in cls.COMPAT_ENGINES)
>  
> -    def draw_header(self, context):
> -        mat = active_node_mat(context.material)
> -
> -        self.layout.prop(mat, "use_transparency", text="")
> -
>      def draw(self, context):
>          layout = self.layout
>  
>          mat = active_node_mat(context.material)
> -        rayt = mat.raytrace_transparency
> +        layout.prop(mat, "alpha")
>  
> -        row = layout.row()
> 
> @@ Diff output truncated at 10240 characters. @@
> _______________________________________________
> Bf-blender-cvs mailing list
> Bf-blender-cvs at blender.org
> http://lists.blender.org/mailman/listinfo/bf-blender-cvs




More information about the Bf-committers mailing list