我将GL_TEXTURE_3D传递给iOS应用程序中的片段着色器。我使用缩小和放大滤镜作为GL_LINEAR来处理这个纹理。但是,在应用中渲染的结果纹理具有块,而不是颜色的平滑过渡,这意味着它正在使用GL_NEAREST插值。 下面是预期VS接收的输出图像 iOS中的OpenGL ES 3.0中的texture3D中的插值
PS的截图:如果我使用2D纹理代替,通过在3D纹理用作扁平的2D纹理和在着色器手动执行插值,它工作良好,我得到预期的产出。
这里是设置GL_LINEAR
代码:
GLenum target, minificationFilter, magnificationFilter;
target = GL_TEXTURE_3D;
minificationFilter = GL_LINEAR;
magnificationFilter = GL_LINEAR;
glTexParameteri(target, GL_TEXTURE_MIN_FILTER, minificationFilter);
glTexParameteri(target, GL_TEXTURE_MAG_FILTER, magnificationFilter);
你可以显示你设置GL_LINEAR的代码吗? –
@RhythmicFistman:我编辑帖子以包含代码。感谢您的询问。 – user5597458
这些块非常大。它可以是纹理量化吗?你如何上传纹理? –