1

引擎简介:

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

Zephyr3d 主要由两组 API 组成:设备 API 和场景 API。

  • 设备 API
    Device API 提供了一组低级抽象封装接口,允许用户以完全相同的方式调用 WebGL、WebGL2 和 WebGPU 图形接口。这些接口包含底层 API 的大部分功能,便于轻松支持跨 API 图形呈现。
  • 场景 API
    场景 API 是构建在 DeviceAPI 之上的高级渲染框架,既可以作为设备 API 的测试环境,也可以作为图形开发的直接工具。目前,Scene API 已经实现了包括PBR渲染、集群照明、阴影映射、地形渲染、后期处理等功能。

代码仓库:

源代码:https://github.com/gavinyork/zephyr3d
开发文档:https://gavinyork.github.io/zephyr3d

Demo:

  • GLTF模型查看器

引擎目前支持导入GLTF/GLB模型(暂不支持morph target动画)

demo地址:GLTF模型查看器

  • 集群照明

引擎对于WebGL/WebGL2/WebGPU渲染后端均采用Forward+集群照明渲染架构,目前支持视野范围内最多255盏光源,对于WebGL设备,每像素最多接受8个光源照射,对于WebGL2和WebGPU设备,每像素最多接受16个光源照射。

demo地址:集群光照

  • 自定义材质

引擎材质系统内置了PBR材质,Lambert材质和Blinn-phong材质,也支持自定义材质。材质系统使用了Mixin设计模式方便自定义材质可重用系统内置材质组件以及用户材质组件。Demo演示了如何自定义毛皮材质,位移映射材质,过程纹理和卡通材质。

Demo地址:自定义材质

  • 地形渲染

引擎目前实现了一个基于chunklod算法的地形渲染器,下个版本将会增加基于clipmap的无限大地形渲染器。

Demo地址:地形渲染

  • 几何体实例化

引擎内置了几何体实例化的功能,凡使用相同材质和相同几何数据的网格将自动进行合批进行实例化渲染。几何体实例必须使用相同的材质,但可以设置不同的材质属性。demo中每个实例都赋予了不同的材质颜色。

Demo地址:几何体实例化

  • Physics

这个示例演示了结合ammo.js和zephyr3d几何体实例化渲染实现的物理碰撞效果。

Demo地址: Physics


zephyr3d
7 声望0 粉丝

zephyr3d开源Web3D渲染引擎