引擎简介:
zephyr3d是一款typescript开发的浏览器平台的3D渲染引擎。它易于使用且高度可扩展,无缝支持 WebGL 和 WebGPU。
v0.4.0更新内容:
1 性能优化
渲染管线优化
- 优化uniform数据提交,减少RenderPass切换次数
- 优化几何体实例渲染性能
- 自定义批次内缓存渲染队列,减少构建渲染队列的CPU占用。
命令缓冲区复用
命令缓冲区复用(Command Buffer reuse)可以降低CPU负载,提高GPU利用率,显著提升渲染效率。此版本已初步支持在使用WebGPU设备时,每个渲染批次实现命令缓冲区复用(利用GPURenderBundle),大幅度提高应用的性能。
下面的demo演示了命令缓冲区优化效果。demo未使用几何体实例化,可以通过切换开关来比较启用和不启用命令缓冲区优化的渲染效率。
Demo地址
2 新功能
顺序无关的透明度渲染
透明物体通常要求以从远到近的顺序渲染以获得正确的混合效果,但是有很大局限性,例如当物体交叉,使用结合体实例化渲染,使用命令缓冲区复用等情况下,无法保证透明物体的渲染顺序。这个版本我们实现了两种顺序无关的透明度渲染方法:
Weighted-Blended OIT
Weighted-Blended OIT通过对透明物体的每个像素进行加权混合来模拟最终的混合效果,效率高,支持WebGL,WebGL2和WebGPU设备,但是混合效果不精确。
Per-Pixel Linked List OIT
Per-Pixel Linked List OIT可以得到精确的混合效果,仅支持WebGPU设备。
这里是效果演示(浏览器需要支持WebGPU)
Demo地址
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。