跳到主要内容
← Built-In functions

Built-In functions

Sprite Animation

唯一区别是 float y = mod(floor(frame / 2.0), 4.0);他多做了个mod4。

实时渲染 · 纹理 GLSL

第 40 课:Sprite Animation

我的解:唯一区别是 float y = mod(floor(frame / 2.0), 4.0);他多做了个mod4。

我的解

uniform vec2 iResolution;
uniform float iTime;
uniform sampler2D iChannel0;

void main() {
  // Normalized pixel coordinates (from 0 to 1)
  vec2 uv = gl_FragCoord.xy / iResolution.xy;
  vec2 ratio = vec2(iResolution.x/iResolution.y, 1.0);
  vec2 cr = vec2(2.0,4.0);
  float framerate = 10.0;
  float t = mod(iTime*framerate,8.0);
  vec4 color = texture(iChannel0,(uv+vec2(int(mod(t,2.0)), int(floor(t / 2.0))))/cr);
  gl_FragColor = color;
}

复盘笔记

  • 唯一区别是 float y = mod(floor(frame / 2.0), 4.0);他多做了个mod4。
  • 总帧数是 8,防止越界
  • ==记录时间: 5月23日 2025, 04:35 凌晨==