Comment tramer un objet dans un espace avec irrégularité de rotation

Next
 From:  BEAR17
455.1 
Bonjour,

Je m'explique : je suis en train de modéliser une terrasse pour voir l'aspect que cette dernière aura avec un auvent. Devant cette terrasse, il y a une rangée de buis (schématisée par le vert dans la présentation ci-dessous).



Bien-sûr, je peux passer sous Blender, dessiner une petite feuille de buis et la disperser d'une façon dense pour avoir l'illusion d'une haie. Mais si je veux faire ça sous Moi3d, je me posais la question de savoir comment faire.
Avec trame, je peux disposer ma feuille sur mes 3 axes xyz mais il manquera l'aspect aléatoire de la rotation de la feuille.

Existe t il une méthode pour ce genre de réalisation ?

Bear
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Frenchy Pilou (PILOU)
455.2 In reply to 455.1 
Scale array doit faire cela!
Je vais le chercher et je reviens! :)

http://moiscript.weebly.com/scalearray.html

On a donc de la rotation, du mouvement, de la taille (par le jardinier) :)

Ah oui, mince, il faut de l'irrégularité!
Je crois savoir comment faire!
Je reviens!

On prend une sélection aléatoire dans le procédé du dessus
http://moi3d.com/forum/index.php?webtag=MOI_FRANCAIS&msg=228.1

et je reviens pour la suite :)

http://moiscript.weebly.com/pivoter-des-objets.html

En alternant ces deux derniers procédés on aura le résultat aléatoire voulu! :)

EDITED: 15 Jul 2015 by PILOU

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  BEAR17
455.3 In reply to 455.2 
J'avoue que je me voyais créer un "nuage" de feuilles que j'aurai "tailler" avec un "moule" en forme de haie. A priori ta méthode est bien différente... Je suis bien curieux de comprendre le procédé, car pour l'instant je plane :-)

Bear
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Frenchy Pilou (PILOU)
455.4 In reply to 455.3 
Je croyais qu'un module était déjà "fabriqué" et que celui-ci allait servir à constituer la haie ou n'importe quel autre amas d'objets!

Quand au procédé lui-même c'est exactement ce que j'ai décrit au-dessus!
Aucune difficulté particulière!

A part le fait que c'est Script Array et non Array Scale!!!
http://moi3d.com/forum/index.php?webtag=MOI_FRANCAIS&msg=318.1

C'est un plugin dans lequel il faut mettre les mains dans le cambouis si besoin pour changer les paramètres! :)
Le script Array étant effectué

Mais on peut même s'en passer, ces 2 là suffisent! :)

on peut le mélanger avec
Sélection Aléatoire, puis Rotation des objets sélectionnés sur leurs axes!
Ici j'ai pris un sapin de Noël mais on peut évidemment prendre n'importe quoi!
Ici juste une passe des deux plugins Sélection aléatoire et rotation objets sur leurs axes!

EDITED: 15 Jul 2015 by PILOU

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  BEAR17
455.5 In reply to 455.4 
Merci Pilou pour cette piste.

Le principe de "sélection aléatoire" + rotation : j'ai compris cette partie... Mais je fais comment pour créer ma première dispersion d'origine : une trame grille sur xyz ? Cela sera encore très régulier dans les espaces entres les objets. Mais cela reste une solution accessible.

Par contre le script Array, je ne saisis pas quelles sont les paramètres à modifier pour faire mon amas de feuilles.

Le script fait apparaître 13 variables et 14 fonctions :

var g_NumCopies = 19;
var origin = moi.vectorMath.createPoint( 0.0, 0.0, 0.0 );
var delta = moi.vectorMath.createPoint( deltas.x, deltas.y, deltas.z );
var list = moi.geometryDatabase.createObjectList();
var factory = moi.command.createFactory( 'move' );
var objs = factory.calculate();
var newobj = objs.item(0);
var refpt = moi.vectorMath.createPoint( center.x + dir.x, center.y + dir.y, center.z + dir.z );
var center = objects.getHighAccuracyBoundingBox().center;
var source_objects = moi.geometryDatabase.getSelectedObjects();
var move_deltas = moi.vectorMath.createPoint( 0, 0, 0 );
var scale_factors = moi.vectorMath.createPoint( 1, 1, 1 );
var rotate_angles = moi.vectorMath.createPoint( 0, 0, 0 );

function UpdateMoveDeltas( i, move_deltas )
function UpdateScaleFactors( i, scale_factors )
function UpdateRotateAngles( i, rotate_angles )
function MoveObject( obj, center, deltas )
function RotateWithFrame( obj, angle, frame, center )
function RotateObject( obj, center, angles )
function ScaleWithDir( obj, factor, dir, center )
function ScaleObject( obj, center, factors )
function CopyObject( obj )
function TransformObjects( func, objects, params )
function MoveObjects( objects, delta )
function RotateObjects( objects, angles )
function ScaleObjects( objects, factors )
function CopyObjects( objects )

J'ai fait quelques essais mais rien de concluant. Mes connaissances algorithmiques sont limitées et c'est dommage qu'une interface ne soit pas encore créée (car cela me semblerait utile comme procédé).

Y a t il moyen de comprendre quels sont les éléments "clés" à modifier, comme :
- le nombre de copies ?
- la zone de dispersion par rapport à l'objet dupliqué, sur les 3 plans xyz ?

Bear17

EDITED: 15 Jul 2015 by BEAR17

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Frenchy Pilou (PILOU)
455.6 
Après avoir relu de près le problème posé :)

"peupler un volume donné"
ma méthode reste valable! :)

On fait une trame X, Y,Z d'un objet donné
on fait une sélection aléatoire
on applique une rotation d'objet sur leurs axes

Il y a aussi un truc rigolo
Avec un cube par exemple
On l'explose ( Sépare) et on appelle plusieurs fois la rotation sur axe propre!
Celle-ci va se faire sur les faces!



Ah mince croisement de posts!

EDITED: 15 Jul 2015 by PILOU

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  BEAR17
455.7 In reply to 455.6 
Oui, c'est ce que je vais tenter demain car le script Array est au dessus de ma portée.
Encore merci Pilou.

Bear17
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Frenchy Pilou (PILOU)
455.8 
Sinon il y a aussi les Dispersions du Max Smirnov! :)
http://moiscript.weebly.com/dispersions.html
---
Pilou
Is beautiful that please without concept!
My Gallery
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Frenchy Pilou (PILOU)
455.9 
Sans rentrer dans les arcanes du plugin ScriptArray
On peut juste changer facilement les premiers paramètres!
le nombre (40) que l'on diminue à 2O
le Move : le 20 que l'on passe à 10
le Scale: le 20 que l'on passe à 10
le Rotate: le 10 que l'on passe à 5

On obtient un truc qui va déjà plus vite!
On place l'objet dans un plan vertical
On apllique le Plugin ScriptArray
On superpose X fois cette ligne résultante
On peut "rotationner" par ligne horizontale

Et en appliquant plusieurs fois Sélection aléatoire (30%)+ Rotations d'Objets (33°)
on obtient déjà un bel embrouillamini! :)
Feuille de départ

EDITED: 15 Jul 2015 by PILOU

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Frenchy Pilou (PILOU)
455.10 
Et si je reprends l'exemple de mon cube aux "facettes explosées"

Si on prend un dodécagone 3D (ou n'importe quel volume à facettes) comme support, sur lequel on applique n'importe quoi grâce à Transforme / Oriente / Ligne-Ligne
on efface le dodécagone, on applique La sélection aléatoire + la rotation "propre" sur les objets déposés
et on met un soupçon d'ExplodeMove (fonction "cachée") (à taper directement après l'appui de la touche TAB )
= on peut déjà faire du mal dans la production d'objets à position aléatoire simulée!
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
 From:  BEAR17
455.11 In reply to 455.10 
J'ai essayé avec la tablette à plusieurs reprises mais avec ce nombres importants de feuilles, ça plante.
J'essayerai ce WE sur l'ordi fixe qui est plus puissant.

Bear
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged
 

Reply to All Reply to All