Bonjour tout le monde, j'ai une simple petite question dont je suis presque sur de la reponse mais je voudrais une confirmation: Est-ce que OpenGL affiche les faces qu'on ne voit pas?
Merci d'avance de votre reponse.
Bonjour tout le monde, j'ai une simple petite question dont je suis presque sur de la reponse mais je voudrais une confirmation: Est-ce que OpenGL affiche les faces qu'on ne voit pas?
Merci d'avance de votre reponse.
Soft Creations - FirmLife
Soft Creations: Blog de Fabien Henon et site de prestations de sites web et applications mobiles
FirmLife: Le nouveau jeu de gestion d'entreprises en ligne
qu'entend tu pas qu'on ne voit pas ? à coté de la fenêtre ? derrière d'autres faces ?
si c'est a coté de la fenêtre opengl fait un clipping, si c'est pour les triangles caché par d'autres c'est le zbuffer qui s'en occupe
Pensez aux tutoriels programmation : http://programmation.developpez.com/cours-tutoriels/
En fait ma question etait plutot pour les faces cachees deriere d'autres, mais quand tu dis que le Z-Buffer s'en occupe, tu veux dire que c'est lui qui fait que le tout va etre bien affiche, mais en fait ce que je voudrais savoir c'est si malgre tout OpenGL a affiché la face (sauf qu'on ne peut pas la voir).
Donc en fait si la reponse est oui, ca voudrait dire que il va afficher en premier la face censee etre cachee mais elle sera recouverte par une autre.
Est-ce que c'est bien ce cas la?
Soft Creations - FirmLife
Soft Creations: Blog de Fabien Henon et site de prestations de sites web et applications mobiles
FirmLife: Le nouveau jeu de gestion d'entreprises en ligne
Voilà comment cela se passe au niveau de la carte graphique :
- Ton triangle est transformé et illuminé
- Ton triangle est clippé (on enlève tout ce qui dépasse de la zone de rendu)
- Ton triangle est ajusté au viewport courant
- Ton triangle est subdivisé en pixels
- Tes pixels sont texturés
- Tes pixels sont rejetés si le Z-buffer indique qu'ils sont masqués
Voir http://jeux.developpez.com/faq/3d/?p...TIONS_pipeline
Donc non, la face n'est pas affichée. Par contre elle subit 95% des étapes du pipeline pour rien.
Mieux que SDL : découvrez SFML
Mes tutoriels 2D/3D/Jeux/C++, Cours et tutoriels C++, FAQ C++, Forum C++.
D'accord ce qui explique donc que les moteurs 3D fassent es modules supplementaires pour justement ne pas faire ces operations (c'est l'OctTree => dites mois si je me trompe).
Mais par contre si notre face qui est devant une face cachee est a moitie transparentes, la OpenGL va quand meme afficher cette face cachee? (En calculant la couleur de la texture finale)
Aussi j'ai une autre question, je suis en train de lire un tuto sur OpenGL et j'ai lu que quand on veut mettre une texture a une face il faut pour chaque vertex definir les coordonnees de la texture qu'on veut afficher, mais j'ai lu aussi qu'on ne pouvait pas changer de texture quand on est entre glBegin et glEnd, mais donc comment est-ce qu'on peut mettre une autre texture par dessus celle qu'on a mis sur la face (exemple: J'ai une texture de mur et quand le joueur appuie sur une touche il y a un tag qui se met sur le mur, donc une nouvelle texture qui doit venir se mettre au dessus)? Il faut incruster nous meme les 2 textures puis la mettre sur la face? Ou encore creer une autre face casiment collee au mur? , ... ?
Merci d'avance
Soft Creations - FirmLife
Soft Creations: Blog de Fabien Henon et site de prestations de sites web et applications mobiles
FirmLife: Le nouveau jeu de gestion d'entreprises en ligne
Seulement si tu affiches tes faces dans le bon ordre, car transparente ou pas ta face va écrire dans le Z-Buffer.Mais par contre si notre face qui est devant une face cachee est a moitie transparentes, la OpenGL va quand meme afficher cette face cachee? (En calculant la couleur de la texture finale)
Corollaire : toujours afficher les faces transparentes à la fin et triées par profondeur.
Pour ta question concernant les textures, tu peux en appliquer plusieurs (en général jusqu'à 8) sur une même face, cela s'appelle le multi-texturing.
Mieux que SDL : découvrez SFML
Mes tutoriels 2D/3D/Jeux/C++, Cours et tutoriels C++, FAQ C++, Forum C++.
D'accord merci pour ta reponse, je crois que je verrai le multi texturage plus loin des mes lectures de tutos
Soft Creations - FirmLife
Soft Creations: Blog de Fabien Henon et site de prestations de sites web et applications mobiles
FirmLife: Le nouveau jeu de gestion d'entreprises en ligne
OpenGL ne gère aucun partionnement de l'espace , donc si on a 100 000 spheres dans notres scènes , qu'une seule sphère est devant la camera et que les 99999 sont derriere ou sur le coté de la camera , openGL va "envoyer" quand même tous les triangles des 100k spheres au pipeline de la carte graphique pour afficher seulement une sphère .D'accord ce qui explique donc que les moteurs 3D fassent es modules supplementaires pour justement ne pas faire ces operations (c'est l'OctTree => dites mois si je me trompe).
Et si openGL implémente pas de partionnement de l'espace , c'est parcequ'il y en a pas qu'un seul de "parfait" mais plusieurs en fonction du type d'affichage recherché: interrieur , extérieur , en mouvement .
C'est bien ca ?
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager