在 Haskell 中使用多个纹理进行着色器编程
Using multiple textures for shader programming in Haskell
我目前在读取纹理时使用 TextureObjects。我读入了两个纹理,并想在它们之间动态切换,但是当我尝试这样做时:
tUnit =(\(TextureObject x) -> x) texObj
然后
activeTexture $= (TextureUnit tUnit)
setUniform p "texUnit" (TextureUnit tUnit)
它不起作用,但如果我将 tUnit 替换为 0,它会起作用,但它会使用我加载的最后一个纹理绘制所有内容。
我正在使用 GLUtil 的 readTexture
函数加载我的纹理。
有什么想法吗?
TextureUnit 是局部着色器 ID,TextureObject 是全局纹理 ID。在设置活动纹理之前我没有再次绑定我的 TextureObject,所以它只是使用最新的绑定。
我目前在读取纹理时使用 TextureObjects。我读入了两个纹理,并想在它们之间动态切换,但是当我尝试这样做时:
tUnit =(\(TextureObject x) -> x) texObj
然后
activeTexture $= (TextureUnit tUnit)
setUniform p "texUnit" (TextureUnit tUnit)
它不起作用,但如果我将 tUnit 替换为 0,它会起作用,但它会使用我加载的最后一个纹理绘制所有内容。
我正在使用 GLUtil 的 readTexture
函数加载我的纹理。
有什么想法吗?
TextureUnit 是局部着色器 ID,TextureObject 是全局纹理 ID。在设置活动纹理之前我没有再次绑定我的 TextureObject,所以它只是使用最新的绑定。