Introduction
Les GLobjects sont des listes d'objets 3D élémentaires tels que des lignes, des triangles, des quads, ou des polygônes.
Associer des données à un GLobject
- kind, contained data
- Un GLobject se définit en spécifiant son type (kind) et en définissant sa propriété contained data avec une liste de points. La liste de points est de la forme {x1, y1, z1,... ,xn, yn, zn}. Vous pouvez passez un nombre n quelconque de points, ce qui veut dire que la liste aura 3n éléments conformément aux définitions des objets OpenGL.
|
|
Options d'affichage du GLobject
-
drawmode
- Il est possible d'afficher un GLobject plein ou en fil de fer (ou les deux) selon que l'on règle sa propriété drawmode à 1, 2 ou 3.
-
pen width
- La propriété pen width (largeur du trait) n'affecte que les GLobjects dessinés en fil de fer (ce qui est toujours le cas des GLobjects de kind curve3D). La largeur des traits dépend également de la propriété resolution de la view3D.
- ambiant color, diffused color, specular color, emission color, ambiant pen color, diffused pen color, specular pen color, emission pen color et shininess
- Vous pouvez modifier les couleurs de matériau des GLobjects en réglant les propriétés suivantes : ambiant color, diffused color, specular color, emission color, ambiant pen color, diffused pen color, specular pen color, emission pen color et shininess.
fill color et pen color sont des raccourcis permettant de définir en même temps les couleurs ambiante et diffuse.
- colordata, color palette and limits
- Au lieu d'utiliser une seule couleur de matériau pour afficher un GLobject, il est possible de définir la propriété colordata par une liste de n nombres réels (où n est le nombre de points dans contained data). Ces valeurs définiront la couleur de chaque point en utilisant les propriétés color palette et limits pour convertir les valeurs en couleurs (cela revient à utiliser palette de couleurs comme le font les bitmaps).
set w to make new graphic window with properties {name:"Colored polygon", never save:true}
set v to make new view3D at w with properties {name:"Polygon", resolution:144, limits:{-2, -1, -2, 2, 0, 3}}
set g to make new GLobject at v with properties {kind:polygon, contained data:{-1.5, 0, 1, -1.5, 2, 1, -1.5, 2, 3, -1.5, 0, 3, -1.5, -1, 2, -1.5, 0, 1}, colordata:createarray 6}
Utiliser la commande triangulate pour afficher un GLobject de kind triangle set
La commande triangulate permet de transformer une liste de points x,y en une liste de triangles. Il est possible d'utiliser cette commande pour afficher une surface 3D dont le code de couleur a été défini en des points x,y,z. Voici un exemple :
--create data: x,y are randomized
set n to 200
set x to randomarray n range {0, 1}
set y to randomarray n range {0, 1}
set z to evalformula "0.5-0.25*cos(2*pi*x)*(x*x+y*y)" with {x:x, y:y}
set c to evalformula "(x*y)" with {x:x, y:y}
--compute triangulation
set {xx, yy, zz, cc} to triangulate {x, y} syncing {z, c}
--create a list of 3D coordinates: the values are x1,y1,z1,x2,y2,z2,etc.
set pts to array of real of ({xx, yy, zz} as matrix)
--display the triangle set
set w to make new graphic window
set never save of w to true
set v to make new view3D at w
set c to make new GLObject at v with properties {kind:triangle set, contained data:pts, colordata:cc, pen color:{0, 0, 0, 1}}
Importer le script
|