|
Remplissage des faces |
Programmation 3D
Chapitre
III
Modélisations
Ce chapitre traite du remplissage des faces par une
couleur unie.
Tout d'abord il faut savoir qu'il y a
différentes façons de représenter nos objets
3D.
- sous forme de lignes " FILIAIRE "
- sous
forme de faces transparentes " FACE DE VERRE "
-
sous forme de faces pleines " FACE CACHEE "
|
GESTION FILIAIRE |
/*
On définit une structure avec une suite de sommets puis
des couples d'entiers qui servent a repérer les arrêtes.
*/
typedef struct str_objet
{
int nbsommet;
int nbligne;
SOMMET *sommet;
_2D ligne;
}
/*
maintenant il nous suffit de projeter les sommets puis
de tracer les lignes définies par la structure
*/
void afficher_objet(OBJET *Objet,MAT4x4 m)
{
int v;
transformation(Objet,m);
for(v=0;v<Objet->nbligne;v++)
{
int x1,y1,x2,y2;
x1=Objet->sommet[Objet->ligne[v].x].ecran.x;
y1=Objet->sommet[Objet->ligne[v].x].ecran.y;
x2=Objet->sommet[Objet->ligne[v].y].ecran.x;
y2=Objet->sommet[Objet->ligne[v].y].ecran.y;
draw_line(x1,y1,x2,y2);
}
}
/*
La fonction draw_line ne fait ni plus ni moins qu'afficher une portion de droite
de coordonnées x1,y1 et x2,y2.
*/
|
|
FACE DE VERRE |
/*
Tout d'abord il nous faut définir l'objet par ses sommets,
mais aussi par ses faces.
Les faces appelées aussi polygone, peuvent être définies par
un ensemble de triangles.
Nous allons donc avoir besoin d'une nouvelle structure Objet :
*/
typedef struct str_triangle
{
int a,b,c;
}TRIANGLE;
typedef struct str_objet
{
int nbsommet;
int nbface;
SOMMET *sommet;
TRIANGLE *face;
}OBJET;
void afficher_objet(OBJET *Objet,MAT4x4 m)
{
int v;
_2D poly[3];
for(v=0;v<Objet->nbface;v++)
{
poly[0] = Objet->sommet[Objet->face[v].a].ecran;
poly[1] = Objet->sommet[Objet->face[v].b].ecran;
poly[2] = Objet->sommet[Objet->face[v].c].ecran;
draw_poly(poly,3,couleur);
}
}
/*
On a donc affiché les faces, mais on n'a pas tenue compte
des recouvrements ce qui donne une impression de transparence.
draw_poly trace des polygones fermés concaves.
J'ai écris son code dans le chapitre suivant.
*/
|
|
GESTION FACE CACHEE |
|
La gestion de face cachée, met en place des notions
d'éclairage et de distinction des faces apparentes. |