开源
Orillusion:一套基于WebGPU图形API的Web3D渲染引擎
来源:元经纪     阅读:1343
网站管理员
发布于 2023-06-16 09:57
查看主页

概述

Orillusion是一套基于WebGPU图形API的Web3D渲染引擎,能够媲美PC端图形API的渲染能力。Orillusion引擎中使用了非常多的GPU开放能力,比如灵活操作的GPU缓存(GPU Buffer),强大的着色器(Webgpu Shader/WGSL),以及备受瞩目的Compute Shader计算内核,充分发挥GPU在非光栅化阶段的并行处理能力。

ECS组件系统

Orillusion使用ECS(Entity-Components-System/实体-组件-系统)组件式架构做为引擎的整体设计思路。消除了继承模式中的继承链复杂、功能交织的问题,通过解耦,封装和模块化设计,开发者可以更灵活的进行功能组合及扩展。实体(entity)一旦挂接了组件(component),不需要复杂的继承关系就拥有了组件的全部能力,再配合上系统内设定的生命周期,使得开发者可以实现更灵活调用。

安装

NPM

[hidecontent type="logged" desc="隐藏内容:登录后可查看"]

我们推荐使用前端构建工具来开发 Web3D 应用程序,例如 ViteWebpack

  • 安装依赖项:
npm install @orillusion/core --save
  • 按需导入:
import { Engine3D, Camera3D } from '@orillusion/core'
  • 全局导入:
import * as Orillusion from '@orillusion/core'

内容分发网络

为了更方便的使用引擎,我们支持使用原生<script>标签导入Orillusion. 使用官方链接导入的三种不同方式CDN

  • 全局构建:Orillusion您可以通过脚本标签直接从 CDN使用:
<script src="https://unpkg.com/@orillusion/core/dist/orillusion.umd.js"></script>
<script>  
    const { Engine3D, Camera3D } = Orillusion  
</script>

上面的链接加载了 的全局构建Orillusion,其中所有顶级 API 都作为全局Orillusion对象的属性公开。

  • ESModule Build:我们推荐使用ESModule方式进行开发。由于大多数浏览器都支持ES模块,我们只需要导入ES构建版本orillusion.es.js
<script type="module">  
    import { Engine3D, Camera3D } from "https://unpkg.com/@orillusion/core/dist/orillusion.es.js" 
</script>
  • Import Maps:为了管理依赖名称,我们推荐使用Import Maps
<!-- Define the name or address of ES Module -->  
<script  type="importmap">  
{  
    "imports": { "@orillusion/core": "https://unpkg.com/@orillusion/core/dist/orillusion.es.js" }  
}  
</script>  
<!-- Customerized names could be imported -->  
<script  type="module">  
    import { Engine3D, Camera3D } from "@orillusion/core"
</script>

用法

创建 Engine3D 实例

一开始,我们需要使用,然后创建Engine3D.init()实例以供进一步使用Engine3D

import { Engine3D } from '@orillusion/core' 
Engine3D.init().then(()=>{  
    // Next
})

由于Engine3D.init()是异步的,建议async/await在代码中使用

import { Engine3D } from '@orillusion/core'  
async function demo(){  
    await Engine3D.init();  
    // Next 
}  
demo()

创建画布

默认情况下,Engine3D.init()会创建一个canvas与窗口大小相同的窗口。此外,我们可以手动创建一个使用canvas标签<canvas>id

<canvas id="canvas" width="800" height="500" />

接下来,我们需要<canvas>通过传递给获取via id,然后初始化<canvas>引擎canvasConfig

import { Engine3D } from '@orillusion/core';  
let canvas = document.getElementById('canvas')  

await Engine3D.init({  
    canvasConfig: { canvas }  
})

请阅读文档以了解更多信息。

平台

窗户/苹果电脑/Linux:

  • 铬 113+
  • 边缘:113+

Android(在enable-unsafe-webgpu旗帜后面):

  • Chrome 金丝雀 113+
  • 边缘金丝雀 113+

有用的链接

[/hidecontent]

 
免责声明:本文为用户发表,不代表网站立场,仅供参考,不构成引导等用途。 开源
光照新路,点燃弯道超车强引擎
史诗级提升!iPhone 16全系国行入网:最高支持45W快充
运营商加快布局人工智能(新视点)
十三连胜!成都AG超玩会晋级2025KPL春季赛决赛
加速数字金融转化,互联数智赋能高质量发展

首页

分类

定制方案

消息

我的