Blender (jusqu'à 2.49)
|
Python:
Créer
un plan
de
x colonnes sur y lignes
(x,y
sont différents)
|
|
L'objectif
Créer une trame de facettes rangées
en x colonnes sur y lignes entre les bornes xin-xax, xax
pour x maximum et xin pour x minimun et yin -yax, yax pour
y
maximum et yin pour y minimun .
1/ créer une fonction
def planxy( nx, #division en x
ny, #division en y
xin, #coordonnées minimale en x
xax, #coordonnées maximale en x
yin, #coordonnées minimales en y
yax, #coordonnées maximales en y
prop # hauteur
):
... |
2/ dans la fonction créer l'objet
mesh
3/ calculer un taux de progression,
px=(xax-xin)/nx
py=(yax-yin)/ny
... |
4/ lancer une boucle de création
des sommets en pensant à soustraire la valeur x minimale et y minimale.
for x in range(0,nx+1,1):
for y in range(0,ny+1,1):
v=NMesh.Vert(xin+x*px,yin+y*py,prop)
me.verts.append(v) |
Les sommets seront rangés dans la
liste
me.verts dans cet ordre :
p0 |
|
p1 |
|
p2 |
|
p(n*y) |
|
p(n*y)+1 |
|
p(n*y)+2 |
|
p(n*y)+3 |
|
p(n*y)+4 |
|
p(n*y*2)+1 |
|
p(n*y*2)+1 |
|
|
x0y0 |
|
x0y1 |
|
x0y2 |
|
x0yn... |
|
x1y0 |
|
x1y1 |
|
x1y2 |
|
x1yn... |
|
x2y0 |
|
x2y1 |
|
|
|
Si je souhaite récupérer
les sommets de la facette [p0,p1,p3,p4] telle quelle se présente
dans le modèle suivant :
p0 |
|
p1 |
|
p2 |
|
|
|
|
|
p3 |
|
p4 |
|
p5 |
|
|
|
|
|
p6 |
|
p7 |
|
p8 |
|
Je dois effectuer les calculs suivants:
x=0,y=0, ny=2,
p0= y+x*(ny+1)
=> me.verts[0]
p1=y+1+x*(ny+1)
=> me.verts[1]
p4= y+1+(x+1)*(ny+1) => me.verts[4]
p3= y+(x+1)*(ny+1)
=> me.verts[3] |
Ce qui donne la boucle:
for x in range(0,nx):
for y in range(0,ny):
f=NMesh.Face()
f.v.append(me.verts[y+x*(ny+1)])
f.v.append(me.verts[y+1+x*(ny+1)])
f.v.append(me.verts[y+1+(x+1)*(ny+1)])
f.v.append(me.verts[y+(x+1)*(ny+1)])
me.faces.append(f)
... |
Il ne reste plus qu'à relier la
face et à connecter le mesh à la scène avec un simple
PutRaw()
Voir
le script
Variation
sur le thème de l'ensemble de mandelbrot
voir
le script
Exemple
de Lecture de fichier structuré en tableau, colonnes par lignes
Limite du nombre sommets par meshes :
Il n'y a pas de limite digne de ce nom dans un mesh puisqu'il est possible,
si on a les moyens en mémoire vive et en puissance de traitement,
de créer deux milliards de sommets. Mais les stations de travail
équipées de cette manière sont encore rares . Ill
est préférable de se montrer prudent dans l'utilisation de
ces fichiers qui contiennent facilement plusieurs centaines de mille (voire
plusieurs millions) de sommets .
Les fichiers NGDC
de type .bin (à base
d'entier 16 bits, int16,
ou de nombre à virgule flottante 32 bits, float32,
au format pc binary) et .hdr (description des limites de
la table et des hauteurs, longitudes et latitudes) doivent provenir de
ce site:
http://www.ngdc.noaa.gov/cgi-bin/seg/ff/nph-newform.pl/seg/topo/customdatacd
(pour un import à base de flat
text voir plus bas sur cette page)
voir
le script
|
Importation d'un sommet sur 144 :
pas 12
|
|
Importation d'un sommet sur 64 : pas
8
|
|
Importation d'un sommet sur 16 : pas
4
|
|
Importation de tous les sommets :
pas 1
|
Les questions concernant cette page
peuvent être posées sur :
news://news.zoo-logique.org/3D.Blender
|