主要观点:探索使用 WGSL 计算着色器来实现 ECS 状态管理概念,分享在这方面的探索和想法,包括将 ECS 模式引入 WGSL 着色器的简单方式、利用 GPU 进行更多功能、WGSL 的特点及与 ECS 的结合等。
关键信息:
- 介绍 ECS 是将应用状态分离并拥抱稀疏关系的简单理念,实体、组件和系统概念默认相互无关。
- 提出将 ECS 带到 GPU 的想法,利用 shader 代码字符串创建和 JavaScript 为每个系统创建硬编码常量数组来表示实体和组件关系。
- 给出简化的 WGSL ECS 大致轮廓,包括组件定义、JS 创建关系、系统定义及函数调用等。
- 展示相关代码示例和输出示例,如创建世界、实体、组件及系统等,并创建了一个在 compute.toys 上的 shader 示例。
- 提出开放问题和下一步计划,如未测量性能、调试困难、编译时间等,并表示下一步将基于示例代码实现 API 并展示优缺点。
重要细节: - 提到 Danil 的相关工作和演示,如酷的阐述和演示及shadertoy 演示。
- 说明 WebGPU 和 WGSL 的吸引力,如具有计算着色器、支持指针和编译时数组等。
- 详细阐述计算着色器的调度方式,如组件定义为 WGSL 结构体/类型,JS 创建关系,系统定义为 WGSL 函数等。
- 提及特殊感谢 Joana 和 António 的帮助。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。