Boutique Cinema 4D
Affichage des résultats 1 à 30 sur 30

Discussion: Retrouver un shader à partir de sa map?

  1. #1
    Big Boss Avatar de NiKo
    Date d'inscription
    novembre 2002
    C4D version
    R12 Studio
    OS
    OSX
    Messages
    6 469

    Retrouver un shader à partir de sa map?

    Hello...
    Question à 2 balles sur un truc qui me fait souvent perdre du temps.
    Comment fait-on pour retrouver le matériau qui utilise une map spécifique?
    Exemple: je sais que le fichier bidule.psd est utilisé dans l'un de mes 400 shaders, mais je ne sais pas lequel et j'ai un peu la flemme (on me comprend) d'aller le chercher à la mano et au hasard dans tous les canaux. Le menu Edit > Project Info > Structure me hiérarchise bien toutes les maps présentes dans mon projet, mais de là il n'y a pas de raccourci pour remonter au shader qui utilise cette map.
    Alors comment on fait?

    Merci d'avance pour toute suggestion!

    NiKo

  2. #2
    Gourou Avatar de lenogre
    Date d'inscription
    août 2002
    C4D version
    R20 Studio
    OS
    OS 10.12.6
    Messages
    4 366
    Y aune astuce. J'ai vu ça sur internet.
    Je vais chercher mes gosses et je te tiens au jus.
    Tout ce que j'écris est à prendre au 15e degré. Car comme dit le proverbe chinois : Quand le dragon d'or, le ragondin ; voilà qui devrait faire taire les critiques et me mettre à l'abri d'attaques frontales.

  3. #3
    Pilier Avatar de oli_d
    Date d'inscription
    avril 2004
    C4D version
    Autre
    OS
    MacOS X
    Messages
    707
    Citation Envoyé par NiKo Voir le message
    Hello...
    e sais que le fichier bidule.psd est utilisé dans l'un de mes 400 shaders, mais je ne sais pas lequel et j'ai un peu la flemme (on me comprend) d'aller le chercher à la mano et au hasard dans tous les canaux. Le menu Edit > Project Info > Structure
    NiKo
    J'ai pas la solution, mais déjà comme tu l'as dit via menu Edit > Project Info > Textures de l'éditeur d'attributs tu peux choisir matériau sélectionné au lieu de projet, comme ça tu n'a pas besoin de cliquer dans chaque canal, mais bon ça fait toujours encore 400 clics...

    En python cela doit être faisable, simple si on regarde dans chaque canal à la racine, par contre si on a des calques je n'ai jamais regardé comment ça marche, mais cela doit être possible... A voir si personne n'a d'autre solution toute faite

  4. #4
    Gourou Avatar de lenogre
    Date d'inscription
    août 2002
    C4D version
    R20 Studio
    OS
    OS 10.12.6
    Messages
    4 366
    Pas vraiment de solution finalement.
    Tu peux verrouiller ta palette Attributs > Mode Infos projet > Textures, Matériau sélection sélectionné puis ensuite cliquer sur tes matériaux dans ton gestionnaire de matériaux pour voir quelle textures sont utilisées. Mais rien d'automatique.
    Dernière modification par lenogre ; 30/04/2013 à 18h35.
    Tout ce que j'écris est à prendre au 15e degré. Car comme dit le proverbe chinois : Quand le dragon d'or, le ragondin ; voilà qui devrait faire taire les critiques et me mettre à l'abri d'attaques frontales.

  5. #5
    Pilier
    Date d'inscription
    novembre 2005
    Messages
    539
    Salut !

    Ben si tu n'as pas mieux tu vires l'image du fichier tex, tu fais enregistrer le projet et là il te donne l'image manquante et le matériau.

    C'est pas vachement élégant mais tu le fais quand personne te voit.

  6. #6
    Pilier Avatar de oli_d
    Date d'inscription
    avril 2004
    C4D version
    Autre
    OS
    MacOS X
    Messages
    707
    Bon en fait en python c'était plus simple que je pensais, colle ce code dans le gestionnaire de script puis exécuter

    Tu rentres le nom de l'image dans la boîte de dialogue (pas le chemin juste le nom) et normalement cela te sélectionne tous les matériaux qui utilisent cette image :

    Code PHP:
    import c4d
    import os
    .path
        
    def searchBitmap
    (shdliste):
        
        while 
    shd:
            if 
    shd.CheckType(c4d.Xbitmap):
                
    fn shd[c4d.BITMAPSHADER_FILENAME]
                
    name os.path.basename(fn)
                
    liste.append(name)
            
    searchBitmap(shd.GetDown(), liste)
            
    shd shd.GetNext()

    def main():
        
    nom_img c4d.gui.InputDialog("Rentrez le nom de l'image :")
        
    mat doc .GetFirstMaterial()
        while 
    mat:
            
    lst = []
            
    shd mat.GetFirstShader()
            
    searchBitmap(shdlst)
            if 
    nom_img in lst :
                
    mat.SetBit(c4d.BIT_ACTIVE)
            else : 
    mat.DelBit(c4d.BIT_ACTIVE)
            
    mat mat.GetNext()
        
    c4d.EventAdd()

    if 
    __name__=='__main__':
        
    main() 
    J'ai testé que sur mac, mais cela devrait marcher sur PC
    Dernière modification par oli_d ; 30/04/2013 à 19h28.

  7. #7
    Pilier Avatar de gaff
    Date d'inscription
    novembre 2007
    C4D version
    R19 Studio
    OS
    Mac Os 11.1
    Messages
    701
    Super efficace ton script… un gros merci.
    Cela évite un temps fou à chercher une aiguille dans une botte de foin
    Je comprends vite, mais faut m'expliquer longtemps…

  8. #8
    Gourou Avatar de valkaari
    Date d'inscription
    mai 2009
    C4D version
    Autre
    OS
    OSX / windows
    Messages
    2 949
    simple, précis efficace nickel quoi

  9. #9
    Big Boss Avatar de NiKo
    Date d'inscription
    novembre 2002
    C4D version
    R12 Studio
    OS
    OSX
    Messages
    6 469
    Vous en rêviez? Oli-d l'a fait!
    Bravissimo! Super merci!
    Peloton de tête sur la liste (conséquente) des gens à qui je dois payer une binouze!

  10. #10
    Vieux Croûton Avatar de shtl
    Date d'inscription
    octobre 2004
    C4D version
    S22 Souscription
    OS
    osX 12.3.1
    Messages
    13 880
    Billets dans le blog
    5
    Mortel merci Oli_D !
    2x6coreXéon2.66(24T);64Gram; GTX 1080; OSX10.13.6 ////
    Mac Studio 128 Ram ; OSX 12.3.1 ; papiercrayoncerveau;S22Studio;Redshift;Zbrush2022; CS2022
    ///SHTL 2011 DEMO HERE : http://demo.shtl.org/ /// NEW! 2014 WIP

  11. #11
    Pilier Avatar de rik25
    Date d'inscription
    septembre 2011
    C4D version
    R16 Studio
    OS
    v7 64
    Messages
    630
    Super Oli_d ! Merki

  12. #12
    Gourou Avatar de clemz
    Date d'inscription
    février 2009
    C4D version
    R15 Studio
    OS
    windaube x64
    Messages
    2 165
    merci Oli_D !

  13. #13
    Gourou Avatar de lenogre
    Date d'inscription
    août 2002
    C4D version
    R20 Studio
    OS
    OS 10.12.6
    Messages
    4 366
    Pouce haut !
    Tout ce que j'écris est à prendre au 15e degré. Car comme dit le proverbe chinois : Quand le dragon d'or, le ragondin ; voilà qui devrait faire taire les critiques et me mettre à l'abri d'attaques frontales.

  14. #14
    Gourou Avatar de amateur
    Date d'inscription
    février 2005
    C4D version
    R16 Studio
    OS
    win7 x64
    Messages
    2 544
    Oli_D passe ici et c'est réglé
    A fait d'énormes progrès pour se rapprocher du radiateur

  15. #15
    Gourou Avatar de tabou
    Date d'inscription
    juin 2002
    C4D version
    R21 Perpétuelle
    OS
    OS X 10.13.6
    Messages
    2 272
    Excellent oli_d
    Je sens qu'il va me servir souvent : je l'ai déjà intégré dans mon interface.

  16. #16
    Pilier Avatar de oli_d
    Date d'inscription
    avril 2004
    C4D version
    Autre
    OS
    MacOS X
    Messages
    707
    rhoooo ça fait plaisir ces retours, merci les z'amis

  17. #17
    Vieux Croûton Avatar de Aurety
    Date d'inscription
    juillet 2002
    C4D version
    R17 Studio
    OS
    Mac
    Messages
    14 477
    Billets dans le blog
    3
    Terrible !!! Merci Oli
    kenavo !! // Pinterest KAMIGAZ®

  18. #18
    Pilier Avatar de oli_d
    Date d'inscription
    avril 2004
    C4D version
    Autre
    OS
    MacOS X
    Messages
    707
    Petite amélioration avec menu déroulant contenant toutes les images utilisées pour le choix de l'image :
    Code PHP:
    import c4d
    import os
    .path

    class MonDlg(c4d.gui.GeDialog):
        
    """Dialogue pour le choix de l'image, avec liste dérouante de toutes les images
           utilisées dans les différents matériaux du doc"""
        
    def __init__(self,lst):
            
    self.lst lst
            self
    .choix lst[0]

        
    def CreateLayout(self):
            
    self.SetTitle("Sélecteur de matériau par image ")
            
            
    self.GroupBegin(1000,flags=c4d.BFH_SCALEFITcols=2rows=1)
            
    self.GroupBorderSpace(1010100)
            
    self.AddStaticText(1001,name="Image : "flags=c4d.BFH_MASKinitw=100)                                  
            
    self.AddComboBox(1002,flags=c4d.BFH_MASKinitw=250)
            
    self.GroupEnd()
                     
            
    self.GroupBegin(2000,flags=c4d.BFH_CENTERcols=2rows=1)
            
    self.GroupBorderSpace(1010100)
            
    self.AddButton(2001flags=c4d.BFH_CENTERinitw=100name="OK")
            
    self.AddButton(2002flags=c4d.BFH_CENTERinitw=100name="Annuler")
            
    self.GroupEnd()
            
            return 
    True
            
        def InitValues
    (self):
            for 
    i,n in enumerate(self.lst):
                
    self.AddChild(1002,i,n)
            return 
    True
            
        def Command
    (self,id,msg): 
            if 
    id==1002 :#choix dans la liste
                
    self.choix =  self.lst[self.GetLong(1002)]
            
            if 
    id==2001:#bouton ok
                
    selectMatImg(self.choix)
                
    self.Close()
            
            if 
    id==2002:#bouton annuler
                
    self.Close()    
        
            return 
    True
        
    def searchBitmap
    (shdliste):
        
    """fonction récursive qui renvoie une liste avec les noms des fichiers images
           utilisés dans le shader"""
        
    while shd:
            if 
    shd.CheckType(c4d.Xbitmap):
                
    fn shd[c4d.BITMAPSHADER_FILENAME]
                
    name os.path.basename(fn)
                
    liste.append(name)
            
    searchBitmap(shd.GetDown(), liste)
            
    shd shd.GetNext()
            
    def getListImg(docu=doc):
        
    """renvoie la liste de toutes les images contenue dasn les materiaux du doc"""
        
    return sorted([os.path.basename(tex) for i,tex in docu.GetAllTextures()])


    def selectMatImg(nom_imgdocu=doc):
        
    """selectionne les materiaux qui utilisent l'image"""
        
    if not nom_img : return
        
    mat docu .GetFirstMaterial()
        while 
    mat:
            
    lst = []
            
    shd mat.GetFirstShader()
            
    searchBitmap(shdlst)
            if 
    nom_img in lst :
                
    mat.SetBit(c4d.BIT_ACTIVE)
            else : 
    mat.DelBit(c4d.BIT_ACTIVE)
            
    mat mat.GetNext()
        
    c4d.EventAdd()
        
    def main():
        
    imgs =  getListImg(docu=doc)
        if 
    not len(imgs):
            
    c4d.gui.MessageDialog("Il n'y a aucune image utilisée")
            return
        
    dlg MonDlg(imgs)
        
    dlg.Open(c4d.DLG_TYPE_MODAL)
        return

    if 
    __name__=='__main__':
        
    main() 
    Dernière modification par oli_d ; 04/05/2013 à 08h35.

  19. #19
    Vieux Croûton Avatar de Aurety
    Date d'inscription
    juillet 2002
    C4D version
    R17 Studio
    OS
    Mac
    Messages
    14 477
    Billets dans le blog
    3
    franchement génial !! Je me suis permis de le poster chez nos amis de CGTalk Oli
    kenavo !! // Pinterest KAMIGAZ®

  20. #20
    Pilier Avatar de oli_d
    Date d'inscription
    avril 2004
    C4D version
    Autre
    OS
    MacOS X
    Messages
    707
    Super, tu as bien fait !

  21. #21
    Gourou Avatar de clemz
    Date d'inscription
    février 2009
    C4D version
    R15 Studio
    OS
    windaube x64
    Messages
    2 165
    merci Oli tu es zun chef !

  22. #22
    Big Boss Avatar de NiKo
    Date d'inscription
    novembre 2002
    C4D version
    R12 Studio
    OS
    OSX
    Messages
    6 469
    Super!

    Question annexe: j'ai docké le script dans mon interface. J'ai moyen de lui attribuer une icone spécifique créée toute exprès?

  23. #23
    Pilier Avatar de xs_yann
    Date d'inscription
    février 2005
    C4D version
    R19 Studio
    OS
    Mac OS X 10.13
    Messages
    1 990
    Salut,

    Citation Envoyé par NiKo Voir le message
    Super!

    Question annexe: j'ai docké le script dans mon interface. J'ai moyen de lui attribuer une icone spécifique créée toute exprès?
    Dans le Script Manager, Menu 'File' > Load Icon...

  24. #24
    Gourou Avatar de Paradox
    Date d'inscription
    juin 2006
    C4D version
    R15 Studio
    OS
    Mac OS X
    Messages
    3 955
    Billets dans le blog
    1
    Je n'arrive pas à coller le code dans le gestionnaire de scripts. Tout reste grisé...
    Y a une manip particulière à faire ?
    www.paradoxstudio.fr - MacPro 12 core 2.93 ghz - 16 Go Ram - NVIDIA Quadro 4000 + GT120 / MacPro Octo-core 3.2 ghz / Wacom Cintiq 12 WX

  25. #25
    Pilier Avatar de xs_yann
    Date d'inscription
    février 2005
    C4D version
    R19 Studio
    OS
    Mac OS X 10.13
    Messages
    1 990
    Citation Envoyé par Paradox Voir le message
    Je n'arrive pas à coller le code dans le gestionnaire de scripts. Tout reste grisé...
    Y a une manip particulière à faire ?
    Il faut que tu crées un nouveau Script. Dans le Script Manager, Menu 'File' > New.

  26. #26
    Vieux Croûton Avatar de Aurety
    Date d'inscription
    juillet 2002
    C4D version
    R17 Studio
    OS
    Mac
    Messages
    14 477
    Billets dans le blog
    3
    gestionnaire de script -> nouveau script ( en Python ) - > tu colles le script -> ensuite executer
    kenavo !! // Pinterest KAMIGAZ®

  27. #27
    Gourou Avatar de Paradox
    Date d'inscription
    juin 2006
    C4D version
    R15 Studio
    OS
    Mac OS X
    Messages
    3 955
    Billets dans le blog
    1
    Haaaa merci les potos !
    Moi et les lignes de codes, ça fait pas bon ménage.... J'avais point vu le menu Fichier dans le gestionnaire......

    C'est top Oli_d, ça marche du feu de dieu. Hop ! Docké directement !
    www.paradoxstudio.fr - MacPro 12 core 2.93 ghz - 16 Go Ram - NVIDIA Quadro 4000 + GT120 / MacPro Octo-core 3.2 ghz / Wacom Cintiq 12 WX

  28. #28
    Gourou Avatar de Paradox
    Date d'inscription
    juin 2006
    C4D version
    R15 Studio
    OS
    Mac OS X
    Messages
    3 955
    Billets dans le blog
    1
    Je me suis permis de faire une icone spécifique pour docker tout ça proprement. Si ça intéresse quelqu'un, je partage l'image.
    Miniatures attachées Miniatures attachées searchsader.png  
    www.paradoxstudio.fr - MacPro 12 core 2.93 ghz - 16 Go Ram - NVIDIA Quadro 4000 + GT120 / MacPro Octo-core 3.2 ghz / Wacom Cintiq 12 WX

  29. #29
    Big Boss Avatar de NiKo
    Date d'inscription
    novembre 2002
    C4D version
    R12 Studio
    OS
    OSX
    Messages
    6 469
    Yep... Pris. Merci Paradox.
    J'ai appelé le script Bitmap2shader. Docké. Imppec.
    Mille bravo Oli

  30. #30
    Gourou Avatar de diego1968
    Date d'inscription
    juillet 2006
    C4D version
    R21 Perpétuelle
    OS
    Mac OS 10.13.6
    Messages
    2 149
    Wouahou ! Vous êtes vraiment trop fort !

    Merci Oli_D

    Et merci Paradox pour l'icone

Discussions similaires

  1. [Question] retrouver les matériaux du site vrayforc4d dans la médiathèque
    Par campa71 dans le forum V-Ray
    Réponses: 2
    Dernier message: 10/01/2013, 01h55
  2. retrouver ses ID
    Par Gyom dans le forum Rendu
    Réponses: 9
    Dernier message: 09/03/2010, 10h32
  3. ashtray shader (and cadre shader)
    Par georgedrakakis dans le forum Textures
    Réponses: 5
    Dernier message: 05/02/2007, 22h44
  4. S'y retrouver dans un projet...
    Par ozchan dans le forum Général Cinema 4D
    Réponses: 10
    Dernier message: 06/02/2005, 16h20
  5. retrouver element...
    Par tit dans le forum Textures
    Réponses: 10
    Dernier message: 21/04/2004, 14h38

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •  
Mediaworks - Logiciels 3D | Design Internet - Creation site internet