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

Discussion: texturer une extrusion controlée régulièrement

  1. #1
    Timide
    Date d'inscription
    juillet 2003
    C4D version
    R19 Broadcast
    OS
    windows 10
    Messages
    131

    texturer une extrusion controlée régulièrement

    Bonjour,
    Dans mes projets, j'ai souvent le même problème :
    j'utilise pas mal les extrusions controlées, en galérant plus ou moins avec les doubles rails et autres subtilités dues au sens des splines,
    et j'en fais souvent avec pour chemin une spline constituée de plusieurs segments, parfois non jointifs
    (par exemple, une spline pour le contour des trottoirs de plusieurs ilots, ou des balcons filants sur un immeuble, mais pas tous de la même longueur )
    et là, pb : le texturage uvw d'une extrusion controlée s'adapte automatiquement à la longueur du chemin de chaque tronçon, et non à l'ensemble de l'extrusion, ce qui fait que ma texture n'est pas uniforme sur tous mes balcons, ce qui m'oblige faire une extrusion controlée par balcon et ajuster à chaque fois ma tex, ce qui ne plait pas du tout !
    y a t il un moyen d'uniformiser ce mapping ?
    et deuxième problème, pareil en fonction de la subdivison du profil, (voir image)
    (ce qui m'a bien pris la tete pour faire du carrelage dans des couloirs de métro avec des angles arrondis)
    alors on est obilgés de redécouper chaque segment du contour, pour qu'il ait à peu près la même dimension que les autres, c'est vraiment nul ..
    merci si qqun connait le réglage magique que je n'ai pas trouvé !
    Miniatures attachées Miniatures attachées Couper.jpg   Couper_2.jpg  

  2. #2
    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
    Récupère la longueur de la spline concernée et une simple division par Xpresso pour créer un ratio que tu appliques à ton echiquier U ou V via Xpresso..

    Cliquez sur l'image pour la voir en taille réelle 

Nom : 		Xspline.jpg 
Affichages :	29 
Taille :		258,9 Ko 
ID : 			6984
    kenavo !! // Pinterest KAMIGAZ®

  3. #3
    Timide
    Date d'inscription
    juillet 2003
    C4D version
    R19 Broadcast
    OS
    windows 10
    Messages
    131
    ah merci auréty,
    le seul hic que je ne comprends absolument rien à xpresso, c'est du chinois pour moi !
    en plus si il faut faire le truc pour chaque texture du matériau, ça me parait chaud,
    + mesurer la spline, si je la bouge, recommencer ..
    c'est trop pour moi
    j'espérais qu'il y avait un paramètre cool que j'aurais zappé ...
    enfin si personne ne connait un truc, je serai bien obligé de mettre le nez ds xpresso !

  4. #4
    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
    Quand je dis récupère la longueur de la spline, c'est via xpresso, tu n'as pas à le faire à chaque fois.. Par contre là où ça marche dans mon exemple en me basant sur une texture échiquier ( et donc en jouant sur la fréquence U ou V ), ça foire en me basant sur une image car je dois passer par le paramêtre de longueur X ou Y de la propriété de projection.. Hors si j'utilise le facteur de longueur ca ne marche plus.. Faut que je réfléchisse un peu à la question.. Comment ont fait pour récuperer par Xpresso la résolution d'une image ??
    kenavo !! // Pinterest KAMIGAZ®

  5. #5
    Vieux Croûton Avatar de Sir Gong
    Date d'inscription
    juillet 2002
    C4D version
    R19 Studio
    OS
    10.13.4 High Sierra
    Messages
    10 353
    Billets dans le blog
    2
    Citation Envoyé par Aurety Voir le message
    Faut que je réfléchisse un peu à la question.. Comment ont fait pour récuperer par Xpresso la résolution d'une image ??
    Je suis sans doute le moins bien placé pour essayer de répondre, mais peut-être avec une simple règle de trois ?
    Sachant que taille / dpi / nbre de pixels sont reliés...
    ÷ R19 Studio ÷ cacahuètes ÷

  6. #6
    Gourou Avatar de tabou
    Date d'inscription
    juin 2002
    C4D version
    R21 Perpétuelle
    OS
    OS X 10.13.6
    Messages
    2 272
    Pas besoin de sortir la calculette, il y a le nœud image bitmap qui donne la largeur et la hauteur, en pixels, de l'image référencée en entrée

  7. #7
    Vieux Croûton Avatar de Sir Gong
    Date d'inscription
    juillet 2002
    C4D version
    R19 Studio
    OS
    10.13.4 High Sierra
    Messages
    10 353
    Billets dans le blog
    2
    j'allais le dire...
    ÷ R19 Studio ÷ cacahuètes ÷

  8. #8
    Vieux Croûton Avatar de Fluffy
    Date d'inscription
    septembre 2003
    C4D version
    R18 Studio
    OS
    Win 10 Pro
    Messages
    13 711
    Billets dans le blog
    1
    Tu peux tout simplement ajuster l'échelle de la projection UV sur un des axes, à l'oeil, en sélectionnant le tag et en ajustant jusqu'à satisfaction.
    Fluffy mais costaud...www.fluffy4d.com

  9. #9
    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
    Oui mais c'est justement cette approximation qu'il trouve pénible Fluffy..

    Mais comme le dit Tabou, Karl... avec le noeud Bitmap qui retourne la largeur/hauteur de l'image, c'est plus facile d'automatiser un process..
    Du coup, j'ai un peu joué pour pondre un petit fichier sympa avec profil, chemin et autre option pilotable via DU que je me propose de t'expliquer en vidéo demain, afin que tu mettes un peu les pieds dans XPresso

    Cliquez sur l'image pour la voir en taille réelle 

Nom : 		Xspline_2.jpg 
Affichages :	32 
Taille :		302,7 Ko 
ID : 			6991
    kenavo !! // Pinterest KAMIGAZ®

  10. #10
    Pilier Avatar de catrax
    Date d'inscription
    juillet 2011
    C4D version
    R13 Studio
    OS
    Windows 7, 1 seul coeur !!! 4 Go de Ram et une grande patience.
    Messages
    805
    Billets dans le blog
    1
    Interessant , moi je me paluche le truc a la main jusqu'à avoir le résultat souhaiter, ais ce n'est pas parfait.
    C'est en pratiquant que l'on apprend...

  11. #11
    Vieux Croûton Avatar de Sir Gong
    Date d'inscription
    juillet 2002
    C4D version
    R19 Studio
    OS
    10.13.4 High Sierra
    Messages
    10 353
    Billets dans le blog
    2
    Un peu comme ton orthographe.

    "ais ce n'est pas parfait" faut aller le chercher quand même.

    Une relecture avant de poster, pour le confort de nos yeux, stp ? merci d'avance
    ÷ R19 Studio ÷ cacahuètes ÷

  12. #12
    Timide
    Date d'inscription
    juillet 2003
    C4D version
    R19 Broadcast
    OS
    windows 10
    Messages
    131
    ah, merci pour toutes vos réponses !
    aurety, voilà, c'est exactement le genre de truc que je veux faire, ces caniveaux !
    en revanche mon problème n'est pas le calage de la texture à la main,
    mais bien la différence de proportions de mapping entre des segments de taille différentes ..
    en attendant, si tu veux bien partager ton fichier, je promets à genoux de regarder un peu comment fonctionne xpresso
    (mais malgré ma bonne volonté, j'y suis complètement hermétique j'en ai peur ..)
    pendant qu'on y est, j'ai ausi un autre bug de rendu sur mes extrusions controlées, au niveau du rendu de la texture (ou juste du bump, je ne me rends pas trop compte ?)
    pour y remédier, il faut que je redécoupe ma spline chemin
    (sir gong, tu postes vraiment à 5h42 du matin ?!°)
    Miniatures attachées Miniatures attachées Couper.jpg   P04-02.jpg  

  13. #13
    Vieux Croûton Avatar de Sir Gong
    Date d'inscription
    juillet 2002
    C4D version
    R19 Studio
    OS
    10.13.4 High Sierra
    Messages
    10 353
    Billets dans le blog
    2
    Citation Envoyé par Karl315 Voir le message
    (sir gong, tu postes vraiment à 5h42 du matin ?!°)
    non, 8h42.
    ÷ R19 Studio ÷ cacahuètes ÷

  14. #14
    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
    Comme promis, le petit tutorial pour faire en sorte que quelque soit la longueur du chemin de l'extrusion, on puisse répeter de façon régulière une texture. Désolé pour le retard..

    kenavo !! // Pinterest KAMIGAZ®

  15. #15
    Timide
    Date d'inscription
    juillet 2003
    C4D version
    R19 Broadcast
    OS
    windows 10
    Messages
    131
    aurety merci bcp,
    je vais faire ton truc..
    xpresso a l'air vraiment super puissant je suis sur qu'il y a plein de situations ou il doit être magique,
    faut vraiment que je m'y mette
    je vais commencer par ce tuto
    merci !

  16. #16
    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,

    Merci pour le partage Aurety.

    Je me suis amusé à transformer ton Xpresso en script, ça n'apporte pas grand chose mais je le poste quand même.
    La version Tag Python à placer sur l'extrusion :
    Code PHP:
    import c4d

    def adaptTexture
    (sweepsize=0tiles=0):
        
    tag sweep.GetTag(c4d.Ttexture)
        
    mat tag[c4d.TEXTURETAG_MATERIAL]
        
    shader mat[c4d.MATERIAL_COLOR_SHADER]
        
    irs c4d.modules.render.InitRenderStruct()
        if 
    shader.InitRender(irs) == c4d.INITRENDERRESULT_OK:
            
    bitmap shader.GetBitmap()
            
    shader.FreeRender()
            
    height bitmap.GetBh()
            
    spline sweep.GetDown().GetNext()
            
    sld c4d.utils.SplineLengthData()
            
    sld.Init(spline.GetRealSpline())
            
    length sld.GetLength()
            if 
    size:
                
    tiles height float(size)
            
    tag[c4d.TEXTURETAG_LENGTHY] = (height length) / tiles

    def main
    ():
        
    sweep op.GetObject()
        
    adaptTexture(sweepsize=200
    La version script à copier dans le Script Manager (s'applique sur tous les objects sélectionnés) :

    Code PHP:
    import c4d

    def adaptTexture
    (sweepsize=0tiles=0):
        ... 

    def main():
        
    objects doc.GetActiveObjects(c4d.GETACTIVEOBJECTFLAGS_0)
        for 
    object in objects:
            if 
    object.CheckType(c4d.Osweep):
                
    adaptTexture(objectsize=200)
        
    c4d.EventAdd(c4d.EVENT_0)
        
    if 
    __name__=='__main__':
        
    main() 
    Ça s'utilise soit en donnant un nombre de répétition (comme dans l'Xpresso) : adaptTexture(object, tiles=4),
    soit en choisissant la taille d'une répétition : adaptTexture(object, size=200)

    J'ai volontairement omis la gestion d'erreur pour faire plus court.

  17. #17
    Gourou Avatar de lenogre
    Date d'inscription
    août 2002
    C4D version
    R20 Studio
    OS
    OS 10.12.6
    Messages
    4 371
    Merci pour le tut', c'est le genre de pb qu'on a tous déjà eu !
    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.

  18. #18
    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
    merci Lenogre !
    Yann, super merci !! moi qui me colle doucement à Python, c'est le genre de script super intéressant pour moi car il me permet de bien visualiser le passage d'XPresso vers du code. C'est inestimable
    J'adore le forum quand il fonctionne comme ça !
    kenavo !! // Pinterest KAMIGAZ®

  19. #19
    Vieux Croûton Avatar de Fluffy
    Date d'inscription
    septembre 2003
    C4D version
    R18 Studio
    OS
    Win 10 Pro
    Messages
    13 711
    Billets dans le blog
    1
    Merci pour le tuto et script, les gars. Très bonne technique, et bon moyen d'apprentissage du script!
    Fluffy mais costaud...www.fluffy4d.com

  20. #20
    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
    XS_Yann, j'arrive pas à faire fonctionner ton script python

    à quoi correspond le Ttexture dans cette partie du code ?
    Code PHP:
    tag sweep.GetTag(c4d.Ttexture
    J'ai pas d'erreur sur le script mais quand je tente de saisir d''autres valeurs que 0, rien ne se passe.

    EDIT : Oups ! ça marche ! J'éditais la mauvaise ligne !!
    Dernière modification par Aurety ; 20/02/2013 à 09h33.
    kenavo !! // Pinterest KAMIGAZ®

  21. #21
    Gourou Avatar de valkaari
    Date d'inscription
    mai 2009
    C4D version
    Autre
    OS
    OSX / windows
    Messages
    2 949
    Juste pour répondre à la dernière question la fonction GetTag veut un paramètre en entrée pour lui indiquer le type de tag à aller chercher.

    c4d.Ttexture correspond donc à l'ID' du tag texture. (5616)

    Si tu tapes dans la console c4d.Ttexture il vas te donner le chiffre 5616.
    Si tu glisses un tag texture dans le champ de la console et que tu valides il vas te donner quelques info et également te mettre "with ID 5616"

    La fonction vas donc parcourir les tag et dès qu'elle en voit un avec cet ID elle te donne le "pointeur" (de type baseTag) vers le/les tags en question.

  22. #22
    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 valkaari Voir le message
    La fonction vas donc parcourir les tag et dès qu'elle en voit un avec cet ID elle te donne le "pointeur" (de type baseTag) vers le/les tags en question.
    Et même plus précisément le premier tag du type passé en paramètre ou celui à l'index passé en deuxième paramètre :

    Prototype : BaseObject.GetTag(type[, nr=0])
    op.GetTag(c4d.Ttexture, 1) = le deuxième tag texture.

    Pour les ids j'avais un peu expliqué comment les trouver dans ce post : http://frenchcinema4d.fr/showthread....=1#post1002012

    Et bien sûr les listes de types du SDK qu'on trouve dans les constructeurs (__init__) des classes type BaseObject, BaseTag, etc.

  23. #23
    Gourou Avatar de valkaari
    Date d'inscription
    mai 2009
    C4D version
    Autre
    OS
    OSX / windows
    Messages
    2 949
    oupsss vi ^^

Discussions similaires

  1. [Question] extrusion controlée nurbs
    Par davidltd dans le forum Nouveaux membres
    Réponses: 3
    Dernier message: 27/08/2012, 19h54
  2. Extrusion controlée
    Par Renorr dans le forum Nouveaux membres
    Réponses: 6
    Dernier message: 02/12/2011, 12h53
  3. extrusion controlée
    Par patriceb dans le forum Nouveaux membres
    Réponses: 9
    Dernier message: 17/08/2009, 18h01
  4. Extrusion controlée : je comprends pas...
    Par kinou dans le forum Nouveaux membres
    Réponses: 13
    Dernier message: 12/12/2008, 12h03
  5. extrusion controlée
    Par xs_yann dans le forum Général Cinema 4D
    Réponses: 8
    Dernier message: 24/02/2005, 12h04

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