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

Discussion: Convertir les materiaux V-Ray ou Octane vers C4D Standard

Vue hybride

  1. #1
    Dépendant
    Date d'inscription
    décembre 2005
    Messages
    303

    Convertir les materiaux V-Ray ou Octane vers C4D Standard

    Salut tous le monde !

    Nous sommes quelque un à essayé de trouver une solution pour convertir les textures de Vray (dans cinema 4D) vers le Rendu Physique de Cinema 4D ?
    Il existe depuis Vray la possibilité de convertir les textures C4D vers VRAY mais pour l'inverse nous ne trouvons pas de solutions...
    Floc à trouvé un code en COFFEE qui fonctionné sous les anciennes version de C4D et VRAY mais qui n'est plus utilisable aujourd'hui...
    Nous nous demandons donc si quelqu'un serait capable de transformer le code pour l'adapter aux actuelles versions ?

    Voici le lien : https://forums.cgsociety.org/t/vray-...-maybe/1504511

    Un grand merci d'avance !
    Dernière modification par shtl ; 26/03/2020 à 09h19. Motif: titre

  2. #2
    Gourou Avatar de valkaari
    Date d'inscription
    mai 2009
    C4D version
    Autre
    OS
    OSX / windows
    Messages
    2 949
    Comme il y a plusieurs type de texture vray (je connais hyper mal vray) faudrait déjà essayer de référencer des correspondances.

    Qu'est ce qu'on fait si on trouve un vray blend material. Est ce qu'il peut y avoir des layers, les bruits, les textures.

    on fait ça pour une matière puis on fait une boucle puis voilà =)


    (j'ai pas une chié de temps pour ce genre de chose en ce moment)

    Comment créer un tableau de BaseMaterial qui correspondent à des Matériaux V-ray

    Code PHP:
    import c4d
    from c4d import gui
    # Welcome to the world of Python






    # Main function


    vrayMatsIds = {
    1022115 'V-Ray 2 Sided Material/V-Ray 2 Sided Material'       ,
    1024192 'V-Ray Fast SSS2 Material/V-Ray Fast SSS2 Material'   ,
    1022116 'V-Ray Blend Material/V-Ray Blend Material'           ,
    1035368 'V-Ray OSL Material/V-Ray OSL Material'               ,
    1039186 'V-Ray VrMat Material/V-Ray VrMat Material'           ,
    1020295 'V-Ray Advanced Material/V-Ray Advanced Material'    
    }




    def GetAllMaterials(OnlyVray True):
        
    # Creates an empty array and add all materials in it.
        # By default, only pick vray materials
        
    mats = []
        
    mat doc.GetFirstMaterial()
        while 
    mat:
            if 
    mat.GetType() in vrayMatsIds:
                
    mats.append(mat)
            
    mat mat.GetNext()
        return 
    mats






    def main
    ():
        
        
        for 
    mat in GetAllMaterials():
            print 
    mat




    # Execute main()
    if __name__=='__main__':
        
    main() 
    Dernière modification par valkaari ; 27/05/2019 à 21h25.

  3. #3
    Pilier Avatar de Floc
    Date d'inscription
    novembre 2012
    C4D version
    R15 Studio
    OS
    WindOSX
    Messages
    1 617
    Voici la version inspirée du coffee deja postée ici avec les explications.
    Je la reposte ici, comme ça si un valeureux dev passe par la qu’il n’hesite point à pointer de son doigt expert les eventuelles bourdes !
    D'ailleur je vois que Vaalkari est déja passé, zut je l'ai manqué

    On pourrai rester ici maintenant, vu qu'il y a quatre discussion sur ce même sujet
    Fichiers attachés Fichiers attachés

  4. #4
    Gourou Avatar de valkaari
    Date d'inscription
    mai 2009
    C4D version
    Autre
    OS
    OSX / windows
    Messages
    2 949
    dès que j'ai un peu de temps je regardes, n'hésites pas à poser des questions.

    Et pour réagir à ton autre post, non c'est pas si compliqué, bien pour ça qu'on encourage tout le monde à mettre le nez dedans
    Dernière modification par valkaari ; 27/05/2019 à 14h49.

  5. #5
    Pilier Avatar de Floc
    Date d'inscription
    novembre 2012
    C4D version
    R15 Studio
    OS
    WindOSX
    Messages
    1 617
    Merci Vaalkari, je crois qu'un oeil expert ne sera pas de trop.

    En attendant, voila une version améliorée.
    Je me suis rendu compte que le canal weight de vray en fait c’est l’alpha, donc je l’ai rajouter.
    Les layers sont pris en compte et le Filter conserve maintenant ses parametres.
    J’ai ajouter un dialogue pour l’option remplacer les materiaux dans les tags.
    et j’ai aussi ajouter un petit icone (total illisible )

    J’ai converti ma grosse scene avec, et ca à l’air de plutot bien fonctionner.
    Par contre dans cette scene la majorité des bitmap sont des bitmapshader C4d, mais j’ai quand même rencontré quelques materiaux ou le vrayAdvBitmap Shader a été utilisé et bien sur dans ce cas ca ne fonctionne pas. Mais il semblerai que les utilsateur vray utlise plutôt les shader c4d dans les materiaux VRay. Si c'est pas le cas dites moi, j'essaierai de le prendre en compte.

    Pour les layers et le filter j'ai utilisé un getClone du shader, c'est beaucoup plus simple, j'espere juste qu'il y a pas un loup derrière la facilité.
    Fichiers attachés Fichiers attachés

  6. #6
    Gourou Avatar de valkaari
    Date d'inscription
    mai 2009
    C4D version
    Autre
    OS
    OSX / windows
    Messages
    2 949
    une idée comme ça.

    Pour remplacer tes textures tu peux aussi utiliser la partie "Assignment"
    ça t'évitera de parcourir toute la hiérarchie des objets * nombre de texture.

    Tu peux aussi créer des tableaux si tu veux tracer les correspondances.

    pas beaucoup de code à ajouter et ça supprime pas mal de code pour parcourir l'arborescence

    "Sans programmation défensive"

    Code PHP:
     #on récupère une matière (ici je sais que la première est une vray)
        
    vrayMat doc.GetFirstMaterial()
        
    #je récupères les données des assignements
        
    vrayAssign =  vrayMat[c4d.ID_MATERIALASSIGNMENTS]
        
        
    #Création de la matière et insertion dans le document
        
    phyMat =  c4d.BaseMaterial(c4d.Mmaterial)
        
    doc.InsertMaterial(phyMat)
        
        
    #pour tous les objets présents dans la liste assignment
        
    for i  in xrange(vrayAssign.GetObjectCount()):
            
    #récupération du tag
            
    textTag vrayAssign.ObjectFromIndex(doci)
            
    #mise à jour du champ "material" du tag avec la matière physique
            
    textTag[c4d.TEXTURETAG_MATERIAL] = phyMat 
    Dernière modification par valkaari ; 27/05/2019 à 21h27.

Discussions similaires

  1. Convertir objets 3ds Max vers Cinema 4d
    Par JohnMcClane dans le forum Plugins
    Réponses: 49
    Dernier message: 12/07/2020, 17h03
  2. Convertir les texture de Vray vers Rendu Physique ?
    Par darsanha dans le forum Textures
    Réponses: 8
    Dernier message: 27/05/2019, 17h57
  3. Convertir Materiaux VRay vers C4d standard
    Par Floc dans le forum Général Cinema 4D
    Réponses: 1
    Dernier message: 24/05/2019, 09h23
  4. passer u scene Standard pour rendu Vray
    Par STK dans le forum Nouveaux membres
    Réponses: 2
    Dernier message: 25/02/2014, 19h16
  5. Méthode pour convertir Claude Bonet/bones vers Skin/Joints ?
    Par shtl dans le forum Character animation
    Réponses: 2
    Dernier message: 02/08/2010, 15h03

Les tags pour cette discussion

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