GLSL 内置函数

textureCube()

按三维方向采样立方体贴图。

示例版本:GLSL ES 1.00 / WebGL 1示例阶段:片段

函数签名

vec4 textureCube(samplerCube sampler, vec3 direction)

参数

sampler
绑定的测试纹理
direction
签名中给出的输入量,类型和尺寸必须匹配

返回值

按方向绝对值最大的分量选择立方体面,再在该面对应坐标采样得到的 vec4。

在线示例

修改右侧代码,左侧预览会实时更新。

textureCube 做什么

按三维方向采样立方体贴图。

看懂预览

normalize(vec3(x,y,0.7)) 让预览中央朝向立方体的 +Z 面。把 0.7 改成 2.0,+Z 会在所有可见方向中占优,并铺满画布。

核心调用

textureCube(u_cube,normalize(vec3(x,y,0.7))).rgb;

输入是方向,不是二维 UV;预览的六面分别有方向标记。

修改实验

把方向改为 normalize(vec3(x,y,-0.7))。中央面会从 +Z 换成 -Z,可从生成的面标签和底色识别变化。

规范

GLSL ES 1.00 built-in functions, chapter 8

相关函数