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.0
  • ceil(2.0) 是 2.0
  • ceil(-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 更直观。

相关函数