GLSL 内置函数

textureProjLod()

显式指定投影纹理的 mip 层级。

示例版本:GLSL ES 3.00 / WebGL 2示例阶段:片段

函数签名

gvec4 textureProjLod(gsampler2D sampler, vec3 coord, float lod)

参数

sampler
绑定的测试纹理
coord
采样坐标
lod
mip 层级,零为原始尺寸

返回值

投影除法后的坐标在显式 mip 层级处过滤采样得到的四个分量。

在线示例

修改右侧代码,左侧预览会实时更新。

textureProjLod 做什么

显式指定投影纹理的 mip 层级。

看懂预览

vec3(uv,0.8) 的除数改变取景范围,u_parameter*6.0 则改变 mip 细节。把层级参数设为 0.0,就能用最清晰的原始层检查投影范围。

核心调用

textureProjLod(u_texture,vec3(uv,0.8),u_parameter*6.0).rgb;

投影坐标仍然要作除法,不能直接删去第三个分量。

修改实验

将层级固定为 3.0,再把 vec3(uv,0.8) 改为 vec3(uv,1.0)。完整网格会回到画面内,但仍使用同一粗 mip 层。

规范

GLSL ES 3.00 built-in functions, chapter 8

相关函数