begin process at 2012 05 30 00:35:22
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

OpenGL

 > 

OpenGL mauvaise odre d'affichage des texture


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

OpenGL mauvaise odre d'affichage des texture

jeudi 16 mars 2006 à 17:05:47 | OpenGL mauvaise odre d'affichage des texture

maladedede

Membre Club
Bonjour
Je programme un jeu en OpenGL et j'ai déja placé tous les  murs de l'environement( ce sont des surface plane a couleur uniforme).
Le problemen c'est selon l'endroit ou se situ la "camera" je vois le mur de lautre piece appareitre sur le mur de la piece ou se situ la camera.
en d'autre terme : les textures qui devrait etre caché une texture qui est plus proche de la camera apparaisse decu !
comment fair pour que Opengl comprenne que c'est texture sont caché par une autre dans l'espace 3d.




MaLaDeDeDe

jeudi 16 mars 2006 à 17:16:26 | Re : OpenGL mauvaise odre d'affichage des texture

vincemail

Réponse acceptée !
T'as activer le test de profondeur ? sinon essaie d'ajouter ca :    
glClearDepth(1.0);
glEnable(GL_DEPTH_TEST);
jeudi 16 mars 2006 à 17:20:12 | Re : OpenGL mauvaise odre d'affichage des texture

maladedede

Membre Club

J'utilise glut et j'aimerais que dans la fonction d'affichage que le triangle vert masque le rouge.
"Ce qui ce ferait dans la réalité..."


void affichage ()  /* Fonction de notre affichage*/
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);    /* Efface le tampon chromatique*/
    glLoadIdentity();         /* Initialise la matrice (matrice identité)*/

glTranslatef(0.0f, 0.0f, -5.0f);      /* Eloigne notre dessin de 5 unités*/
   
    glColor3f(0.0, 1.0, 0.0);      /* couleur: vert*/
      glBegin(GL_TRIANGLES);
       glVertex3f(-1.0, .0, -3.0);    /*Dessin de notre premier triangle*/
       glVertex3f(1.0, 0.0, -3.0);
       glVertex3f(0.0, -1.0, -3.0);
      glEnd();
      
    glColor3f(1.0, 0.0, 0.0);      /*couleur: rouge*/
     glBegin(GL_TRIANGLES);          
      glVertex3f(-1.0, 0.0, -5.0);       /*Dessin de notre deuxième triangle*/
      glVertex3f(1.0, 0.0, -5.0);
      glVertex3f(0.0, -1.0, -5.0);
     glEnd();
 
glutSwapBuffers (); /*Echange des tampons image (celui sur lequel on a dessiné s'affiche pendant que nous dessinerons sur l'autre)*/

}

MaLaDeDeDe

jeudi 16 mars 2006 à 17:23:15 | Re : OpenGL mauvaise odre d'affichage des texture

maladedede

Membre Club
vincemail j'ai rajouté ce ke tu ma dit mais j'obtient un écran noir...

sinon quesque le test de profondeur ? est-ceque c'est une technique ou fonction lourde ?

MaLaDeDeDe

jeudi 16 mars 2006 à 17:30:47 | Re : OpenGL mauvaise odre d'affichage des texture

luhtor

Réponse acceptée !
Bas continue a lire des tutoriels sur l'opengl, ca fait partie des tout premiers cours.
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
Pourtant avec cette ligne, tu l'utilises, donc si tu comprends pas GL_DEPTH_BUFFER_BIT revois un peu les tutos de glut.

Pour résoudre ton problème, tu as une erreur lors de l'initialisation d'opengl. Post ici la facon dont tu initialises glut et opengl.


jeudi 16 mars 2006 à 17:33:51 | Re : OpenGL mauvaise odre d'affichage des texture

vincemail

   Je suppose que ta fonction affichage est dans une boucle, il faut mettre glClearDepth(1.0); glEnable(GL_DEPTH_TEST); avant cette boucle (car ca efface le depth-buffer). Le test de profondeur permet d'éliminer les partie cachée, c'est un mode d'affichage qui est la seule manière de faire ce que tu veux à mon avis...
jeudi 16 mars 2006 à 18:09:12 | Re : OpenGL mauvaise odre d'affichage des texture

maladedede

Membre Club
Dès que je met glEnable(GL_DEPTH_TEST);  dans la boucle plus rien ne s'affichiche
Mais je pense que ce que vous me donné est la bonne voie !
Je vais persévérer j'ai aussi ce site : [ Lien ]
mais je n'y arrive pas je vais vous envoyer mon code entier et vous remerci de m'aider

MaLaDeDeDe

jeudi 16 mars 2006 à 18:13:42 | Re : OpenGL mauvaise odre d'affichage des texture

maladedede

Membre Club
Réponse acceptée !

#include <stdlib.h>
#include <gl/glut.h>    /* En-tête de fichier pour la GLUT (incluant les headers window.h, glu.h et gl.h)*/
#pragma comment(lib, "glut32.lib") /* Demande au précompilateur de lier la librairie glut32.lib*/


void affichage () /* Fonction de notre affichage*/
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);    /* Efface le tampon chromatique*/
    glLoadIdentity();         /* Initialise la matrice (matrice identité)*/
   

glTranslatef(0.0f, 0.0f, -5.0f);      /* Eloigne notre dessin de 5 unités*/
   
    glColor3f(0.0, 1.0, 0.0);      /* couleur: vert*/
      glBegin(GL_TRIANGLES);
       glVertex3f(-1.0, .0, -3.0);    /*Dessin de notre premier triangle*/
       glVertex3f(1.0, 0.0, -3.0);
       glVertex3f(0.0, -1.0, -3.0);
      glEnd();

    glColor3f(1.0, 0.0, 0.0);      /*couleur: rouge*/
     glBegin(GL_TRIANGLES);          
      glVertex3f(-1.0, 0.0, -5.0);       /*Dessin de notre deuxième triangle*/
      glVertex3f(1.0, 0.0, -5.0);
      glVertex3f(0.0, -1.0, -5.0);
     glEnd();
glFinish (); 
glutSwapBuffers (); /*Echange des tampons image (celui sur lequel on a dessiné s'affiche pendant que nous dessinerons sur l'autre)*/

}

void redimension (int w, int h)  /* Notre fonction de redimension de la fenêtre*/
{
    glViewport (0, 0, w, h);  
    glMatrixMode (GL_PROJECTION); 
    glLoadIdentity ();   
    if (h==0)    
        gluPerspective (80, (float) w, 0.0, 10.0);
    else
        gluPerspective (80, (float) w / (float) h, 0.0, 10.0);

    glMatrixMode (GL_MODELVIEW);   
    glLoadIdentity ();   
}

void clavier (unsigned char key, int x, int y)    /* Fonction de gestion du clavier*/
{
    switch (key) {
        case 27:   
            glutDestroyWindow(glutGetWindow()); 
            exit (0);      
    break;
 
    }
}

void init()
{
    glShadeModel(GL_SMOOTH);    /* Modèle de polygones dégradés*/
    glClearColor(0.0f, 0.0f, 0.0f, 1.0f); /* Fond noir*/
}

int main (int argc, char** argv)    /* Fonction principale*/
{
    glutInit (&argc, argv);    /* Initialisation de la GLUT*/
    glutInitDisplayMode (GLUT_DEPTH|GLUT_RGBA|GLUT_DOUBLE);    /* Affichage en mode RGB et double tampon image*/
    glutInitWindowPosition (200, 200);    /* Détermine la position initiales de la fenêtre*/
    glutInitWindowSize (300, 300);    /* Taille de la fenêtre*/
    glutCreateWindow ("TeSt");    /* Titre de la fenêtre*/
    init();
    glutDisplayFunc (affichage);    /* Spécifie la fonction avec laquelle on veut afficher*/
    glutReshapeFunc (redimension);    /* Spécifie la fonction avec laquelle on veut redimensionner la fenêtre*/
    glutKeyboardFunc (clavier);    /* Spécifie la fonction avec laquelle on veut gérer les entrés au clavier*/
    glutIdleFunc (affichage);    /* Spécifie la fonction qui s'exécute lorsque la GLUT n'a aucun autres évènements à traiter*/
glutMainLoop ();    /* Démarre la GLUT en entrant dans une boucle infinie*/
}


MaLaDeDeDe

jeudi 16 mars 2006 à 18:22:36 | Re : OpenGL mauvaise odre d'affichage des texture

vincemail

Réponse acceptée !
Ben ouais, sans test de profondeur ca ne marchera pas... rajoute glClearDepth(1.0); glEnable(GL_DEPTH_TEST); dans init()
jeudi 16 mars 2006 à 18:32:59 | Re : OpenGL mauvaise odre d'affichage des texture

maladedede

Membre Club
Je vien de le fair et j'abtient un ecran noir !

MaLaDeDeDe


1 2

Cette discussion est classée dans : opengl, camera, mauvaise, texture, odre


Répondre à ce message

Sujets en rapport avec ce message

Camera Opengl [ par sniperfou ] Salut a tous,j'ai un probleme avec opengl car je voudrais faire tourner ma camera autour d'un cube mais je ne connait pas les fonctions qui permettent texture opengl [ par lapal ] salutje dois texturer une partie d' un fond marin(celui-ci etant affiche avec pleins de petits triangles). je n'arrive pas a texturer seulement une p lire la couleur d'un point d'une texture opengl [ par kawito ] Bonjour,j'ai crée des texture opengl a partir de fichier TGA.une fois les textures crées comment puis je reccuperer les information d'un pixel de la t problème de texture opengl [ par kidpigeyre ] J'ai beau regardé je ne trouve pourquoi l'affichage de ma texture ne marche pas, Pouvez-vous m'aider?J'ai commenté au max mon projet pour qu'il soit c texture opengl [ par smoove5198 ] bonjour, me suis remi sur un petit projet utilisant opengl et en essayant d'afficher des textures j'ai eu aucun résultat... mon problème c'est que je Couleur et texture en opengl [ par smoove5198 ] bonjour, je suis un peu newbie en opengl et je n'ai toujours pas bien compris comment faire pour colorer les objets qu'on affiche sans que cela influ [Opengl] Texture disparait [ par goutbouyo ] Salut,Lorsque je m'éloigne trop d'un mur que j'ai créée il disparait.Vous me direz que c'est normal, mais là en fait je suis pas beaucoup éloigné qua [OpenGL]Ajuster texture à l'objet [ par goutbouyo ] Salut,Je prend un texture MUR.BMPLorsque je la "colle" sur un rectangle de 50*50 ça va.Mais si je la colle sur un rectangle de 10*50 elle est toute dé texture opengl [ par Alesx ] Salut à tous !Voilà, je me suis mis en tête de faire un pitit projet qui de modéliser le système solaire en opengl.La création des planètes (ie sphère Besoin d'Aide en C++/OpenGL pour RTS 3D [ par ionstorm356 ] Bonjour tout le monde, je cherche des programmeurs en C++ (API Windows sans MFC) et OpenGL, motiver pour participer à un VRAI projet de Real Time Stra


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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,718 sec (4)

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