GLSL 内置函数
textureProj()
先作投影除法,再按采样器类型读取纹理。
示例版本:GLSL ES 3.00 / WebGL 2示例阶段:片段
函数签名
gvec4 textureProj(gsampler2D sampler, vec3 coord)参数
- sampler
- 绑定的测试纹理
- coord
- 采样坐标
返回值
纹理坐标除以最后给出的投影分量后,过滤采样得到的四个分量。
在线示例
修改右侧代码,左侧预览会实时更新。
textureProj 做什么
先作投影除法,再按采样器类型读取纹理。
看懂预览
vec3(uv,0.7) 除以最后一个分量后,实际 UV 范围会超过 1。把 0.7 改为 1.0,即可恢复完整网格,去掉右侧和顶部的边界延伸。
核心调用
textureProj(u_texture,vec3(uv,0.7)).rgb;
保持 q 为非零值,vec4 坐标的投影除数在 w。
修改实验
在 textureProj 中试用 vec3(uv,2.0)。实际坐标只覆盖纹理每条轴的一半,测试图左下四分之一会被放大。