begin process at 2012 02 13 13:49:44
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

OpenGL

 > 

A laide eclairage et texturing opengl !!Problemes!!


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

A laide eclairage et texturing opengl !!Problemes!!

mercredi 31 août 2005 à 02:17:56 | A laide eclairage et texturing opengl !!Problemes!!

zerailkiller



Bonjour a tous, voila je suis en train de developper un petit doom like (je suis debutant sous opengl) .Jai fais un cube map et lorsque j applique ma texture sur le sol, plus moyen d avoir d éclairage,jai vraiment besoin d aide MERCI d avance voici mon code

mercredi 31 août 2005 à 02:19:15 | Re : A laide eclairage et texturing opengl !!Problemes!!

zerailkiller


#include <gl/glut.h>
#include "loadppm.c"

char texFileName[] = "sol.ppm";
PPMImage *image;

GLfloat minX=0.0,maxX=1.0;


void Reshape (int w, int h)
{
 glMatrixMode( GL_PROJECTION ); //on veut définir la projection
 glLoadIdentity();
 glFrustum( -1., 1., -1., 1., 1.5, 300);
 gluLookAt(0,0,10,0,0,0,0,1,1);
 glMatrixMode( GL_MODELVIEW ); //retour modélisation - visualisation
 glViewport( 0, 0, 640  , 480 );
}


void InitGL()
{
image = LoadPPM(texFileName);

   
    glEnable(GL_DEPTH_TEST);
    glDepthFunc(GL_LESS);

   /* glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
       glTexImage2D(GL_TEXTURE_2D, 1, 3, image->sizeX, image->sizeY,
   0, GL_RGB, GL_UNSIGNED_BYTE, image->data);
    */
    gluBuild2DMipmaps(GL_TEXTURE_2D, 3, image->sizeX, image->sizeY,GL_RGB, GL_UNSIGNED_BYTE, image->data);
    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
    glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
    glEnable(GL_TEXTURE_2D);
 //glEnable(GL_FOG);
 GLfloat color[4] = {0.1,0.01,0.01,0.01};
 GLfloat lightpos[4] = { 20,20,20,0};
 GLfloat amb[4] = {0,0,0,1};
 GLfloat dif[4] = {1,1,1,1};
 GLfloat spec[4] = {1,1,1,1};

 GLfloat matamb[4] = {0,0,0,1};
 GLfloat matdif[4] = {1,1,1,1};
 GLfloat matspec[4] = {1,1,1,1};
 GLfloat emiss[4] = {0.3,0.1,0.1,1};
 
 
 glFogf(GL_FOG_START,200);
 glFogfv(GL_FOG_COLOR,color);
 glFogf(GL_FOG_END,600);
 glFogf (GL_FOG_DENSITY, .03);
 glHint (GL_FOG_HINT, GL_DONT_CARE);
 glEnable(GL_LIGHTING);
 glEnable(GL_LIGHT0);
 glLightfv(GL_LIGHT0,GL_POSITION,lightpos);
 glLightfv(GL_LIGHT0,GL_AMBIENT,amb);
 glLightfv(GL_LIGHT0,GL_DIFFUSE,dif);
 glLightfv(GL_LIGHT0,GL_SPECULAR,spec);

 glMaterialfv(GL_FRONT,GL_AMBIENT,matamb);
 glMaterialfv(GL_FRONT,GL_DIFFUSE,matdif);
 glMaterialfv(GL_FRONT,GL_SPECULAR,matspec);
 glMaterialfv(GL_FRONT,GL_EMISSION,emiss);
 glMaterialf(GL_FRONT,GL_SHININESS,100);
 glShadeModel(GL_SMOOTH);
 glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
}


 

mercredi 31 août 2005 à 02:20:19 | Re : A laide eclairage et texturing opengl !!Problemes!!

zerailkiller

 void Draw()
{

  glClearColor(0,0.3,0.9,0);

  glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); //Efface le framebuffer et le depthbuffer


  glLoadIdentity();
  glColor3f(0.0,0.5,0.5);//arme
  railgun();
  
  if (tir>0)
  {
   glPushMatrix();

   glBegin(GL_LINES);
   glColor3f(1,0.0,0.1);
   glVertex3i(8,-3,0);
   glVertex3i(1,-3,-3000);
   glEnd();
   glBegin(GL_LINES);
   glColor3f(1,0.1,0.1);
   glVertex3i(9,-3,0);
   glVertex3i(2,-3,-3000);
   glEnd();
   glBegin(GL_LINES);
   glColor3f(1,0.1,0.1);
   glVertex3i(8,-4,0);
   glVertex3i(1,-4,-3000);
   glEnd();
   glBegin(GL_LINES);
   glColor3f(1,0.1,0.1);
   glVertex3i(9,-4,0);
   glVertex3i(1,-4,-3000);
   glEnd();
   
   glPopMatrix();
   tir+=-0.1;
  }
    
 
  
  glRotatef(camanglex,1,0,0);
  glRotatef(camangley,0,1,0);
  glTranslatef(coordx,coordy-25,coordz);//camera
  


  /* monde tout mettre
  ici
  */
 
    glBegin(GL_QUADS);
    glTexCoord2f(0, 0); glVertex3f(-100,0 , -100);
    glTexCoord2f(5, 0); glVertex3f(-100,0 , 100);
    glTexCoord2f(5, 5); glVertex3f(100, 0, 100);
    glTexCoord2f(0, 5); glVertex3f(100, 0, -100);

    glEnd();
 
glBegin(GL_QUADS);
    glTexCoord2f(0, 0); glVertex3f(-100,50 , -100);
    glTexCoord2f(5, 0); glVertex3f(-100,50 , 100);
    glTexCoord2f(5, 5); glVertex3f(100, 50, 100);
    glTexCoord2f(0, 5); glVertex3f(100, 50, -100);

    glEnd();

 glPushMatrix();
 
    glBegin(GL_QUADS);
    glTexCoord2f(0, 0); glVertex3f(-100,50 , -100);
    glTexCoord2f(1, 0); glVertex3f(-100,0 , -100);
    glTexCoord2f(1, 5); glVertex3f(-100, 0, 100);
    glTexCoord2f(0, 5); glVertex3f(-100, 50, 100);

    glEnd();
 glBegin(GL_QUADS);
    glTexCoord2f(0, 0); glVertex3f(100,50 , -100);
    glTexCoord2f(1, 0); glVertex3f(100,0 , -100);
    glTexCoord2f(1, 5); glVertex3f(-100, 0, -100);
    glTexCoord2f(0, 5); glVertex3f(-100, 50, -100);

    glEnd();
  glBegin(GL_QUADS);
    glTexCoord2f(0, 0); glVertex3f(100,50 , 100);
    glTexCoord2f(5, 0); glVertex3f(-100, 50, 100);
    glTexCoord2f(5, 1); glVertex3f(-100, 0, 100);
    glTexCoord2f(0, 1); glVertex3f(100,0 , 100);

    glEnd();
 glBegin(GL_QUADS);
    glTexCoord2f(0, 0); glVertex3f(100,50 ,-100);
    glTexCoord2f(1, 0); glVertex3f(100,0 , -100);
    glTexCoord2f(1, 5); glVertex3f(100, 0, 100);
    glTexCoord2f(0, 5); glVertex3f(100, 50, 100);

    glEnd();
 glPopMatrix();


glPopMatrix();

  
  glPushMatrix();
  glColor3f(1,1,0);
  glTranslatef(10,250,-200);
  glutSolidSphere(10,20,20);
  glPopMatrix();
  glPushMatrix();
  glColor3f(0,0,0.1);
  doom();
  glPopMatrix();
  

  
  normalise(camanglex);
  normalise(camangley);
  mousecam();
  calculs();

  glutSwapBuffers();
  glutPostRedisplay(); //Uniquement pour GLUT
}


int main( int argc, char *argv[ ], char *envp[ ] )
 
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH);
glutInitWindowSize(640 ,480);  //Optionnel
glutInitWindowPosition(0,0);
glutCreateWindow("DOOM 9");
glutWarpPointer(320,240);
glutKeyboardFunc(trucavecdestouches);

glutPassiveMotionFunc(madafakamouse);
glutPassiveMotionFunc(madafakamouse2);
glutMouseFunc(boutonsouris);

InitGL();
 
glutReshapeFunc(Reshape);
glutDisplayFunc(Draw);
 
//glutFullScreen();
 
glutMainLoop();


return 0;
 
}

mercredi 31 août 2005 à 10:35:50 | Re : A laide eclairage et texturing opengl !!Problemes!!

luhtor

Je crois qu'un petit glGenTextures, et glBindTexture seraient les bienvenu.

variable globale: GLuint texture_id;


glGenTextures (1, &texture_id);
glBindTexture(GL_TEXTURE_2D, texture_id);

   gluBuild2DMipmaps(GL_TEXTURE_2D, 3, image->sizeX, image->sizeY,GL_RGB, GL_UNSIGNED_BYTE, image->data);
    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
    glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
    glEnable(GL_TEXTURE_2D);


mercredi 31 août 2005 à 11:08:12 | Re : A laide eclairage et texturing opengl !!Problemes!!

zerailkiller

MErci beaucoup luhtor ,Je vais essayer. :)

mercredi 31 août 2005 à 11:51:33 | Re : A laide eclairage et texturing opengl !!Problemes!!

zerailkiller



Par contre une derniere chose ,
coment dire a opengl quelle texture on veux mapper dans le draw() (ma fonction de dessin) lorsquon applique les coordonnées de la texture aux vertex?

merci :)

mercredi 31 août 2005 à 11:58:02 | Re : A laide eclairage et texturing opengl !!Problemes!!

zerailkiller

c est bon jai trouvé , merci eaucoup luthor de m avoir appris ces trucs, j aurais mis des heures a trouver sinon,allez tcho ++++++++++++++

mercredi 31 août 2005 à 12:00:09 | Re : A laide eclairage et texturing opengl !!Problemes!!

keil


la fonction glBindTexture(int Type, int Texture_ID) te permet de sélectionner la texture à appliquer.
Si tu veux désactiver l'application de texture sur une surface, utilise glDisable(GL_TEXTURE_2D);
glGenLists(int nb) te renvoi un entier si nb = 1 ou sinon un tableau d'entier qui te serviront à attribuer un ID aux textures que tu chargeras avec ce que luthor t'as donné


Cette discussion est classée dans : opengl, problemes, laide, eclairage, texturing


Répondre à ce message

Sujets en rapport avec ce message

Problemes d'inclusion avec openGL et version [ par dletozeun ] bonjour, Je voudrais utliser les extensions d'opengl. Pour cela j'ai inclu le header glext.h dans mon projet sous devcpp. Le header est inclu dans 2 opengl multitexturing [ par dletozeun ] bonjour, J'ai reussi a mettre en place le multitexturing avec opengl, j'obtiens un melange homogene entre  textures sur un polygone mais le probleme OpenGL eclairage [ par dletozeun ] bonjour,J'aimerais savoir comment dessiner un objet en 3D avec openGL en appliquant des groupes de lissages a l'objet.C a dire que je voudrais que cer OpenGL: problemes des textures [ par dletozeun ] bonjour,dans mon projet actuel sous devcpp j'affiche un objet 3D avec opengl en utilisant  GL_TRIANGLE_STRIP pour optimiser la vitesse d'affichage.... TRAITEMENT D'IMAGE [ par Batman60 ] salut je cherche le moyen d'ajouter à une image des parties colorées ou transparentes exemple sur une image 1024X800    je voudrais la transformer en texte opengl qui change de couleur [ par mondrone ] J'ai un programme OpenGL (+ Glut sous DevCpp) qui suivant certaines touches doit afficher des phrases prédéfinies à l'écran avec glutBitmapCharacter. matrices et c++ [ par anne-lise ] Bonjour, je debute en c++ et j'ai quelques problemes avec les tableaux... D'abord, y a t'il un moyen d'avoir pour resultat d'une fonction un tableau ? problème avec devc++ opengl windows [ par Dyr3e ] bonjour j'aimerai créer une application openGL sous windows mais compatible Linux, du coup je voudrais eviter les déclaration de windows qui ne sont p rotation d'une BMP avec OpenGL [ par ______ ] est ce qu'on peut faire tourner une image 2D dessinée av OpenGL structure - texture... [ par un4given ] Hello !Bon j'etais deja venu recolter vos precieux conseils y a un bon mois de cela pendant la creation d'une simulation de tir a l'arc... Je suis tou


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

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 : 4,274 sec (3)

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