Blender (jusqu'à 2.49)
Python:
Créer un plan 
de x colonnes sur y lignes
(x,y sont différents)
    Début   Index
précédentScript Python :grapheur 2d
Script Python : Cube Suivant
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
 

 me = NMesh.GetRaw() 
...

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

Autres scripts permettants d'importer des données topologiques:


précédentScript Python :grapheur 2d
 Script Python : Cube Suivant
Vers le  Haut de page

Les questions concernant cette page  peuvent être posées sur  :
 news://news.zoo-logique.org/3D.Blender


 

 

Livre en français
Blender : apprenez, pratiquez, Créez, livre, Ed. Campus Press, coll. Starter Kit
Blender Starter Kit

Forum
FAQ
Lexique
Didacticiels
Compilations
Blender2KT
Débuter
Modelage
Blender python
Materiaux
Lumière
Animation
API python (eng)
Archives nzn
Statistiques
Doc flash Sculptris
Galerie Sculptris

mon site de démos sur youtube