Shader Learn

13 综合练习

Raymarching:只用片元 shader 画 3D

没有三角形。每个像素发出一条射线,沿 SDF 一步步前进,碰到表面就上色。

4128
0.0010.6
-0.61.2
-3.143.14

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

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

每个像素发出一条射线,用 SDF 安全地往前走,直到碰到表面——不用三角形也能画 3D。

试一试

  • 把步数降到 8,边缘出现破洞
  • 调大平滑融合,球和方块熔在一起
  • 在 scene() 里再加一个球