GLSL 内置函数
ceil()
把 x 向上取整,得到不小于 x 的最小整数。
函数签名
float ceil(float x)
vec2 ceil(vec2 x)
vec3 ceil(vec3 x)
vec4 ceil(vec4 x)参数
- x
- 要向上取整的数。传入向量时,每个分量分别计算。
返回值
与 x 类型相同的值,内容是整数(仍以浮点数存储)。
在线示例
修改右侧代码,左侧预览会实时更新。
工作原理
ceil(x) 是 floor 的镜像:总是向上取整。
ceil(2.1)是3.0ceil(2.0)是2.0ceil(-0.7)是-0.0(向正无穷方向取)
示例里灰色阶梯是 floor,绿色阶梯是 ceil。在两个整数之间,二者总是相差一级;落在整数上时两者相等。
常见用法
- 计算需要多少段:
ceil(length / segment)得到完整覆盖某段长度所需的段数。 - 移动台阶位置:
floor把台阶放在了边界错误的一侧时,换成ceil可以移到另一侧。
常见错误
- 用
ceil(x) - 1.0代替floor(x)。x 本身是整数时两者不同:ceil(2.0) - 1.0是1.0,而floor(2.0)是2.0。 - 需要阈值开关时用了
ceil。要得到 0/1 的结果,step更直观。