Seite 1 von 1

OpenGL weigert sich, ein Dreieck zu zeichnen.

Verfasst: Dienstag 29. Juli 2014, 20:52
von Üpsilon
Hallo ihr Lieben,
nachdem ich mich gestern erstmals mit OpenGL beschäftigt habe, hab ich heute die ersten zwei Kapitel von diesem Tutorial durchgearbeitet. Und beim Versuch, mit Python+PyOpenGL ein Dreieck in die Gegend zu malen, scheitere ich schon :| Hier mal mein Quellcode:

Code: Alles auswählen

#!/usr/bin/env python3
# -*- coding:utf-8 -*-

import sys
import pygame
from OpenGL.GL import *
from OpenGL.GLU import *
from OpenGL.GLUT import *

class Szene:
    
    def __init__(self):
        self.laeuft = True
        self.init_fenster()
        
    def init_fenster(self):
        pygame.init()
        self.fenster = pygame.display.set_mode((800, 450), pygame.OPENGL)
        glutInit() # GLUT initen
        glShadeModel(GL_SMOOTH) # Shader an
        glClearColor(0.9,0.9,0.9,0.0) # Hintergrundfarbe
        # Tiefentests
        glClearDepth(1)
        glEnable(GL_DEPTH_TEST)
        glDepthFunc(GL_LEQUAL)
    
    def verarbeite_event(self, event):
        # Beenden
        if event.type == pygame.QUIT or (event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE):
            self.laeuft = False
    
    def aktualisiere(self):
        # Bildschirm grau ausmalen
        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
        # Projektionsmatrix
        glMatrixMode(GL_PROJECTION)
        glLoadIdentity()
        gluPerspective(45.0, 16/9, 1, 100)
        gluLookAt(0,1,0, 0,1,5, 0,1,0)
        # Modellmatrix
        glMatrixMode(GL_MODELVIEW)
        glLoadIdentity()
        # Dreieck malen
        glColor3f(1, 0 ,0)
        glTranslatef(-1.5, 0, -6)
        glBegin(GL_TRIANGLES)
        glVertex3f(0,1,0)
        glVertex3f(-1,0,0)
        glVertex3f(1,0,0)
        glEnd()
        
    def hauptschleife(self):
        while self.laeuft:
            # Eingabe
            for event in pygame.event.get():
                self.verarbeite_event(event)
            # Aktualisieren
            self.aktualisiere()
            # Flush & Flip (Neuzeichnen)
            glFlush()
            pygame.display.flip()
        sys.exit()
            

if __name__ == '__main__':
    szene = Szene()
    szene.hauptschleife()
Und wenn ich das starte, dann ... öffnet sich ein Fenster mit grauem Hintergrund und ohne jegliches Dreieck. Keine Fehlermeldung. Was mache ich falsch?
Danke und Lg Y.

Re: OpenGL weigert sich, ein Dreieck zu zeichnen.

Verfasst: Dienstag 29. Juli 2014, 21:16
von EyDu
Das Dreieck wird schon gezeichnet, es befindet sich nur hinter dir ;-)

Re: OpenGL weigert sich, ein Dreieck zu zeichnen.

Verfasst: Dienstag 29. Juli 2014, 21:32
von Üpsilon
Upps. :D Daran hab ich gar nicht gedacht... Danke!