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

Discussion: Répartition uniforme sur une sphère

  1. #1
    Pilier Avatar de Tazintosh
    Date d'inscription
    août 2002
    OS
    macOS Mojave
    Messages
    1 151

    Répartition uniforme sur une sphère

    Salut la clique !

    Bon, j'ai une question…
    Ouais, ça fait bizarre de me voir poster ici hein

    Voilà, je souhaiterais répartir sur une sphère et de manière uniforme un nombre donné (mais réglable) d'éléments (choisissez ce qui vous plait, des tapis, des lavabos, des girafes, ou une famille d'écureuils boréal à poil bleu des Andes).
    Par « manière uniforme », je veux dire que si je choisis de répartir 4 écureuils (c'est mon choix), leur répartition sur la sphère les disposera à équidistance, un peu comme ça voyez :
    Cliquez sur l'image pour la voir en taille réelle 

Nom : 		Capture d’écran 2015-03-11 à 19.58.25.png 
Affichages :	5 
Taille :		30,7 Ko 
ID : 			14613
    Si je mets mon réglage (la question c'est lequel) à 5 écureuils (suivez un peu), pof, j'en ai 5 à équidistance, pareil pour 12, 56, ou 2163 si c'est une famille nombreuse.

    J'ai testé :
    • Écureuil dans cloner
    • Sphère (ou peta, hexa, machin truc)
    • Cloner en mode objet avec sphère comme objet
    • Répartition : j'ai tout testé, forcément considérant la malliage, ça colle pas. Le problème du mode surface, c'est qu'il est aléatoire (la solution était si proche…)

    J'ai aussi testé ça…
    Et ça…

    Rien ne fonctionne efficacement, l'objet permettant le résultat le plus approchant est un cube dans un HN, ce dernier étant réglé comme source pour la répartition au cloner.
    Par ailleurs, avec ces solutions, tout est basé sur le maillage de l'objet initial, donc impossible de dire, « je veux tant d'écureuils, précisément »…

    Une idée ?
    Merci !

  2. #2
    Gourou Avatar de bru
    Date d'inscription
    août 2009
    C4D version
    R21 Perpétuelle
    OS
    Windows 11
    Messages
    4 102
    Si c'est pour faire quelque-chose comme sur l'image ci-dessous, il est possible de le faire avec SurfaceSpread, en choisissant un nombre d'instances élevé et puis en mettant une contrainte de distance minimale entre éléments. Evidement, la distance n'est certainement pas strictement constante, mais y a t'il une solution à cela ?

    SurfaceSpread est un plugin payant, mais il y a une version de démo. Et il n'est pas limité aux éléments de paysage !

    La différence par rapport à la formulation de ton problème est que tu définiras la distance, ce qui établira le nombre de clones, et non le nombre de clones. Mais est-ce important ? (et l'interface présente le nombre de clones générés, donc le réglage n'est pas trop difficile)

    Et en prime, il te permettra de mélanger les lavabos, les girafes et les écureuils !

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

Nom : 		surfacespread.jpg 
Affichages :	170 
Taille :		67,7 Ko 
ID : 			14615
    Dernière modification par bru ; 11/03/2015 à 23h08.

  3. #3
    Gourou Avatar de César Vonc
    Date d'inscription
    avril 2006
    C4D version
    Autre
    OS
    Windows 10
    Messages
    2 483
    Mmm, pour les petits nombres de points, tu peux utiliser le solide platonicien car ce sont des polyèdres réguliers, note que pour certains nombres il est impossible d'avoir un espacement régulier.

    Mais on peut faire une estimation grâce à l’algorithme de Saff et Kuijlaars :

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

Nom : 		Sans titre 1.jpg 
Affichages :	3 
Taille :		27,1 Ko 
ID : 			14618

    Bon c'est certes pas parfait, d'ailleurs si tu joues avec le nombre de clones tu remarques que c'est similaire à un clonage sur une spirale.

    Mais c'est intéressant, y a sûrement d'autres méthodes !
    Fichiers attachés Fichiers attachés
    Dernière modification par César Vonc ; 12/03/2015 à 10h30.

  4. #4
    Pilier Avatar de Tazintosh
    Date d'inscription
    août 2002
    OS
    macOS Mojave
    Messages
    1 151
    Bonjour bru et César,

    Merci de vous être penché là dessus !
    Bru, Huv m'avait effectivement parlé de SurfaceSpread.
    Malheureusement, on voit déjà sur ton exemple un manque d'uniformité dans la répartition.
    Je vais voir pour le tester, mais la proposition de César, en l'état, donne un résultat relativement homogène.C'est assez efficace avec un nombre élevé, moins avec si c'est faible (ex 7 ex.). Étonnant l'effet spirale en tout cas, on le ressent bien.

    Encore merci de vous être penché la dessus, franchement, je ne pensais pas que le problème soit tel…
    Ça lance l'idée à quiconque voudrait faire un plugin pour faire une répartition idéale.

  5. #5
    Pilier Avatar de Floc
    Date d'inscription
    novembre 2012
    C4D version
    R15 Studio
    OS
    WindOSX
    Messages
    1 617
    Hello
    Dans l'idée de progresser un peu en python, et ayant sous la main un morceaux de code susceptible de convenir, je me suis lancé.
    Il s'agit d'une expression destiné au particule de maya que je tente d'adaper. Le principe était de simuler une répulsion des particules entre elles afin d'obtenir une répartition homogène. Ce qui correspond à peu prés à la demande. Je précise que ne suis pas l'auteur de l'algorithme.
    C'est pas tout à fait au point et pour le moment le résultat est TRES approximatif. mais ça devrait normalement pouvoir donner un résultat acceptable.

    je vais probablement poursuivre le sujet dans programmation car je vais avoir pas mal de question pour y arriver.
    Je pose quand même le fichier ici mais on ne se moque pas c'est pas au point.

    Il faut jouer l'animation et l'arrêter quand ça parait ok. En théorie plus le temps passe plus ça devrait être précis.
    Les deux chose à régler de suite
    -la normalisation qui ne se fait qu'a l'arrêt de l'animation.
    -Et une manière de récupérer la position finale des objet. Pour le moment c'est un cloner qui affiche les objet, mais c'est pas forcément le plus pratique surtout dans l'idée de placer tes girafes et tes lavabos où tu en a envie. Ça pourrai être un bouton pour créer des objets null. Mais la c'est plus un problème d'interface. Le TagPython est peut être pas le mieux adapté.
    Ca fait partie de mes future questions
    Fichiers attachés Fichiers attachés

  6. #6
    Pilier Avatar de Tazintosh
    Date d'inscription
    août 2002
    OS
    macOS Mojave
    Messages
    1 151
    Salut Floc !

    Wow, THE truc lol.
    Désolé pour le délai de réponse, j'étais un peu pris.
    J'ai joué avec (en plus c'est marrant), je ne sais pas si je fais un truc de travers, mais le résultat en assez aléatoire quand je change ne nombre particules (écureuils).


    Je suis toujours effaré en constatant que finalement la chose est complexe, alors que notre cerveaux projette le concept instantanément.

  7. #7
    Pilier Avatar de Floc
    Date d'inscription
    novembre 2012
    C4D version
    R15 Studio
    OS
    WindOSX
    Messages
    1 617
    Non tu ne fais rien de travers
    Le principe c'est de distribuer aléatoirement les particules sur la sphère et ensuite d'appliquer la répulsion en faisant play. Plus tu laisse jouer plus la répartition devrait être régulière.
    Pour le moment si tu est à la frame 0 et si tu change le nombre d'écureuils une nouvelle distribution aléatoire est crée. Et si tu n'est pas à la frame 0, ben… tu crée des particule qui ne sont pas prise en compte.

    Pas tout a fait au point quoi !

  8. #8
    Gourou Avatar de bru
    Date d'inscription
    août 2009
    C4D version
    R21 Perpétuelle
    OS
    Windows 11
    Messages
    4 102
    Citation Envoyé par Tazintosh Voir le message
    Je suis toujours effaré en constatant que finalement la chose est complexe, alors que notre cerveaux projette le concept instantanément.
    C'est peut-être parce que notre cerveau est enclin à faire des erreurs ! Regarde ceci !

    Je ne suis pas mathématicien, mais si une distribution telle que tu la désires existe, cela me semble signifier qu'un polyèdre régulier existe avec le nombre de sommets requis, dont les faces seraient des triangles. Et si ce que je lis sur la page de Wikipédia est exact, cela n'existe que pour trois configurations (les deux autres n'ayant pas des faces triangulaires).

    Donc, tu es probablement condamné à une approximation. Je n'ai pas regardé de près la solution de Floc, mais ce qu'il en décrit me fait penser que cela doit converger vers le même genre de solution que SurfaceSpread, car il s'agit de distribuer des éléments aléatoirement, puis de les "repousser" à une distance donnée.
    Dernière modification par bru ; 15/03/2015 à 18h09.

  9. #9
    Pilier Avatar de Floc
    Date d'inscription
    novembre 2012
    C4D version
    R15 Studio
    OS
    WindOSX
    Messages
    1 617
    A l'occasion de ce petit "challenge" j'ai évidement été jeter un œuil sur la toile, et ce qui en ressort est étonnant.
    Le problème de la distribution des points sur une sphère est proche de celui des empilement compacts et c'est manifestement très, mais alors TRÈS complexe.
    Quatre siècles pour démontrer (ce qui parait évident) que l'arrangement de fruit en quinconce sur un étal est la meilleure façon d'économiser l'espace.
    C'est la conjecture de Kepler, Officiellement reconnu "prouvé" en 2014.
    voir ici

    Pour le problème de la distribution régulière sur une sphère je crois bien que c'est impossible d'un point de vue mathématique.

    Mais il y a différente méthodes pour y arriver. Ce lien intéressant en donne plusieurs
    Dernière modification par Floc ; 15/03/2015 à 22h20.

  10. #10
    Pilier Avatar de Gyom
    Date d'inscription
    août 2002
    C4D version
    R15 Studio
    OS
    OSX / Win7
    Messages
    612
    coucou
    il y a aussi cette piste pour le remplissage :
    http://www.autopack.org
    mais ça peut faire mal au crane...
    a suivre ...

  11. #11
    Pilier Avatar de Tazintosh
    Date d'inscription
    août 2002
    OS
    macOS Mojave
    Messages
    1 151
    J'ai mal au crâne
    Je passe une fois sur la partie 3D du forum (comment ça c'est le truc d'origine ?) et je te balance un truc ingérable
    Qu'est-ce que je vais bien pouvoir vous trouver la prochaine fois

Discussions similaires

  1. Ease In - Ease Out sur Spline uniforme
    Par ngreg dans le forum Animation
    Réponses: 4
    Dernier message: 27/04/2013, 17h35
  2. Repartition aléatoire
    Par manu_Edna dans le forum Modélisation
    Réponses: 4
    Dernier message: 18/06/2010, 15h59
  3. problèmes de répartition
    Par bricoman dans le forum Nouveaux membres
    Réponses: 3
    Dernier message: 03/02/2007, 23h57
  4. repartition de la honte
    Par elmata dans le forum Modélisation
    Réponses: 8
    Dernier message: 14/08/2004, 00h51
  5. Répartition et instances
    Par laurent tolito dans le forum Général Cinema 4D
    Réponses: 12
    Dernier message: 05/08/2004, 22h39

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