一些知名产品包括 Figma、Modyfi、rnote、tldraw、excalidraw等等都会使用无限画布。
作为一个前端,我对其中涉及到的渲染技术很感兴趣。尽管 tldraw、excalidraw 等普遍使用易用性更高的 Canvas2D / SVG 技术,但 JS 和 Rust 生态中也有很多编辑器、设计工具使用更底层的渲染技术对 2D 图形进行 GPU 加速,以获得更好的性能和体验,例如:
因此我想通过一份教程一步步实现一个简单的无限画布,主要通过 WebGL1/2 和 WebGPU 实现高性能渲染。 目前写了 7 小节,希望能得到大家的支持和鼓励。