Python 如何在pyglet中创建面上有图像的立方体
我正在制作一个3d游戏,我需要将图像粘贴到一个立方体上,但我找不到Python 如何在pyglet中创建面上有图像的立方体,python,pyglet,Python,Pyglet,我正在制作一个3d游戏,我需要将图像粘贴到一个立方体上,但我找不到正面/背面/顶部/底部/左侧/右侧纹理应该放在哪里 我刚开始使用pyglet,所以我对它不是很熟悉。我已经翻转立方体的纹理部分好几天了,它还是一团乱。下面是我的多维数据集函数代码: def长方体(自身、x1、y1、z1、x2、y2、z2、tex): ''' 从x1、y1、z1到x2、y2、z2绘制一个长方体,并用tex覆盖每一侧\n tex格式:\n (前、后、左、右、上、下) 面向-z方向 ''' 前=特克斯[0] 背面=特克斯
正面
/背面
/顶部
/底部
/左侧
/右侧
纹理应该放在哪里
我刚开始使用pyglet,所以我对它不是很熟悉。我已经翻转立方体的纹理部分好几天了,它还是一团乱。下面是我的多维数据集函数代码:
def长方体(自身、x1、y1、z1、x2、y2、z2、tex):
'''
从x1、y1、z1到x2、y2、z2绘制一个长方体,并用tex覆盖每一侧\n
tex格式:\n
(前、后、左、右、上、下)
面向-z方向
'''
前=特克斯[0]
背面=特克斯[1]
左=特克斯[2]
右=特克斯[3]
顶部=特克斯[4]
底部=特克斯[5]
特克斯坐标=(“t2f”,(0,0,1,0,1,1,0,1))
自我批处理添加(4个,GL_四边形,背面,('v3f',(x1,y1,z1,x1,y1,z2,x1,y2,z2,x1,y2,z1),tex_坐标)
自我批处理添加(4,四元,右,('v3f',(x2,y1,z2,x2,y1,z1,x2,y2,z1,x2,y2,z2,)),特克斯坐标)
自批添加(4个,四方形,顶部,('v3f',(x1,y1,z1,x2,y1,z1,x2,y1,z2,x1,y1,z2,)),特克斯坐标)
自批添加(4个,四方形,正面,('v3f',(x1,y2,z2,x2,y2,z2,x2,y2,z1,x1,y2,z1,)),特克斯坐标)
自批添加(4,GL_四边形,底部,('v3f',(x2,y1,z1,x1,y1,z1,x1,y2,z1,x2,y2,z1,)),tex_坐标)
自我批处理添加(4,GL_四边形,左,('v3f',(x1,y1,z2,x2,y1,z2,x2,y2,z2,x1,y2,z2),tex_坐标)
我无法显示我所期望的内容,因为我没有工作的3d渲染程序。我假设坐标(
x1
,y1
,z1
)是立方体的最小值,坐标是最大值(x1
,y1
,z1
)。e、 g:
self.cuboid(0,0,0,1,1,1,self.tex)
如果立方体是在视图空间中绘制的,则:
x轴指向左侧。必须将左侧
纹理放置在所有顶点的x坐标为x1
的位置,将右侧
纹理放置在x坐标为x2
的位置:
self.batch.add(4,GL_QUADS,right,('v3f',(x1,y1,z1,x1,y1,z2,x1,y2,z2,x1,y2,z1)),tex_坐标)
自批添加(4,GL_四边形,左,('v3f',(x2,y1,z2,x2,y1,z1,x2,y2,z1,x2,y2,z2)),特克斯坐标)
y轴指向上。因此底部
是y坐标为y1
的位置,顶部是y坐标为y2
:
self.batch.add(4,GL_四边形,底部,('v3f',(x1,y1,z1,x2,y1,z1,x2,y1,z2)),tex_坐标)
自行批处理添加(4个四角体,顶部,('v3f',(x1,y2,z2,x2,y2,z2,x2,y2,z1,x1,y2,z1)),特克斯坐标)
在系统中,z轴指向视图外。z轴是x轴和y轴的轴。这导致必须将
front
放置在z坐标为z2
的位置,将back
放置在z坐标为z1
的位置:
self.batch.add(4,GL_QUADS,back,('v3f',(x2,y1,z1,x1,y1,z1,x1,y2,z1),tex_坐标)
自批添加(4个,四方形,正面,('v3f',(x1,y1,z2,x2,y1,z2,x2,y2,z2,x1,y2,z2)),特克斯坐标)
方法长方体:
def长方体(自身、x1、y1、z1、x2、y2、z2、tex):
'''
从x1、y1、z1到x2、y2、z2绘制一个长方体,并用tex覆盖每一侧\n
tex格式:\n
(前、后、左、右、上、下)
面向-z方向
'''
前=特克斯[0]
背面=特克斯[1]
左=特克斯[2]
右=特克斯[3]
顶部=特克斯[4]
底部=特克斯[5]
特克斯坐标=(“t2f”,(0,0,1,0,1,1,0,1))
自批添加(4,GL四元,右,('v3f',(x1,y1,z1,x1,y1,z2,x1,y2,z2,x1,y2,z1)),特克斯坐标)
自批添加(4,GL_四边形,左,('v3f',(x2,y1,z2,x2,y1,z1,x2,y2,z1,x2,y2,z2)),特克斯坐标)
自批添加(4,GL_四边形,底部,('v3f',(x1,y1,z1,x2,y1,z1,x2,y1,z2,x1,y1,z2)),特克斯坐标)
自行批处理添加(4个四角体,顶部,('v3f',(x1,y2,z2,x2,y2,z2,x2,y2,z1,x1,y2,z1)),特克斯坐标)
自批添加(4,GL四元,背面,('v3f',(x2,y1,z1,x1,y1,z1,x1,y2,z1,x2,y2,z1)),特克斯坐标)
自批添加(4个,四方形,正面,('v3f',(x1,y1,z2,x2,y1,z2,x2,y2,z2,x1,y2,z2)),特克斯坐标)
我想我的电脑可能有问题,我尝试的一切都不起作用。