欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

floor ceil fract 函数的区别

程序员文章站 2022-06-03 08:32:00
...

floor ceil fract 各种函数的区别

  1. Floor : 向下取整。既数轴上最接近目标值的左边值。可以理解为“地板”。floor(0.8) =1,floor(-0.8)=-1
void TestCase(out vec4 fragColor, in vec2 fragCoord)
{
      vec2 st = fragCoord/iResolution.xy;
      float y=floor(st.x*10.0)/10.0;
      float pct = plot(st,y);
      vec3 color =pct * vec3(0,0,1) ;
      fragColor = vec4(color,0);
}

上述代码将st.x 扩展为10的阶梯。
floor ceil fract 函数的区别

  1. Ceil
    向上取整. ~天花板 。 ceil(0.8) =1
void TestCaseCeil(out vec4 fragColor, in vec2 fragCoord)
{
      vec2 st = fragCoord/iResolution.xy;
      float y=ceil(st.x*10.0)/10.0;
      float pct = plot(st,y);
      vec3 color =pct * vec3(0,0,1) ;
      fragColor = vec4(color,0);
}

floor ceil fract 函数的区别
与上图,第一个台阶的起点不同哦。

  1. Fract :总体而言,这个函数就比较的 坑。
    解释为返回此数的小数部分。按字面理解fract(0.1) = 0.1, fract(-0.1) = -0.1。
    然而实际上并非如此,首先,fract的值域为 0~1.
    正确的定义为:fract(x) = x - floor(x)
    所以对于负数而言: fract(-0.1) = -0.1 -(-1) = 0.9
void TestCaseFract(out vec4 fragColor, in vec2 fragCoord)
{
      vec2 st = fragCoord/iResolution.xy;
      float y=fract(st.x*10.0)/10.0;
      float pct = plot(st,y);
      vec3 color =pct * vec3(0,0,1) ;
      fragColor = vec4(color,0);
}

floor ceil fract 函数的区别

相关标签: shader