> starmerx/engineering
[github]
← cd ../experiments
[实验] · · unstable

WebGL Shader Playground

一个极简 GLSL fragment shader 沙盒。左边写代码,右边实时渲染。

oglglslvanilla-js

写 shader 应该是秒级反馈的事。

这是什么

打开页面,左边写 GLSL,右边实时看到画面。没有 submit 按钮,输完就渲染

为什么写这个

写 shader 最怕的反馈链路是:写 → 存 → 跑 → 看 → 重来。我们把这条链路压到「输完一个字符就更新」。

用法

左栏编辑 fragment shader,右栏是输出。支持:

  • uniform float uTime —— 自动注入当前时间
  • uniform vec2 uResolution —— 画布尺寸
  • uniform vec2 uMouse —— 鼠标位置

预设按钮:noise / plasma / voronoi / tunnel,点一下切换。

技术栈

  • ogl(≈ 20KB WebGL 库)
  • textarea + 自家语法高亮(用 prismjs)
  • 编译失败时错误信息显示在 shader 下方

已知问题

  • 部分老 GPU 上 fbm 太慢
  • 不支持 vertex shader(暂时只做 fragment)