Tôi đang cố bắt đầu với OpenGL, sử dụng Python và PyGame.Cách khởi tạo ngữ cảnh OpenGL với PyGame thay vì GLUT
Tôi sẽ sử dụng pygame thay vì thị trường bất động để làm tất cả những Khởi tạo, cửa sổ mở, xử lý đầu vào vv
Tuy nhiên, shaders tôi đang thất bại trong việc biên dịch, trừ khi tôi xác định chính xác phiên bản của OpenGL và Hồ sơ.
Họ làm biên dịch với thị trường bất động khởi tạo từ cuốn sách:
glutInit()
glutInitDisplayMode(GLUT_RGBA)
glutInitWindowSize(400, 400)
# this is what I need
glutInitContextVersion(3, 3)
glutInitContextProfile(GLUT_CORE_PROFILE)
glutCreateWindow("main")
Nhưng, với khởi Pygame đơn giản như thế này:
pygame.init()
display = (400, 400)
pygame.display.set_mode(display, pygame.DOUBLEBUF|pygame.OPENGL)
mà không xác định chính xác phiên bản OpenGL 3.3 và CORE_PROFILE , cùng một chương trình sẽ thất bại khi cố gắng biên dịch bóng đổ:
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)
Câu hỏi của tôi là: làm cách nào để thực hiện việc khởi tạo này với PyGame?
Bạn đã bao giờ giải quyết vấn đề này chưa? – Oly