Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python PyOpenGL:立方体纹理是一种纯色_Python_Opengl_Textures_Pyopengl - Fatal编程技术网

Python PyOpenGL:立方体纹理是一种纯色

Python PyOpenGL:立方体纹理是一种纯色,python,opengl,textures,pyopengl,Python,Opengl,Textures,Pyopengl,我正在向立方体添加纹理,但一直遇到这个问题 我真的不知道为什么会发生这种情况,我想知道是否还有其他人可以帮忙 以下是我的一些代码片段: 函数生成立方体顶点 def立方体_顶点(x,y,z,n): “”“返回位于x、y、z位置且大小为2*n的立方体顶点。” 返回[ [x+n,y-n,z-n],[x+n,y+n,z-n],[x-n,y+n,z-n],[x-n,y-n,z-n], [x+n,y-n,z+n],[x+n,y+n,z+n],[x-n,y-n,z+n],[x-n,y+n,z+n], ]

我正在向立方体添加纹理,但一直遇到这个问题

我真的不知道为什么会发生这种情况,我想知道是否还有其他人可以帮忙

以下是我的一些代码片段:

函数生成立方体顶点

def立方体_顶点(x,y,z,n):
“”“返回位于x、y、z位置且大小为2*n的立方体顶点。”
返回[
[x+n,y-n,z-n],[x+n,y+n,z-n],[x-n,y+n,z-n],[x-n,y-n,z-n],
[x+n,y-n,z+n],[x+n,y+n,z+n],[x-n,y-n,z+n],[x-n,y+n,z+n],
]
用于生成多维数据集的函数

def多维数据集(cubeverts):
glEnable(GL_纹理_2D)
glBegin(GLU四边形)
对于冲浪中的冲浪:
对于曲面中的顶点:
glTexCoord2f(0.0,1.0)
glVertex3fv(立方顶点[顶点])
格伦德()
以及制作纹理的函数:

def get_纹理(texturename,宽度=16,高度=16):
img=Image.open(texturename)
img_data=numpy.array(list(img.getdata()),numpy.int8)
textID=glGenTextures(1)
glBindTexture(GL_纹理_2D,textID)
glPixelStorei(GLU解包对齐,1)
GLTEX参数F(GL_纹理\u 2D、GL_纹理\u包裹、GL_夹紧)
GLTEX参数F(GL_纹理\u 2D、GL_纹理\u包裹、GL_夹紧)
GLTEX参数F(GL_纹理\u 2D、GL_纹理\u包裹、GL_重复)
GLTEX参数F(GL_纹理\u 2D、GL_纹理\u包裹、GL_重复)
glTexParameterf(GL_纹理2D,GL_纹理MAG_过滤器,GL_最近)
glTexParameterf(GL\u纹理\u 2D,GL\u纹理\u最小\u过滤器,GL\u最近)
glTexEnvf(GL_纹理_环境、GL_纹理_环境模式、GL_贴花)
GLTEXAGE2D(GL_纹理_2D,0,GL_RGB,宽度,高度,0,GL_RGBA,GL_无符号字节,img_数据)
返回文本ID

我可以通过添加

如果n==0:
xv=0.0
yv=0.0
如果n==1:
xv=1.0
yv=0.0
如果n==2:
xv=1.0
yv=1.0
如果n==3:
xv=0.0
yv=1.0
到“surf循环”中的顶点

最终立方体函数:

def多维数据集(cubeverts):
glBegin(GLU四边形)
对于冲浪中的冲浪:
n=0
对于曲面中的顶点:
如果n==0:
xv=0.0
yv=0.0
如果n==1:
xv=1.0
yv=0.0
如果n==2:
xv=1.0
yv=1.0
如果n==3:
xv=0.0
yv=1.0
glTexCoord2f(xv,yv)
glVertex3fv(立方顶点[顶点])
n+=1
格伦德()

glTexCoord2f(0.0,1.0)
那么,所有纹理坐标都是一样的吗?哎呀,我修好了