WIP - Shading menu

Ici on parle des scripts

Modérateurs : frez, Yadoob, stilobique, Matpi, ModSquad

WIP - Shading menu

Message par cedric » 12 Juil 2014, 09:56

Yop,

Je suis en train d'ajouter des éléments à mon menu shading.
J'en ait fait une version dans la barre du bas si ça peut vous intéresser.
Lapineige m'a codé deux parties bien pratique aussi.

Le but est d'avoir tous les éléments de shading à porté de clic. Pour ma part ce sera dans mon custom menu flottant, je trouve ça plus pratique.

J'essaie d'avoir les outils comme ils devraient être, genre le wire sur tous les objets d'un coup et surtout avec le show all edge d'activé, la grille qui s'affiche et se cache avec les axes en même temps.

Image

Voici le code pour le moment pour ceux qui veulent tester.

Code : Tout sélectionner
############# Add-on description (use by Blender)

bl_info = {
    "name": "Shading_menu",
    "description": 'Add the option "Show Grid" on the View 3D Header',
    "author": "Cedric Lepiller",
    "version": (1, 0),
    "blender": (2, 70, 0),
    "location": "View3D > Header > Shading_menu",
    "warning": "", # used for warning icon and text in addons panel
    "wiki_url": "",
    "tracker_url": "http://www.pitiwazou.com",
    "category": "3D View"}

##############

import bpy


#Wire on all objects
class Wire_All(bpy.types.Operator):
    """Tooltip"""
    bl_idname = "object.simple_operator"
    bl_label = "Simple Object Operator"

    @classmethod
    def poll(cls, context):
        return context.active_object is not None

    def execute(self, context):
       
        for obj in bpy.data.objects:
            if obj.show_wire:
                obj.show_all_edges = False
                obj.show_wire = False
            else:
                obj.show_all_edges = True
                obj.show_wire = True
        return {'FINISHED'}



bpy.utils.register_class(Wire_All)

#Grid show/hide with axes

class ToogleGridAxis(bpy.types.Operator):
    """Tooltip"""
    bl_idname = "scene.tooglegridaxis"
    bl_label = "Toogle Grid and Axis in 3D view"

    @classmethod
    def poll(cls, context):
        return context.active_object is not None

    def execute(self, context):
        bpy.context.space_data.show_axis_y = not bpy.context.space_data.show_axis_y
        bpy.context.space_data.show_axis_x = not bpy.context.space_data.show_axis_x
        bpy.context.space_data.show_floor = not bpy.context.space_data.show_floor
        return {'FINISHED'}
   
bpy.utils.register_class(ToogleGridAxis)


class Shading(bpy.types.Menu):
    bl_label = "Shading"
   
   
    def draw(self, context):
        layout = self.layout     
           
        #Cam block
       
        layout.operator("scene.tooglegridaxis", text="Show/Hide Grid", icon="MESH_GRID")
        layout.operator("wm.context_toggle", text="Matcaps", icon='MATCAP_02').data_path = "space_data.use_matcap"
        layout.operator("wm.context_toggle", text="Lock Cam 2 view", icon='OUTLINER_DATA_CAMERA').data_path = "space_data.lock_camera"
        layout.operator("wm.context_toggle", text="Only Render", icon='SOLID').data_path = "space_data.show_only_render"
        layout.separator()
        #Normals block
       
       
        layout.operator("wm.context_toggle", text="Show Normals", icon='FACESEL').data_path = "object.data.show_normal_face"
        layout.operator("object.shade_flat", icon = 'ALIASED')
        layout.operator("object.shade_smooth", icon = 'ANTIALIASED')
        layout.separator()
       
        #Wire block
       

        #layout.operator("wm.context_toggle", text="GLSL", icon="ANTIALIASED").data_path = "scene.game_settings.material_mode_GLSL"
        layout.operator("wm.context_toggle", text="Auto Smooth", icon='SNAP_FACE').data_path = "object.data.use_auto_smooth"
        layout.operator("wm.context_toggle", text="Double Sided", icon='MESH_CUBE').data_path = "object.data.show_double_sided"
        layout.operator("wm.context_toggle", text="Backface culling", icon="SNAP_FACE").data_path = "space_data.show_backface_culling"
        layout.operator("wm.context_toggle", text="Limit to Visible", icon="ORTHO").data_path = "space_data.use_occlude_geometry"
        layout.operator("wm.context_toggle", text="Hidden Wire", icon='GHOST_ENABLED').data_path = "space_data.show_occlude_wire"
        layout.operator("wm.context_toggle", text="Xray", icon='META_CUBE').data_path = "object.show_x_ray"
        layout.operator("object.simple_operator", text="Wire", icon='WIRE')
       
bpy.utils.register_class(Shading)

# Define the UI items to add

def view3d_Shading_menu(self, context):
    layout = self.layout
    #layout.prop(context.space_data, "show_only_render")
    #layout.prop(context.space_data, "show_floor")
    layout.menu("Shading")
   
   
# Fonction called by BLender on add-on start
def register():
    bpy.types.VIEW3D_HT_header.append(view3d_Shading_menu) # Add UI items to 3D View header
   
# Fonction called by BLender on add-on unistall
def unregister():
    bpy.types.VIEW3D_HT_header.remove(view3d_Shading_menu)
   
   
if __name__ == "__main__":
    register()





Les trucs que j'aimerai bien ajouter c'est le GLSL pour y passer rapidos quand je fais du painting.
Un autre truc qui serait cool, c'est de pouvoir passer tous les objets de la scène en bounds
Ou tous les objets sauf celui sélectionné.

Image

Je n'ai pas encore réussis à avoir le shade smooth et flat sur tous les objets aussi.

Si vous avez des idées sur ce genre d'outils combinés qui font gagner du temps n'hésitez pas ;)
Le but est de mettre tous les éléments de shading dans ce menu pour gagner le plus de temps possible !
Cédric Lepiller, Freelance 3D Pitiwazou.com, Mes Addons, Asset Management, Speedflow
Avatar de l’utilisateur
cedric
Administrateur
 
Message(s) : 7053
Inscription : 03 Août 2013, 21:36

Re: WIP - Shading menu

Message par Olive » 12 Juil 2014, 10:33

(..) j'aimerai bien ajouter c'est le GLSL pour y passer rapidos quand je fais du painting. (..)


Tu peux peut-être l'enregistrer directement dans ta scène start-up par défaut ? :roll:
Dernière édition par Olive le 14 Juil 2014, 16:22, édité 1 fois.
Avatar de l’utilisateur
Olive
 
Message(s) : 695
Inscription : 30 Sep 2013, 15:20
Localisation : Chaon (41)

Re: WIP - Shading menu

Message par cedric » 12 Juil 2014, 10:41

Oui aussi, mais le GLSL implique d'avoir des lights sinon c'est tout noir, poiur ça que je ne le met que quand j'en ai besoin.
Cédric Lepiller, Freelance 3D Pitiwazou.com, Mes Addons, Asset Management, Speedflow
Avatar de l’utilisateur
cedric
Administrateur
 
Message(s) : 7053
Inscription : 03 Août 2013, 21:36

Re: WIP - Shading menu

Message par Olive » 12 Juil 2014, 12:09

Et pourquoi tu rajoutes pas aussi un sun à ta scène ?
Avatar de l’utilisateur
Olive
 
Message(s) : 695
Inscription : 30 Sep 2013, 15:20
Localisation : Chaon (41)

Re: WIP - Shading menu

Message par cedric » 12 Juil 2014, 12:23

Parce que j'en ai pas toujours besoin ^^
Cédric Lepiller, Freelance 3D Pitiwazou.com, Mes Addons, Asset Management, Speedflow
Avatar de l’utilisateur
cedric
Administrateur
 
Message(s) : 7053
Inscription : 03 Août 2013, 21:36

Re: WIP - Shading menu

Message par lapineige » 12 Juil 2014, 16:58

C'est qu'il progresse le petit(wazou) !
Mince je vais avoir de la concurrence :-P
C'est bien sympa tout ça. :)
Mon terrier/blog: https://lapineige.fr/wp (l'ancien: le-terrier-de-lapineige.over-blog.com) | Mon GitHub: https://github.com/lapineige/Blender_add-ons | Lapineige's Tools: http://cgcookiemarkets.com/blender/all- ... ompilation
Avatar de l’utilisateur
lapineige
 
Message(s) : 3716
Inscription : 25 Juin 2014, 07:06

Re: WIP - Shading menu

Message par Olive » 14 Juil 2014, 16:28

Est-ce que ton "shading_menu" nécessite d'avoir l'add-on "Display_Tools" installé ?
Avatar de l’utilisateur
Olive
 
Message(s) : 695
Inscription : 30 Sep 2013, 15:20
Localisation : Chaon (41)

Re: WIP - Shading menu

Message par cedric » 14 Juil 2014, 16:56

Non ^^
Cédric Lepiller, Freelance 3D Pitiwazou.com, Mes Addons, Asset Management, Speedflow
Avatar de l’utilisateur
cedric
Administrateur
 
Message(s) : 7053
Inscription : 03 Août 2013, 21:36


Retour vers Scripts - Python - OSL

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 1 invité