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 层。