GLSL 内置函数

not()

逐分量取反布尔向量。

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

函数签名

bvec2 not(bvec2 x)
bvec3 not(bvec3 x)
bvec4 not(bvec4 x)

参数

x
输入值或左侧向量

返回值

长度不变的布尔向量,每个 true 变为 false,每个 false 变为 true。

在线示例

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

not 做什么

逐分量取反布尔向量。

看懂预览

not(lessThan(vec2(x,y),vec2(0.0))).x 把左半边判定翻成右半边。把 lessThan 的界限设为 vec2(0.5),取反后的分界会向右移动。

核心调用

float(not(lessThan(vec2(x,y),vec2(0.0))).x);

标量逻辑取反用 !;not 接受布尔向量。

修改实验

把 not 的输入改为 bvec2(true,false),保留 .x。第一个分量取反后会处处为 false;若取 .y,则会处处为 true。

规范

GLSL ES 1.00 built-in functions, chapter 8

相关函数