begin process at 2010 03 16 08:31:02
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Assembleur

 > 

Divers

 > 

Aide et documentation

 > 

CACHER LA FACE D'UN CUBE


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

CACHER LA FACE D'UN CUBE

mercredi 25 octobre 2006 à 16:04:52 | CACHER LA FACE D'UN CUBE

tomart2005

bonjour,

j'aimerai "cacher" (ne pas afficher quoi) la face d'un cube en rotation 3d lorsque celle ci se situe derriere les faces avant. Si quelqu'un a une doc ou un algo, merci

TOM
jeudi 26 octobre 2006 à 13:40:14 | Re : CACHER LA FACE D'UN CUBE

Nasman

Bonjour tomart2005,

Si tu n'utilises pas de "bibliothèque avancée" telle que opengl.dll ou autre, tu peux utiliser la méthode suivante:
Pour chacune des facettes de ton objet (pour un cube tu auras probablement 6 faces), tu définis un vecteur normal à ta facette et orienté vers l'extérieur (N). Tu détermines également le vecteur reliant l'observateur au centre de la facette (OC).
L'angle entre le vecteur normal et l'axe de visée te permettra de savoir si la face est visible ou non.
Si le produit scalaire OC.N est négatif alors l'objet sera visible, il sera invisible dans le cas contraire.
Nota: si l'axe de visée est définit par le vecteur centre facette vers oeil et non le contraire, il suffit d'inverser les conditions.
Pour définir un vecteur normal à une facette tu peux calculer le produit vectoriel de deux vecteurs non parallèles et appartenant à une facette, typiquement deux côtés consécutifs d'un carré ou deux diagonales.

Si tu utilises opengl ou autre, tu peux définir des couleurs et textures différentes suivant les faces. La face non visible ne seras pas dessinée mais son revers, intérieur à l'objet pourra être vue si l'objet est transparent.

A+
jeudi 26 octobre 2006 à 14:13:39 | Re : CACHER LA FACE D'UN CUBE

Nasman

Rebonjour tomart2005,

J'ai fait la réponse précédente sans avoir vu que tu avais mis une nouvelle source. Je vois que tu utilises opengl couramment. J'ai fait quelques programmes avec cette bibliothèque et j'ai eu du mal à bien gérer l'éclairage des faces. En fait tout est rentré dans l'ordre quand j'ai pris le soin de bien définir les normales pour les facettes.
Dans ton cas, est-ce un problème d'orientation de face ou un problème que la face devrait être cachée par un autre.
Dans le premier cas ce peut être un problème de normale, dans l'autre c'est soit un pb de transparence (qui fait que tu vois ce qui devrait être caché) ou un pb de buffer de profondeur.
Je n'ai pas analysé ta source en détail mais j'ai vu que l'activation du buffer de profondeur
INVOKE glEnable,GL_DEPTH_TEST
ne se trouvait pas dans la procédure InitGL mais plus tard (trop tard?)
Regardes de ce côté.

A+


Cette discussion est classée dans : cacher, cube, face


Répondre à ce message

Sujets en rapport avec ce message

technique backface removal [ par prunkdump ] bonjours est ce que quelqu'un connait une bonne manière de faire du backface removal (enlever la face arrière) avec des objects en 3d plygonale. Comme LE SHADING D'UN CUBE EN WIN32ASM [ par tomart2005 ] Bonjour,Je code un petit soft qui affiche un cube en rotation, j'aimerai savoir comment colorer les différentes faces du cube selon son angle, simuler


Nos sponsors


Sondage...

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,484 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales