gpt4 book ai didi

python - 如何使用 pyglet 创建 3D?

转载 作者:太空宇宙 更新时间:2023-11-04 04:00:53 24 4
gpt4 key购买 nike

我尝试在 pyglet 中创建一个立方体:

import pyglet
from pyglet.gl import *

window = pyglet.window.Window(400,400,"Paka Paka",True)
@window.event
def on_draw():
window.clear()
glBegin(GL_QUADS)
glVertex3f(0,40,0)
glColor3f(1,0,0)
glVertex3f(100,40,0)
glColor3f(0,1,0)
glVertex3f(100,140,0)
glColor3f(0,0,1)
glVertex3f(100,40,100)
glColor3f(1,1,0)
glVertex3f(100,140,100)
glColor3f(1,0,1)
glVertex3f(0,140,100)
glColor3f(0,1,1)
glVertex3f(0,40,100)
glColor3f(2,0,0)
glVertex3f(0,140,0)
glColor3f(0,0,2)
glEnd()
pyglet.app.run()

当我运行该程序时,我看到了黑屏。

and when I run the program, I saw a black screen.

(向上除外)我是否需要更改顶点类型或其他内容?

编辑:我使用了 Rabbid76 给出的代码。但它没有用。

最佳答案

几何体的部分被(默认)orthographic projection 的近平面和远平面裁剪。 .

我建议通过 glOrtho 设置投影矩阵.例如:

glOrtho(-200, 200, -200, 200, -200, 200) 

分别

glOrtho(0, 400, 400, 400, -200, 200)  

此外,建议通过 glFlush() 刷新单个缓冲窗口

on_draw开始时设置投影,在结束时调用glFlush():

@window.event
def on_draw():
w, h = 400, 400
glMatrixMode(GL_PROJECTION)
glLoadIdentity()
glOrtho(-w/2, w/2, -h/2, h/2, -200, 200)

glMatrixMode(GL_MODELVIEW)

window.clear()

glBegin(GL_QUADS)
# [...]
glEnd()

glFlush()

关于python - 如何使用 pyglet 创建 3D?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58366133/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com