【发布时间】:2020-12-17 19:48:27
【问题描述】:
我正在向立方体添加纹理,但一直遇到这个问题
我真的不知道为什么会这样,想知道是否有其他人可以提供帮助。
这是我的一些代码sn-ps:
生成立方体顶点的函数。
def cube_vertices(x, y, z, n):
""" Return the vertices of the cube at position x, y, z with size 2*n."""
return [
[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 Cube(cubeverts):
glEnable(GL_TEXTURE_2D)
glBegin(GL_QUADS)
for surf in surfs:
for vertex in surf:
glTexCoord2f(0.0,1.0)
glVertex3fv(cubeverts[vertex])
glEnd()
以及制作纹理的函数:
def get_texture(texturename,width=16,height=16):
img = Image.open(texturename)
img_data = numpy.array(list(img.getdata()), numpy.int8)
textID = glGenTextures(1)
glBindTexture(GL_TEXTURE_2D, textID)
glPixelStorei(GL_UNPACK_ALIGNMENT, 1)
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP)
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP)
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT)
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT)
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST)
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST)
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL)
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, img_data)
return textID
【问题讨论】:
-
glTexCoord2f(0.0,1.0)所以,所有的纹理坐标都一样? -
哎呀,我修好了
标签: python opengl textures pyopengl