GLSL 内置函数

trunc()

向零截断整数部分。

示例版本:GLSL ES 3.00 / WebGL 2示例阶段:片段

函数签名

genType trunc(genType x)

genType 表示 float / vec2 / vec3 / vec4;同名占位符须使用相同类型。

参数

x
输入值或左侧向量

返回值

逐分量返回向零截断的整数部分,仍以输入的浮点类型保存。

在线示例

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

trunc 做什么

向零截断整数部分。

看懂预览

trunc(x*4.0)/4.0 在两侧都向零截断,中央因此有一段较宽的零平台。把两处 4.0 都改成 2.0,中央平台会进一步变宽。

核心调用

trunc(x*4.0)/4.0;

负数时不同于 floor,例如 -1.8 变 -1。

修改实验

把 trunc(x*4.0)/4.0 换成 floor(x*4.0)/4.0 作比较。负数半边会下移,因为 floor 向负无穷取整,而 trunc 向零截断。

规范

GLSL ES 3.00 built-in functions, chapter 8

相关函数