GLSL 内置函数

modf()

同时返回带符号小数部分并输出整数部分。

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

函数签名

genType modf(genType x, out genType integerPart)

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

参数

x
输入值或左侧向量
integerPart
输出的整数部分

返回值

返回 x 带符号的小数部分,整数部分写入 integerPart;两者保留 x 的符号与类型。

在线示例

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

modf 做什么

同时返回带符号小数部分并输出整数部分。

看懂预览

modf(x*4.0,integerPart) 绘出带符号的小数斜坡,左侧结果为负。把 4.0 改成 2.0,斜坡归零的次数会减半。

核心调用

modf(x*4.0,integerPart);

小数部分与原数同号,区别于始终非负的 fract。

修改实验

在 modf 调用后加上 result=integerPart/4.0;。预览会从小数斜坡切换为阶梯,显示通过 out 参数写出的整数部分。

规范

GLSL ES 3.00 built-in functions, chapter 8

相关函数