我试图得到多纹理的工作,目前已经有多个纹理加载使用这个函数
def loadTexture(name):
img = PIL.Image.open(name) # .jpg, .bmp, etc. also work
img_data = numpy.array(list(img.getdata()), numpy.int8)
id = glGenTextures(1)
glPixelStorei(GL_UNPACK_ALIGNMENT,1)
glBindTexture(GL_TEXTURE_2D, id)
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_MAG_FILTER, GL_LINEAR)
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR)
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, img.size[0], img.size[1], 0, GL_RGB, GL_UNSIGNED_BYTE, img_data)
return id
我可以设置纹理来使用这个代码
^{pr2}$我的第一次尝试是:
glBindTexture(GL_TEXTURE_2D, 1)
glEnable(GL_TEXTURE_2D)
glBegin(GL_TRIANGLES)
....
glEnd()
glBindTexture(GL_TEXTURE_2D, 3)
glEnable(GL_TEXTURE_2D)
glBegin(GL_TRIANGLES)
....
glEnd()
所以我渲染多边形两次,每次都选择一个不同的纹理,这看起来就像调用glBindTexture(GL_texture_2D,n)将选择剩余纹理一样有效,它将进行渲染,但本身没有混合,我只看到渲染中最后选择的纹理。我试过添加glEnable(glEnable),但似乎没什么用。在
我想做的是把两个过程的像素相加
我该怎么做?在
你确定你需要多次传球吗?下面是一个简单的旧OpenGL多纹理处理示例:
看一看Texture Combiners,它们可能会启用您正在寻找的效果类型。当然,现在这类事情的最新技术是着色器。在
相关问题 更多 >
编程相关推荐