IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenGL Discussion :

Opengl - Problème avec les arrêtes


Sujet :

OpenGL

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Directeur technique
    Inscrit en
    Juillet 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 31
    Par défaut Opengl - Problème avec les arrêtes
    Bonjour,

    Alors voila c'est très simple,
    Je programme une petite appli avec OPENGL, juste pour le fun. Et je suis passé à l'utilisation des lumières. J'arrive à m'en servir, vecteur normal et tout. Mais lorsque j'éclaire une surface plane, pour laquelle j'ai maximiser le nombre de sommet, afin que la lumière puisse être effective au maximum, j'obtiens des strilles qui fausse l'image un peu comme l'aliasing.

    Mieux vaut une bonne image qu'un long discours :p : (voir image en bas du post. AuraHxC)

    C'est bizar.
    Voici un petit bout de code qui montre ma configuration OPENGL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
    //Type de projection, perspective
    		gl.glMatrixMode(GL.GL_PROJECTION);
    		gl.glLoadIdentity();
     
    		glu.gluPerspective(40, FLUX.mainWindowWidth/FLUX.mainWindowHeight, 1.0, 1000.0);
    		gl.glScalef(0.2f, 0.4f, 1);
     
     
     
    		//Taille d'une ligen par default
    		gl.glLineWidth(1.5f);
     
    		//Buffer qOptions
    		gl.glEnable(GL.GL_DEPTH_TEST);
    		gl.glEnable(GL.GL_TEXTURE_2D);
    		gl.glEnable (GL.GL_NORMALIZE);
    		gl.glHint(GL.GL_PERSPECTIVE_CORRECTION_HINT, GL.GL_NICEST);
     
     
    		gl.glEnable( GL.GL_POLYGON_SMOOTH );
    		gl.glBlendFunc( GL.GL_SRC_ALPHA, GL.GL_ONE_MINUS_SRC_ALPHA );
    		gl.glEnable( GL.GL_BLEND );
     
                            //TEXTURE SOL
    			sol.setTexParameteri(GL.GL_TEXTURE_WRAP_S, GL.GL_REPEAT);
    			sol.setTexParameteri(GL.GL_TEXTURE_WRAP_T, GL.GL_REPEAT);
    			sol.setTexParameteri(GL.GL_TEXTURE_MAG_FILTER, GL.GL_LINEAR);
    			sol.setTexParameteri(GL.GL_TEXTURE_MIN_FILTER, GL.GL_LINEAR);
     
            float[] mambient = {0.11f, 0.06f, 0.11f, 1.0f};
    	float[] mdiffuse = {0.43f, 0.47f, 0.54f, 1.0f};
    	float[] mspecular = {0.33f, 0.33f, 0.52f, 1.0f};
    	float[] memission = {0f, 0f, 0f, 0.0f};
    	float mshininess = 10.0f;
     
    	float[] position = {0.0f, 0.0f, 1f, 1.0f};
    	float[] ambient = {0.0f, 0.0f, 0.0f, 1.0f};
    	float[] diffuse = {1.0f, 1.0f, 1.0f, 1.0f};
    	float[] specular = {1.0f, 1.0f, 1.0f, 1.0f};
     
     
     
    		gl.glLightfv(GL.GL_LIGHT0, GL.GL_POSITION, position, 0);
    		gl.glLightfv(GL.GL_LIGHT0, GL.GL_AMBIENT, ambient, 0);
    		gl.glLightfv(GL.GL_LIGHT0, GL.GL_DIFFUSE, diffuse, 0);
    		gl.glLightfv(GL.GL_LIGHT0, GL.GL_SPECULAR, specular, 0);
     
    		gl.glLightf(GL.GL_LIGHT0, GL.GL_SPOT_CUTOFF, 30);
     
    		gl.glMaterialfv(GL.GL_FRONT, GL.GL_AMBIENT, mambient, 0);
    		gl.glMaterialfv(GL.GL_FRONT, GL.GL_DIFFUSE, mdiffuse, 0);
    		gl.glMaterialfv(GL.GL_FRONT, GL.GL_SPECULAR, mspecular, 0);
    		gl.glMaterialfv(GL.GL_FRONT, GL.GL_EMISSION, memission, 0);
    		gl.glMaterialf(GL.GL_FRONT, GL.GL_SHININESS, mshininess);
     
     
    		gl.glEnable(GL.GL_LIGHT0);
     
    		gl.glEnable(GL.GL_COLOR_MATERIAL); 
    		gl.glEnable(GL.GL_LIGHTING);
    ma boucle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    //On met à jour le tampon
    		gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
     
    		//Affichage et positionnement de la caméra
    		gl.glMatrixMode(GL.GL_MODELVIEW);
    		gl.glLoadIdentity();
    				//gluLookAt( camX, camY, camZ, cibleX, cibleY, cibleZ, vertX, vertY, vertZ );
    				glu.gluLookAt(CameraX, CameraY, CameraZ, CameraCibleX, CameraCibleY, CameraCibleZ, 0, 1, 0);
     
                   //PUIS JE DESSINE...
    Est-ce que quelqu'un saurait d'où cela pourrait-il venir ? :euh:
    Merci à vous,
    Images attachées Images attachées  

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Lazarus] [Linux] Problème avec les points d'arrêts
    Par ovni76 dans le forum Lazarus
    Réponses: 6
    Dernier message: 15/02/2010, 22h45
  2. Problème avec les NURBS avec OPENGL
    Par milena dans le forum Développement 2D, 3D et Jeux
    Réponses: 0
    Dernier message: 10/01/2010, 17h48
  3. Skybox: problème avec les arrêtes
    Par milena dans le forum Développement 2D, 3D et Jeux
    Réponses: 9
    Dernier message: 16/08/2008, 19h16
  4. Projet WinCE 5 : Problème avec les points d'arrêts
    Par arnoo91410 dans le forum Visual Studio
    Réponses: 0
    Dernier message: 31/08/2007, 16h11
  5. [TP] Problème avec les points d'arrêt
    Par 8811fred dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 30/05/2007, 21h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo