GLSL 内置函数
texture2DProj()
用最后一个坐标分量作透视除法后采样二维纹理。
示例版本:GLSL ES 1.00 / WebGL 1示例阶段:片段
函数签名
vec4 texture2DProj(sampler2D sampler, vec3 coord)参数
- sampler
- 绑定的测试纹理
- coord
- 采样坐标
返回值
先把坐标前两个分量除以最后一个分量,再过滤采样得到的 vec4。
在线示例
修改右侧代码,左侧预览会实时更新。
texture2DProj 做什么
用最后一个坐标分量作透视除法后采样二维纹理。
看懂预览
vec3(uv*(0.3+uv.x),0.7) 的实际采样位置是 uv*(0.3+uv.x)/0.7。把末尾 0.7 改为 1.0,坐标扩张会减弱,网格显示范围也会改变。
核心调用
texture2DProj(u_texture,vec3(uv*(0.3+uv.x),0.7)).rgb;
除数不能为零;vec4 重载会用 q 分量作除数。
修改实验
把投影参数改为 vec3(uv,1.0)。除以 1 后 uv 不变,网格和文字便恢复未经扭曲的排列。