Shader Learn

03 时间、交互与重复

uniform:把指针位置传进来

移动或轻触画布,把指针位置传给 GPU。

uPointer0.50, 0.50
0.030.4

每个像素运行一次拖动数字,或直接改代码

JS 这一侧gl.uniform2f(uResolution, …, …) gl.uniform2f(uPointer, 0.50, 0.50) canvas.addEventListener('pointermove', (e) => { pointer = [e.offsetX / width, 1 - e.offsetY / height] }) gl.uniform2f(uPointerLocation, ...pointer)

uPointer 只是一个 vec2;事件在 JS 里处理,再把坐标交给 GPU。

试一试

  • 在画布上移动指针
  • 把 exp 改成 1.0 - smoothstep(...),做一个硬边光点