名称: /Orillusion/orillusion
地址: https://github.com/Orillusion/orillusion
fork: 97 star: 1,235 开发语言: TypeScript
项目简介: Orillusion is a pure Web3D rendering engine which is fully developed based on the WebGPU standard.
Orillusion 引擎是一款完全支持 WebGPU 标准的轻量级渲染引擎,旨在实现桌面级渲染效果,并支持在浏览器中对复杂场景进行 3D 渲染。

采用业内普遍开始采用 组合优于继承 的开发设计原则,放弃了 继承式架构,采用了最新的ECS 组件式架构作为引擎的成体设计思路,消除了复杂的继承和功能交织问题,让开发者可以更灵活地进行功能组合,提高开发效率和降低复杂度。
采用了 ECS 中核心 Data Oritented (面向数据开发) 理念,通过在 GPU 中创建连续内存,同时在 CPU 和 GPU 之间通过内存映射的方式,实现按需 DO 的结构。既能实现数据的连续高效传递和减少 CPU 和 GPU 之间数据交换的等待时间和次数,也能提高缓存命中率,实现性能的提升,同时还可以保证整体引擎开发和使用的易用性。
集群光照剔除
在二维 (Tile) 和三维 (Cluster) 同时对于空间进行块状分割,最后只计算对这个块状空间有光照贡献的光源,完成无效光源的剔除过程,提高计算效率。
引擎首先接入了 ammo.js,同时搭建了基于 Compute Shader 的 GPU 端的物理仿真引擎,目前支持粒子,流体,软体,刚体,布料等。
引擎支持最基本的 Blinn-phong 模型材质渲染,同时为了更好的真实感渲染效果,还依靠 HDR Light ,实现了基于 PBR (Physically-based rendering) 的材质渲染。
后处理特效 是使得渲染内容氛围感提升的重要处理方式。引擎基于 WebGPU 的 compute shader,目前实现了 HDR 泛光,屏幕空间反射, 环境光屏蔽 等常用的后处理效果。
通过 NPM 安装
安装依赖
npm install @orillusion/core –save
引入指定模块
import { Engine3D, Camera3D } from ‘@orillusion/core’
或者导入全局模块
import * as Orillusion from ‘@orillusion/core’
通过 CDN 导入使用
!- 最新发布版本 -> script src="https://cdn.orillusion.com/orillusion.umd.js">script>
!- 或通过 unpkg 加载指定版本 -> script src="https://unpkg.com/@orillusion/core@0.6.0/dist/orillusion.umd.js">script>
引起遵循 组合优于继承 的开发设计原则,设计了自己的组件系统
使用方法示例
创建 3D 引擎实例
import { Engine3D } from '@orillusion/core'
Engine3D.init().then(()=>{
// Next
})
import { Engine3D } from '@orillusion/core'
async function demo(){
await Engine3D.init();
// Next
}
demo()
创建画布
canvas id="canvas" width="800" height="500" />
import { Engine3D } from '@orillusion/core';
let canvas = document.getElementById('canvas')
await Engine3D.init({
canvasConfig: { canvas }
})