IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Description of Objects in VPython

Les faces (faces)

La primitive "faces" prend une liste de triangles (position, couleur, et la normale pour chaque vertex). Ceci est utile pour l'écriture de routines en Python pour importer des modèles 3D faits avec d'autres outils de modélisation 3D. Vous aurez toujours besoin de faire beaucoup de calculs de normales et autres, mais vous n'aurez pas besoin de faire du codage en C pour importer des fichiers de modèles arbitraires.

Les faces sont une primitive de tableau (comme la courbe, l'objet convexe, etc), ainsi vous devez utiliser une structure pour le déplacer. Cela se compose d'un ensemble de triangles à une seule face avec des sommets, couleurs et normales spécifiés par l'utilisateur. Les attributs pos, color, et normal ressemblent à ceci:

pos = [ t0v0, t0v1, t0v2, t1v0, t1v1, t1v2, t2v0, t2v1, t2v2, ... ]

où t0v0 est la position du sommet 0 du triangle 0, t0v1 est celle du sommet 1 du triangle 1, etc.

Chaque face est une surface à un seul côté. Le côté qui est éclairé est déterminé par l'ordre d'enroulement de la face. Quand vous regardez la face, celle-ci est éclairée si l'ordre des sommets dans la liste pos va dans le sens contraire des aiguilles d'une montre. Si vous soulez que le triangle soit visible des deux côtés, vous devez créer un autre triangle avec un ordre d'enroulement opposé.

Si vous ne spécifiez pas de normales au niveau des sommets, la face est éclairée seulement par la lumière "ambiante". Pour que l'éclairage principal affecte l'apparence, vous devez spécifier des normales à la surface au niveau des sommets. Dans le cas le plus simple, une normale à un sommet est perpendiculaire à la face et les faces contigües se joignent par une arête vive. Un bord doux peut être produit en moyennant les normales à deux faces à leur sommet commun. La luminosité d'une face est proportionnelle au cosinus de l'angle entre la normale et la lumière.

Si vous spécifiez des couleurs différentes aux sommets d'une face triangulaire, VPython interpole à partir de la face, dans ce cas, la face ne sera pas unicolore. Il y a une interpolation similaire pour les normales s'il y a différentes normales aux sommets, dans ce cas, la face n'est pas d'une seule luminosité.

L'objet faces ont été conçus pour faciliter l'écriture d'importateurs de modèles, ou l'écriture de nouvelles primitives Python, et non pour être manipulées par des programmes classiques Cet objet est considérablement d'un plus bas niveau que n'importe quel autre objet de Visual (quoiqu'il n'est pas nécessairement plus rapide, au moins en ce moment). Il est assez facile d'implémenter des lissages ou de facetter des ombres, des colorations par sommet, des lumières de deux ou d'un côté, etc mais tous ces calculs doivent être faits par le programmeur (lors de la définition de pos, color, normal).

Pour des exemples d'utilisation des faces, se référer aux programmes de démonstration sur les faces.


Copyright © 2006 Guillaume et Yoann Duriaud. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.