1
头图

引擎简介:

zephyr3d是一款typescript开发的浏览器平台的3D渲染引擎。它易于使用且高度可扩展,无缝支持 WebGL 和 WebGPU。

v0.4.0更新内容:

1 性能优化

渲染管线优化

  • 优化uniform数据提交,减少RenderPass切换次数
  • 优化几何体实例渲染性能
  • 自定义批次内缓存渲染队列,减少构建渲染队列的CPU占用。

命令缓冲区复用

命令缓冲区复用(Command Buffer reuse)可以降低CPU负载,提高GPU利用率,显著提升渲染效率。此版本已初步支持在使用WebGPU设备时,每个渲染批次实现命令缓冲区复用(利用GPURenderBundle),大幅度提高应用的性能。

下面的demo演示了命令缓冲区优化效果。demo未使用几何体实例化,可以通过切换开关来比较启用和不启用命令缓冲区优化的渲染效率。
Demo地址
drawcall benchmark

2 新功能

顺序无关的透明度渲染

透明物体通常要求以从远到近的顺序渲染以获得正确的混合效果,但是有很大局限性,例如当物体交叉,使用结合体实例化渲染,使用命令缓冲区复用等情况下,无法保证透明物体的渲染顺序。这个版本我们实现了两种顺序无关的透明度渲染方法:

Weighted-Blended OIT
Weighted-Blended OIT通过对透明物体的每个像素进行加权混合来模拟最终的混合效果,效率高,支持WebGL,WebGL2和WebGPU设备,但是混合效果不精确。
Per-Pixel Linked List OIT
Per-Pixel Linked List OIT可以得到精确的混合效果,仅支持WebGPU设备。

这里是效果演示(浏览器需要支持WebGPU)
Demo地址
OIT


zephyr3d
7 声望0 粉丝

zephyr3d开源Web3D渲染引擎