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

3D Python Discussion :

[pygame OpenGL] dessiner un QUAD [Débutant(e)]


Sujet :

3D Python

  1. #1
    Membre expérimenté
    Avatar de Luke spywoker
    Homme Profil pro
    Etudiant informatique autodidacte
    Inscrit en
    juin 2010
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant informatique autodidacte

    Informations forums :
    Inscription : juin 2010
    Messages : 1 077
    Points : 1 742
    Points
    1 742
    Par défaut [pygame OpenGL] dessiner un QUAD
    Salut les pythons 3D,
    Je débute avec OpenGL (pas facile) et j'ai essayer pour commencer de dessiner un QUAD rouge sur fond blanc, c'était déjà difficile pour moi avec l'exemple d'un bouquin sur pygame d'arriver a obtenir le fond blanc ce que j'ai néanmoins réussi en ajoutant du code aussi extrait du livre (faut bien trouver l'info quelque part):

    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT) #correspond a pygame.display.fill()

    dans le code.

    Mais je bute sur le dessin du QUAD que je n'arrive pas a faire afficher, stop le bla bla, voici mon code qui ressemble beaucoup au code du livre que vous connaissez peut-être (qui ne marche pas a l'état brute):

    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
     
    # -*- coding: utf-8 -*-
     
     
    from OpenGL.GL import *
    from OpenGL.GLU import *
     
    import pygame
    from pygame.locals import *
     
    from sys import exit
     
    pygame.init()
    screen=pygame.display.set_mode((800,600),HWSURFACE|OPENGL|DOUBLEBUF) #écran pygame
     
    glViewport(0,0,800,600) #taille de l'écran
    glMatrixMode(GL_PROJECTION) #GL_PROJECTION projection de coordonnées 3D en 2D
    glLoadIdentity()
    gluPerspective(60.0,800.0/600.0,0.1,600) #definition des paramètres de perspective
    glMatrixMode(GL_MODELVIEW) #Mode de la matrice
    glLoadIdentity()
    glEnable(GL_DEPTH_TEST) #initialise le buffer de l'axe z
     
    glClearColor(1.0,1.0,1.0,0.0) #couleur du background
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT) #correspond a pygame.Surface.fill()
     
    liste=glGenLists(1) #génération d'un index pour la liste
    glNewList(liste,GL_COMPILE) #début de la liste
    glBegin(GL_QUADS) #définition de l'objet a dessiner
    glColor(1.0,0,0,0) #couleur de l'objet: un QUAD
    glVertex(100,100,0.1) #coordonnée du point en haut à gauche du QUAD
    glVertex(700,100,0.1) #coordonnée du point en haut à droite du QUAD
    glVertex(700,700,0.1) #coordonnée du point en bas à droite du QUAD
    glVertex(100,700,0.1) #coordonnée du point en bas à gauche du QUAD
    glEnd #Fin de la définition de l'objet
    glEndList() #fin de la liste
     
    while True :
      glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT)  #correspond a pygame.Surface.fill()
      glBegin(GL_QUADS) #définition de l'objet a dessiner
      glColor(1.0,0,0,0) #couleur de l'objet un QUAD
      glVertex(100,100,0.1) #coordonnée du point en haut a gauche du QUAD
      glVertex(700,100,0.1) #coordonnée du point en haut a droite du QUAD
      glVertex(700,700,0.1) #coordonnée du point en bas a droite du QUAD
      glVertex(100,700,0.1) #coordonnée du point en bas a gauche du QUAD
      glEnd #Fin de la définition de l'objet
      #glCallList(liste)  #Avec un appel a la liste ca ne marche pas non plus
      for event in pygame.event.get() :
        if event.type == QUIT :
          exit()
     
      pygame.display.flip()
    Si vous savez ou avez une idée du pourquoi du comment le QUAD ne s'affiche pas vous seriez bien sympa de poster, car pour le background blanc il fallait ajouter la ligne mentionner au dessus au bon endroit: pas évident au premier abords avec tous ces paramètres a prendre en compte .
    Je suppose que je passe pour un naze de copier minablement le code du book qui ne marche pas mais il faut bien commencer quelque part, merci d'éclairé mon ignorance.
    Pour faire tes armes:
    Use du présent pour construire ton futur sinon use de ce que tu as appris auparavant.
    Et sois toujours bien armé avant de te lancer.
    Le hasard ne sourit qu'aux gens préparés...
    Site: Website programmation international (www.open-source-projects.net)
    Site: Website imagerie 3D (www.3dreaming-imaging.net)
    Testez aux moins pendant une semaine l'éditeur avec terminaux intégrées it-edit Vous l'adopterai sûrement !
    FUN is HARD WORK !!!

  2. #2
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    avril 2004
    Messages
    954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : avril 2004
    Messages : 954
    Points : 1 212
    Points
    1 212
    Par défaut
    bon courage; je me suis intéressé à opengl, mais ça me dépasse complètement ...

Discussions similaires

  1. Qt et OpenGL : dessiner un ensemble de pixels
    Par Carif dans le forum OpenGL
    Réponses: 4
    Dernier message: 16/02/2010, 23h03
  2. Rafraichissement de l'image avec pygame + opengl
    Par bourriquet_42 dans le forum OpenGL
    Réponses: 1
    Dernier message: 23/03/2009, 18h22
  3. Dessiner des objets plus complexes avec OpenGL
    Par Premium dans le forum OpenGL
    Réponses: 18
    Dernier message: 21/11/2006, 17h55
  4. [Opengl] dessiner lorsque qu on clique
    Par harris_macken dans le forum OpenGL
    Réponses: 4
    Dernier message: 09/07/2006, 02h16
  5. [GDI,GDI+,OpenGL] Dessiner des cerles et des arcs
    Par romeo9423 dans le forum MFC
    Réponses: 1
    Dernier message: 17/05/2005, 09h44

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