« Programmation objet et géométrie/Objets Python sous Blender/Création d'un objet 3D en Python sous Blender » : différence entre les versions

Un livre de Wikilivres.
Contenu supprimé Contenu ajouté
Ligne 17 : Ligne 17 :
=Entrée des sommets=
=Entrée des sommets=


La première des méthodes de ''tm'' qu'on va utiliser, c'est celle qui permet d'y ajouter des sommets. En fait on peut considérer ''tm'' comme une [[w:base de données|base de données]] qu'on va progressivement mettre à jour. Et un sommet est pour Blender sous Python, un propotype de la classe ''NMesh'', défini à partir de trois nombres réels qui sont ses coordonnées dans l'espace. On le crée par ''v=NMesh.Vert(x,y,z)'' (''Vert'' comme ''vertex''). Puis, une fois que le sommet ''v'' a été défini, on l'ajoute à la base de données ''tm'' par la méthode ''append'' de ''tm'':
La première des méthodes de ''tm'' qu'on va utiliser, c'est celle qui permet d'y ajouter des sommets. En fait on peut considérer ''tm'' comme une [[w:base de données|base de données]] qu'on va progressivement mettre à jour. Et un sommet est pour Blender sous Python, un propotype de la classe ''NMesh'', défini à partir de trois nombres réels qui sont ses coordonnées dans l'espace. On le crée par ''v=NMesh.Vert(x,y,z)'' (''Vert'' comme ''vertex''). Puis, une fois que le sommet ''v'' a été défini, on l'ajoute à la base de données ''tm.verts'' (constituée par les sommets de ''tm'') par la méthode ''append'' de ''tm'':


<source lang="python">
<source lang="python">

Version du 28 juillet 2010 à 17:19

Un objet 3D est un objet ! En l'occurrence, un objet Mesh, que l'on peut créer et modifier sous Python. Puisque le plus petit objet 3D est le tétraèdre, on va en créer un pour illustrer par un exemple comment ça fonctionne. L'exemple sera un tétraèdre régulier inscrit dans un cube, pour avoir plus facilement les coordonnées de ses sommets.

Création de l'objet

Une fois que l'on a transformé l'une des vues 3D en vue Texte (script Python), et entré le fameux import Blender qui permet de commencer, on va également importer l'objet NMesh dont le tétraèdre sera une instance:

import Blender
from Blender import NMesh
tm=NMesh.GetRaw()

L'initialisation de l'objet tm (pour tétraèdre mesh) se fait avec la méthode GetRaw de la classe NMesh. Elle a pour effet de créer un objet tm qui sera une instance de la classe NMesh.

Mais pour l'instant cet objet est vide, et au rendu, ne se verra pas (il est analogue à l'objet empty mesh de Blender). Cependant comme il est une instance de NMesh il hérite de ses propriétés et méthodes.

Entrée des sommets

La première des méthodes de tm qu'on va utiliser, c'est celle qui permet d'y ajouter des sommets. En fait on peut considérer tm comme une base de données qu'on va progressivement mettre à jour. Et un sommet est pour Blender sous Python, un propotype de la classe NMesh, défini à partir de trois nombres réels qui sont ses coordonnées dans l'espace. On le crée par v=NMesh.Vert(x,y,z) (Vert comme vertex). Puis, une fois que le sommet v a été défini, on l'ajoute à la base de données tm.verts (constituée par les sommets de tm) par la méthode append de tm:

v=NMesh.Vert(-1.0,-1.0,-1.0)
tm.verts.append(v)
v=NMesh.Vert(1.0,1.0,-1.0)
tm.verts.append(v)
v=NMesh.Vert(1.0,-1.0,1.0)
tm.verts.append(v)
v=NMesh.Vert(-1.0,1.0,1.0)
tm.verts.append(v)

Ci-dessus on a créé 4 fois un sommet, puis on l'a à chaque fois ajouté à la collection de sommets existante, ce qui fait qu'à ce stade le tétraèdre tm possède 4 sommets comme il se doit. Mais il n'a encore ni face ni arête, et ne serait pas correctement rendu par Blender.

Entrée des faces

Naissance du tétraèdre