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)。实际坐标只覆盖纹理每条轴的一半,测试图左下四分之一会被放大。

规范

GLSL ES 3.00 built-in functions, chapter 8

相关函数