相关疑难解决方法(0)

GLSL采样器如何确定纹理的缩小,从而确定mipmap级别?

我正在使用OpenGL ES(通过WebGL),但我认为这个问题也适用于完整的OpenGL配置文件.

假设我创建了一个具有完整mipmap级别的OpenGL纹理,并将其TEXTURE_MIN_FILTER设置为NEAREST_MIPMAP_NEAREST.还假设我有一个片段着色器来对此纹理进行采样.根据纹理的缩小程度选择mipmap级别,但是如何选择缩小程度?

在我的例子中,我正在合成(在着色器内)我用来对纹理进行采样的纹理坐标.实际上,我的纹理坐标不是基于任何传入的变化.即使我在这个纹理上启用了mipmapping,它似乎也没有任何效果.这是预期的吗?我是否需要自己计算LOD并将bias参数用于texture2D?(没有texture2DLOD,因为我正在使用ES)

opengl opengl-es glsl mipmaps

7
推荐指数
1
解决办法
3688
查看次数

纹理采样:根据LOD值计算BIAS值

在GL ES 2.0函数中,texture2DLod在片段Shader中不可用.我需要移植GLSL Shader.

在GL ES 2.0中,我只能使用texture2D(sampler2D采样器,vec2坐标,浮动偏置)

告诉我如何计算相当于已知值LOD(细节水平)的偏差值?

//Example GLSL:
float lod=u_lod;
textureLod(sampler, (uInverseViewMatrix * vec4(r, 0.0)).xy, lod);

//I need GL ES 2.0:
float lod=u_lod;
float bias=?  <-----calc bias from lod
texture2D(sampler,(uInverseViewMatrix * vec4(r, 0.0)).xy,bias)
Run Code Online (Sandbox Code Playgroud)

opengl opengl-es glsl

3
推荐指数
1
解决办法
2595
查看次数

标签 统计

glsl ×2

opengl ×2

opengl-es ×2

mipmaps ×1