Ich versuche, mit OpenGL zu beginnen, mit Python und PyGame.Wie OpenGL-Kontext mit PyGame statt GLUT
Ich werde PyGame statt GLUT verwenden, um alle die Initialisierung zu tun, Fenster öffnen, Eingang Handhabung usw.
jedoch meine Shadern kompilieren versagen, wenn ich genau die Version von OpenGL angeben und Profil.
Sie tun mit GLUT Initialisierung aus dem Buch kompilieren:
glutInit()
glutInitDisplayMode(GLUT_RGBA)
glutInitWindowSize(400, 400)
# this is what I need
glutInitContextVersion(3, 3)
glutInitContextProfile(GLUT_CORE_PROFILE)
glutCreateWindow("main")
Aber mit einfachen PyGame Initialisierung wie folgt aus:
pygame.init()
display = (400, 400)
pygame.display.set_mode(display, pygame.DOUBLEBUF|pygame.OPENGL)
die angeben, nicht genau OpenGL Version 3.3 und CORE_PROFILE , das gleiche Programm würde beim Versuch, Shader zu kompilieren, fehlschlagen:
RuntimeError: ('Shader compile failure (0): 0:2(10): error: GLSL 3.30 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.00 ES, and 3.00 ES\n', ['\n #version 330 core\n layout(location = 0) in vec4 position;\n void main()\n {\n gl_Position = position;\n }\n '], GL_VERTEX_SHADER)
Meine Frage ist: Wie mache ich diese Initialisierung mit PyGame?
Haben Sie das jemals gelöst? – Oly