OpenGL weigert sich, ein Dreieck zu zeichnen.
Verfasst: Dienstag 29. Juli 2014, 20:52
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:
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.
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

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()
Danke und Lg Y.