我是opengl的初学者。我想在GL_QUADS上重复纹理。
到目前为止,这是加载纹理的代码,
file = os.path.join('image','texture.png')
surface = image.load(file)
self.t1 = surface.image_data.create_texture(image.Texture)
glBindTexture(GL_TEXTURE_2D, t1.id)
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT)
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT)
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST)
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST)
和绘图
glBindTexture(GL_TEXTURE_2D, self.t1.id)
glBegin(GL_QUADS)
glTexCoord2f(0.0, 0.0); glVertex3f(0, 0, 0)
glTexCoord2f(1.0, 0.0); glVertex3f(self.width, 0, 0)
glTexCoord2f(1.0, 1.0); glVertex3f(self.width, self.height, 0)
glTexCoord2f(0.0, 1.0); glVertex3f(0, self.height, 0)
glEnd()
当self.width和self.height改变时,纹理会被拉伸和扭曲。
如何重复纹理? 如果我做错了,请原谅我。
谢谢...
答案 0 :(得分:2)
如何重复纹理?如果我做错了,请原谅我。
使用范围[0,1]之外的纹理坐标(glTexCoord)。