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

Discussion: Rendu de points et de splines colorisés

  1. #1
    Gourou Avatar de César Vonc
    Date d'inscription
    avril 2006
    C4D version
    Autre
    OS
    Windows 10
    Messages
    2 483

    Rendu de points et de splines colorisés

    Salut,

    J'ai un objet comportant un nuage de points, sans polygones, et un objet comportant un lot de segments de splines.


    Connaîtriez-vous un moyen de rendre chaque point et spline avec des couleurs différentes définies ?


    J'étais parti sur Hair avec un tag Couleur de point, mais tous mes points et splines se retrouvent avec la même couleur :


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

Nom : 		EJ5zlU6.png 
Affichages :	6 
Taille :		89,4 Ko 
ID : 			22419

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

Nom : 		GA5JUEU.png 
Affichages :	4 
Taille :		112,7 Ko 
ID : 			22418

    Pas bon
    Fichiers attachés Fichiers attachés
    Dernière modification par César Vonc ; 22/03/2019 à 22h45.

  2. #2
    Pilier
    Date d'inscription
    décembre 2013
    C4D version
    R20 Studio
    OS
    Windows 10
    Messages
    567
    salut,

    je sais pas si ça peut faire la blague
    PointsSplinesMorgaph.c4d

  3. #3
    Gourou Avatar de César Vonc
    Date d'inscription
    avril 2006
    C4D version
    Autre
    OS
    Windows 10
    Messages
    2 483
    Merci, c'est intéressant mais beaucoup trop lourd comme solution dans le cas où j'ai plusieurs millions de points.

    Je dois impérativement garder un objet de milliers de points plutôt que plusieurs milliers d'objets d'un point, pour des raisons de performance.

  4. #4
    Pilier
    Date d'inscription
    décembre 2013
    C4D version
    R20 Studio
    OS
    Windows 10
    Messages
    567
    ah oui effectivement
    l'idée c'est vraiment d'utiliser les couleurs spécifiques venant de ton vertex color tag ?
    sinon pourquoi ne pas mettre directement un gradient ou autre dans la couleur

    PointsSplinesHairRandom.c4d

  5. #5
    Gourou Avatar de druide
    Date d'inscription
    février 2005
    C4D version
    R13 Studio
    OS
    10
    Messages
    2 761
    je n'ai aucune solution pour toi mais je veux bien voire la scène finale, plusieurs millier de point ça interpelle.
    Semi-nudistes Marathoniens et Campagnards
    Absent, quand je ne suis pas là.

    Merci aux modos pour tout et tous.

  6. #6
    Gourou Avatar de César Vonc
    Date d'inscription
    avril 2006
    C4D version
    Autre
    OS
    Windows 10
    Messages
    2 483
    Giloo: Sauf que la couleur est aléatoire, or j'ai besoin de la définir de manière précise.

    Ce sont des coordonnées cartographiques sur un globe terrestre.

  7. #7
    Pilier
    Date d'inscription
    décembre 2013
    C4D version
    R20 Studio
    OS
    Windows 10
    Messages
    567
    c'est bien ce que je pensais , tes données c'est des maps ? ou une série de chiffre, elles se présentent comment

  8. #8
    Gourou Avatar de César Vonc
    Date d'inscription
    avril 2006
    C4D version
    Autre
    OS
    Windows 10
    Messages
    2 483
    Ce sont des données CSV, mais peu importe, je peux les transformer en carte d'influence ou autre chose s'il faut.


    Actuellement j'ai pu "résoudre" le problème pour les points : au lieu de générer un nuage de points, je génère un nuage de minuscules triangles dont chaque point a la couleur qu'il faut via la propriété Couleur de point.
    Et là Hair daigne enfin prendre en compte les couleurs de points ! Je dois juste définir une longueur de cheveux de 0.001%, mais pas nul, pour avoir un affichage de points.

    C'est pas terrible mais ça passe


    Pour les splines, je n'ai pas encore de solution.

  9. #9
    Pilier Avatar de Floc
    Date d'inscription
    novembre 2012
    C4D version
    R15 Studio
    OS
    WindOSX
    Messages
    1 617
    Et pourquoi pas transformer tes points en particules (régler pour générer une particule par point.) et transférer les couleur de la sphère avec le map sur les particules.
    x-particles fait ça et je crois que même TP le fait il me semble.

  10. #10
    Gourou Avatar de César Vonc
    Date d'inscription
    avril 2006
    C4D version
    Autre
    OS
    Windows 10
    Messages
    2 483
    J'ai tenté l'approche avec les particules, mais je ne comprends absolument rien aux particules de C4D. Je demanderai au client s'il possède X-particules, bien que ça m'ennuie d'avoir à dépendre d'un plugin externe qui coûte vraiment cher.

    Sais-tu comment afficher des particules de couleurs définies, avec ceux de base de C4D ?


    Dire que l'affichage de points colorés est une fonctionnalité hyper basique en OpenGL, c'est fou que ce soit si complexe à faire dans C4D !
    Dernière modification par César Vonc ; 24/03/2019 à 22h26.

  11. #11
    Pilier Avatar de gr4ph0s
    Date d'inscription
    mai 2013
    C4D version
    R16 Studio
    OS
    win 7 X64
    Messages
    964
    Salut avec les particules standards je ne pense pas que tu puisses attacher des couleurs, cependant avec TP pas de soucis (tu peux voir une ébauche ici https://frenchcinema4d.fr/showthread...aderData-et-TP) et je te transmets un example demain pour créer des TP particles et définir pos+couleur en python

    Après sinon tu peux directement draw dans le viewport et faire un rendu hardware non?

    Et enfin tu peux aussi directement draw mais la c'est clairement sous documenté(voir pas dutout documenté) https://github.com/PluginCafe/cinema...est_object.cpp
    Dernière modification par gr4ph0s ; 25/03/2019 à 00h03.
    SDK Specialist
    MAXON Computer GmbH

  12. #12
    Gourou Avatar de César Vonc
    Date d'inscription
    avril 2006
    C4D version
    Autre
    OS
    Windows 10
    Messages
    2 483
    J'avais tenté avec des TP, je m'étais fait un mémo à l'époque de la R13 avec un script quasi identique au tien (https://code.vonc.fr/?a=35) mais ça reste des particules qui sortent un peu de nulle part, je ne trouve pas comment facilement les manipuler, je n'arrive même pas à les supprimer via le gestionnaire de TP, mais quelle horreur ce truc...

    Je vois dans ton exemple que tu associes un cube à chaque particule (chose que je n'arrive pas non plus à faire avec mes TP générés en Python), mais cette solution est trop gourmande, il me faudrait un rendu qui ne nécessite pas la création d'objet polygonal pour chaque particule.


    Ouais avec le Draw c'est "plus simple", mais devoir générer une passe de rendu logiciel en plus du rendu complet n'est vraiment pas pratique pour l'utilisateur. Il s'agit ici de simplement afficher des points de couleur sur la Terre.


    Je penche aussi du côté de Sketch & Toon, mais je ne trouve pas comment dire à un matériau Sketch d'utiliser la couleur de la propriété Couleur de point.

  13. #13
    Pilier Avatar de Floc
    Date d'inscription
    novembre 2012
    C4D version
    R15 Studio
    OS
    WindOSX
    Messages
    1 617
    Lev probleme avec TP c'est que si tu as 1 million de pts ca va mettre c4d a genou.
    Sinon je pense a un truc plus simple. Si les point de ta catographie ne sont pas animé tu pourrai simplement mettre un masque de pointillé, dans le channel alpha. Comme la sphere portera aussi le map de couleur elle pourra aussi servir a colorer tes hairs.

    Sinon x-particule ils sont passé en mode abonnement. pour un mois ca doit pas couter tres cher, et l'operation est tres simple.
    il y a un champ dedié sur l'emitter pour le map qui colorise les particules.
    Dernière modification par Floc ; 25/03/2019 à 00h14.

  14. #14
    Pilier Avatar de gr4ph0s
    Date d'inscription
    mai 2013
    C4D version
    R16 Studio
    OS
    win 7 X64
    Messages
    964
    Effectivement comme tu le signale Floc, l'une des limitations des TP sont leur nombre.
    Il y a aussi le fait que tu devras probablement passer par un objet qui load ton fichier, vu que lorsque tu crés des particules, elle existe mais si tu reviens à l'instant 0 elle n'existe plus.
    Code:
    import c4d
    
    
    
    
    def main():
        # Retrieves the Particles System of the current document
        pSys = doc.GetParticleSystem()
        if pSys is None:
            raise RuntimeError("op is none, please select one object.")
    
    
        # Retrieves the Root group (where all particles belongs as default)
        rootGrp = pSys.GetRootGroup()
        if rootGrp is None:
            raise RuntimeError("Failed to retrieves root group of tp master system.")
    
    
        # Allows each particles to get a custom colors
        rootGrp[c4d.PGROUP_USE_COLOR] = False
    
    
        # Creates 90 Particles
        particlesIds = pSys.AllocParticles(90)
        if not particlesIds:
            raise RuntimeError("Failed to creates 90 TP particles.")
    
    
        # Assigns position and colors for each particles
        for particleId in particlesIds:
            # Checks if particles ID is ok
            if particleId == c4d.NOTOK:
                continue
    
    
            # Calculates a position
            sin, cos = c4d.utils.SinCos(particleId)
            pos = c4d.Vector(sin * 100.0, cos * 100.0, particleId * 10.0)
            # Assigns position
            pSys.SetPosition(particleId, pos)
    
    
            # Calculates a color
            hsv = c4d.Vector(float(particleId) * 0.05, 1.0, 1.0)
            rgb = c4d.utils.HSVToRGB(hsv)
    
    
            # Assigns color
            pSys.SetColor(particleId, rgb)
    
    
        # Updates Cinema 4D
        c4d.EventAdd()
    
    
    
    
    if __name__ == "__main__":
        main()
    Donc voici, sinon tu peux passer par les InstanceObjects (R20)
    Code:
    import c4d
    
    
    
    
    def main():
        # Creates a matrix and a sphere object
        matrix = c4d.BaseObject(1018545)
        sphere = c4d.BaseObject(c4d.Osphere)
    
    
        # If the matrix or the sphere object is not created
        if matrix is None or sphere is None:
            raise RuntimeError("Failed to creates a matrix object or a sphere.")
    
    
        # Inserts theses 2 objects in the current document.
        doc.InsertObject(matrix)
        doc.InsertObject(sphere)
    
    
        # Creates an instance object
        instance = c4d.InstanceObject()
        if instance is None:
            raise RuntimeError("Failed to creates an instance object.")
    
    
        # Inserts the instance object in the active document
        doc.InsertObject(instance, None, None)
    
    
        # Defines the reference object to be instanced.
        instance.SetReferenceObject(sphere)
    
    
        # Defines the matrix object as input position object.
        instance[c4d.INSTANCEOBJECT_MULTIPOSITIONINPUT] = matrix
        instance[c4d.INSTANCEOBJECT_RENDERINSTANCE_MODE] = c4d.INSTANCEOBJECT_RENDERINSTANCE_MODE_MULTIINSTANCE
    
    
        # Updates Cinema 4D
        c4d.EventAdd()
    
    
    
    
    if __name__ == '__main__':
        main()
    SDK Specialist
    MAXON Computer GmbH

  15. #15
    Gourou Avatar de César Vonc
    Date d'inscription
    avril 2006
    C4D version
    Autre
    OS
    Windows 10
    Messages
    2 483
    Ouch, si TP rame avec beaucoup de point, ça ne va pas m'aller non plus.

    Si je comprends bien Floc, pour le masque en pointillé, ça sous entend de créer une texture potentiellement très grande si on veut des points fins ?


    J'ai testé le nouveau type d'instance de la R20, Graphos, mais avec "seulement" 100 000 instances de petite sphère, C4D est complètement dans les choux, or j'aurai potentiellement un million d'objets.


    Avec un test en WebGL et un shader personnalisé, j'ai facilement pu afficher beaucoup de points en temps réel sans aucun souci de performance (ici avec deux millions de points et de traits) :

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

Nom : 		t0PrSNO.jpg 
Affichages :	12 
Taille :		381,0 Ko 
ID : 			22426


    Du coup je regarde du côté du shader de C4D, mais ça ne me semble pas très bien documenté ni avec beaucoup d'exemples, il faudrait là carrément faire une sorte de mini moteur de rendu, un peu comme fait TurbulenceFD pour afficher sa fumée, non ?
    Dernière modification par César Vonc ; 29/03/2019 à 23h24.

  16. #16
    Pilier Avatar de Floc
    Date d'inscription
    novembre 2012
    C4D version
    R15 Studio
    OS
    WindOSX
    Messages
    1 617
    Pour la version masque il te suffit d'avoir un pointillé qui tile correctement, du coup ils peuvent être aussi fins que tu veux.
    Par contre maintenant que j'y pense a moins de faire un depliage et d'avoir deux sets d'uvs ca va déconner au poles

    Sinon t'avais pas une mosaique a faire au lieu de bosser sur des truc sérieux ?
    Dernière modification par Floc ; 30/03/2019 à 00h26.

  17. #17
    Pilier Avatar de Floc
    Date d'inscription
    novembre 2012
    C4D version
    R15 Studio
    OS
    WindOSX
    Messages
    1 617
    Bon j'ai pas pu m'empecher de verifier la solution map !

    Selon, ça peu le faire. Pour les pole ca peu ne pas etre genant, le plus genant je trouve c'est du coté de la france ou les point commence a s'etirer un peu. Et en general en france quand on te demande une planete il faut souvent se rapprocher de la france justement.
    L'avantage c'est que le map etant fait sous substance il tile parfaitement et il est vraiment facile de varier taille, regularité, densité etc..


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

Nom : 		EarthSpots_1 low.jpg 
Affichages :	8 
Taille :		396,1 Ko 
ID : 			22428

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

Nom : 		EarthSpots_de pres low.jpg 
Affichages :	9 
Taille :		502,2 Ko 
ID : 			22429

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

Nom : 		EarthSpots_Pole low.jpg 
Affichages :	8 
Taille :		337,4 Ko 
ID : 			22430

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

Nom : 		Spots_map2.jpg 
Affichages :	9 
Taille :		528,3 Ko 
ID : 			22427
    Dernière modification par Floc ; 30/03/2019 à 02h31.

  18. #18
    Gourou Avatar de César Vonc
    Date d'inscription
    avril 2006
    C4D version
    Autre
    OS
    Windows 10
    Messages
    2 483
    Merci Floc, en effet, j'ai pas oublié la mosaïque, c'est juste que chaque jour je me dis que je la ferai demain quand j'aurai le temps...


    Concernant la technique de la texture, j'ai peut être montré un mauvais exemple, les points ne seront pas répétables ni aléatoires mais positionnés à des coordonnées précises. Je peux toujours comformer les points sur la texture pour pas avoir de déformation d'uv.

    C'est une solution, un peu longue mais statique, car il se peut que les points changent de couleur et de position en cours d'animation, actuellement je génère mon nuage de points et couleurs à chaque image, avec une texture ce sera un peu plus lent j'en ai peur (jamais content celui-là )

  19. #19
    Pilier Avatar de Floc
    Date d'inscription
    novembre 2012
    C4D version
    R15 Studio
    OS
    WindOSX
    Messages
    1 617
    Citation Envoyé par César Vonc Voir le message
    c'est juste que chaque jour je me dis que je la ferai demain quand j'aurai le temps...
    Ah c'est ta participation à la fête de la procrastination

    Hein... c'est pas une fête ? c'est juste une journée ?
    Too baad

  20. #20
    Gourou Avatar de César Vonc
    Date d'inscription
    avril 2006
    C4D version
    Autre
    OS
    Windows 10
    Messages
    2 483
    Je savais pas que cette attitude portait un nom aussi savant, ça me rassure presque.

Discussions similaires

  1. Import ASCII de splines (points)
    Par Ouaibeer dans le forum Nouveaux membres
    Réponses: 9
    Dernier message: 22/04/2009, 16h17
  2. je ne vois pas les points des splines
    Par zigzag dans le forum Nouveaux membres
    Réponses: 5
    Dernier message: 16/04/2009, 18h01
  3. Tuto modélisation points par points pour débutant ???
    Par zezito dans le forum Nouveaux membres
    Réponses: 27
    Dernier message: 25/09/2006, 20h00
  4. comment rendre visible les splines au rendu
    Par paspas dans le forum Général Cinema 4D
    Réponses: 13
    Dernier message: 28/07/2006, 15h42
  5. points rouges et points verts....
    Par batkat dans le forum Standard & Physical Render
    Réponses: 8
    Dernier message: 08/07/2004, 03h56

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