03 时间、交互与重复
uniform:把指针位置传进来
移动或轻触画布,把指针位置传给 GPU。
uPointer0.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(...),做一个硬边光点