Shader Learn

A 附录

游乐场:粘贴任何 shader

把 agent 写的、网上找到的、自己写的片元 shader 粘贴进来。支持 WebGL 1 的 void main,也支持 Shadertoy 的 mainImage(不含 iChannel 纹理);iTime、iResolution、iMouse 和 u_time、u_resolution、u_mouse 会自动接上。

GPU 实际源码拖动数字,或直接改代码

JS 这一侧gl.uniform2f(uResolution, …, …) gl.uniform1f(uTime, 0.00)

读一段陌生代码:先按五层(坐标、形状、边缘、着色、时间)给它分层,再打开像素调试,把每个变量显示在画面上看一看。改一个数之前先预测画面会怎样变,猜错的地方,就是还没懂的地方。

试一试

  • 全选代码,粘贴一段 Shadertoy 上的 shader(mainImage 写法)
  • 让 agent 写一个 shader,并要求它按“坐标 → 形状 → 边缘 → 着色 → 时间”逐行注释,粘贴进来对照着读
  • 打开像素调试,在“画面显示”里选 d:看形状层算出的距离图
  • 改一个数之前,先说出画面会怎样变,再改它验证