GLSL 内置函数
texture2DProjLod()
在顶点阶段组合投影坐标和指定 mip 层级。
示例版本:GLSL ES 1.00 / WebGL 1示例阶段:顶点
函数签名
vec4 texture2DProjLod(sampler2D sampler, vec3 coord, float lod)参数
- sampler
- 绑定的测试纹理
- coord
- 采样坐标
- lod
- mip 层级,零为原始尺寸
返回值
一个 vec4,采样坐标先除以投影分量,再按显式 mip 层级读取二维纹理。
在线示例
修改右侧代码,左侧预览会实时更新。
texture2DProjLod 做什么
在顶点阶段组合投影坐标和指定 mip 层级。
看懂预览
顶点调用使用 vec3(uv,1.0),投影除法目前不会改变 UV,随后才按显式层级采样。把 1.0 改为 2.0,插值角点颜色就会来自纹理左下四分之一。
核心调用
texture2DProjLod(u_texture,vec3(uv,1.0),u_parameter*7.0).rgb;
需要 mip 链,LOD 不是模糊半径,且这里在顶点阶段运行。
修改实验
在 Vertex 源码里把 u_parameter*7.0 设为 7.0。顶点会读取很粗的 mip,四边形因此只混合粗略颜色,不能显示清晰文字。