GLSL 内置函数

round()

舍入到最近整数,半整数方向由实现决定。

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

函数签名

genType round(genType x)

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

参数

x
输入值或左侧向量

返回值

逐分量返回最近的整数值,仍用浮点类型保存;恰好位于中间时的舍入方向由实现决定。

在线示例

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

round 做什么

舍入到最近整数,半整数方向由实现决定。

看懂预览

round(x*4.0)/4.0 的相邻台阶相差 0.25。把两处 4.0 都改为 2.0,台阶的高度和宽度都会加倍。

核心调用

round(x*4.0)/4.0;

恰好 n+0.5 时不要依赖固定方向,需要稳定偶数舍入用 roundEven。

修改实验

把结果表达式换成 round(0.5)/4.0。画面会变成水平线,但恰好位于中间的输入允许实现自行选择方向,因此线条高度可能因实现而异。

规范

GLSL ES 3.00 built-in functions, chapter 8

相关函数