C'est vrai le produit vectoriel est interessant mais malheurement tout dépend de 3DS Peut-être qu'un jour 3DS en tiendra compte.
Je n'ai pas la teillère en fichier ASC mais j'ai le canard je te fournirai aussi le nouveau format ascii de 3DS (depuis 3DSMax 3) c'est un fichier .ase
Pour le Z-Buffer en C ca donnerais ceci:
typedef struct
{
int x, y, z;
} point3D:
typedef point3D modele[3]:
typedef struct
{
int numeroFacette;
int profondeur;
} cell;
modele facette[nombreFacettes];
cell zbuffer[320][200]; // Si tu es en resolution 320x200
...
for(i= 0; i<nombreFacettes; i++)
mapper(i);
...
void actualise(int numeroFacette, int x, int y)
{
int profondeur= calculProfondeur(facette[numeroFacette]);
if( zbuffer[x][y].profondeur > profondeur )
{
zbuffer[x][y].profondeur= profondeur;
zbuffer[x][y].numeroFacette= numeroFacette;
}
}
la fonction "mapper" effectue la même chose que le remplissage d'une facette saut qu'au lieu de placer un pixel elle appelle la fonction actualise
La fonction calculProfondeur peut être celle-ci:
int calculProfondeur(modele f)
{
return f[0].z + f[1].z + f[2].z;
}
Core Breaker :)