我们根据最新的 API 和 WGSL 更改更新了 WebGPU 后端。更多 Tellusim Core SDK WebGPU示例现已在 Web 浏览器上运行。最先进的测试是基数排序和傅里叶变换,它们是许多算法的主要模块。需要最新的Chrome Canary版本。不幸的是,Firefox Nightly 无法再运行任何 WebGPU 示例。
在Clay Shader Compiler的帮助下,我们可以避免在WGSL中编写着色器。顶点、片段和计算着色器可以轻松地从GLSL生成。您可以使用它进行离线着色器转换。如果需要,我们还可以创建一个基于 wasm 的库,该库可以根据请求在运行时执行着色器转换。
WGSL 比 GLSL 受到更多限制,但即使有这些限制,我们也可以在 WebGPU 上运行 Shadertoy 演示(您可以使用“1”和“2”键在演示之间切换)。不存在多通道演示,因为它们需要 32 位浮点过滤,而 WebGPU 不提供该功能。
我们希望在未来的 WebGPU 更新中看到很多东西,因为现在它的灵活性不如老式 OpenGLES 3.2:
- 非原子缓冲区的原子操作它为不同的算法提供了极大的灵活性,因为单个 SSBO 可用于不同的资源。
- 存储镜像的原子操作计算光栅化算法的一个关键功能。它可以用原子缓冲区进行模拟,但 WebGPU 上的纹理和缓冲区之间没有直接的内存映射。此外,读写存储映像操作不可用。
- 多次抽签间接所有台式机都支持它,它可以显着提高效率和性能。当前的 WebGPU 规范仅支持单个间接绘制命令。
- 用户定义的剪辑距离只有少数移动 GPU 不支持它。这对于使用单个绘制调用渲染多个阴影贴图至关重要。
- 32 位浮点纹理的线性采样这是必须具备的功能。WebGL 可以做到。
所有这些改进将帮助我们使用 WebGPU 后端运行 GPU 驱动的场景图和渲染。
我们很高兴看到GravityMark将来在 WebGPU 上运行!
- Tellusim Core SDK WebGPU 示例
- 粘土着色器编译器
- 蜗牛 by iq ( Shadertoy )
- Colorello by avin ( Shadertoy )
- 无限 Hermite 矩形 by demofox ( Shadertoy )
- Raymarching – iq 的基元 ( Shadertoy )
- iq 的云 ( Shadertoy )
- iq 的柱子和灯光 ( Shadertoy )
- XT95 的 SFlame ( Shadertoy )
- SebH 的体积积分 ( Shadertoy )
- 超级马里奥兄弟 by HLorenzi ( Shadertoy )
- psyWeb,作者:lucastakejame ( Shadertoy )
- Worley 噪声 2 由 FabriceNeyret2 ( Shadertoy )
- rosace 3c 由 FabriceNeyret2 ( Shadertoy )
- 智商提升 ( Shadertoy )