Orillusion次时代 WebGPU 引擎

2024-02-23 18:20

本文主要是介绍Orillusion次时代 WebGPU 引擎,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Orillusion 次时代 WebGPU 引擎

官网: https://www.orillusion.com/
教程: https://www.orillusion.com/guide/
Orillusion 引擎是一款完全支持 WebGPU 标准的轻量级渲染引擎。基于最新的 Web 图形API标准,我们做了大量的探索和尝试,实现了很多曾经在 Web 中很难实现或者根本实现不了的技术和功能。我们自己从以下几个方面对引擎的架构和功能特点做出了总结。

使用之前需要安装最新的Chrome/Edge浏览器
还需要安装python3

第一个demo

1. 编写index.html

在本地文件夹Orillusion下新建index.html,把如下代码粘进去

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>1My first Orillusion app</title><style>body {margin: 0;}</style>
</head><body><!-- 可以定义ES模块的名称和对应地址 --><script type="importmap">{"imports": {"@orillusion/core": "https://unpkg.com/@orillusion/core/dist/orillusion.es.js","@orillusion/stats": "https://unpkg.com/@orillusion/stats/dist/stats.es.js"}}</script><!-- 可以使用自定义名称引入 --><script type="module">import { Engine3D, Scene3D, Object3D, Camera3D, LitMaterial, BoxGeometry, MeshRenderer, DirectLight, HoverCameraController, View3D, AtmosphericComponent } from '@orillusion/core'import { Stats } from "@orillusion/stats"async function demo() {// initializa engineawait Engine3D.init()// create new scene as root nodelet scene3D = new Scene3D()// add an Atmospheric sky enviromentlet sky = scene3D.addComponent(AtmosphericComponent)sky.sunY = 0.6// create cameralet cameraObj = new Object3D()let camera = cameraObj.addComponent(Camera3D)// adjust camera viewcamera.perspective(60, Engine3D.aspect, 1, 5000.0)// set camera controllerlet controller = cameraObj.addComponent(HoverCameraController)controller.setCamera(0, 0, 15)// add camera nodescene3D.addChild(cameraObj)// create lightlet light = new Object3D()// add direct light componentlet component = light.addComponent(DirectLight)// adjust lightinglight.rotationX = 45light.rotationY = 30component.intensity = 1// add light objectscene3D.addChild(light)// create new objectconst obj = new Object3D()// add MeshRendererlet mr = obj.addComponent(MeshRenderer)// set geometrymr.geometry = new BoxGeometry(5, 5, 5)// set materialmr.material = new LitMaterial()// set rotationobj.rotationY = 45// add objectscene3D.addChild(obj)// create a view with target scene and cameralet view = new View3D()view.scene = scene3Dview.camera = camera// start renderEngine3D.startRenderView(view)}demo()</script>
</body></html>

2. python运行简易服务器

命令行运行如下命令 -d 后面跟本地文件夹路径

python -m http.server 9000 -d D:\chenchao\web3dprojects\Orillusion

3. 用Edge浏览器打开http://127.0.1.1:9000/

在这里插入图片描述

这篇关于Orillusion次时代 WebGPU 引擎的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/739511

相关文章

MySQL之InnoDB存储引擎中的索引用法及说明

《MySQL之InnoDB存储引擎中的索引用法及说明》:本文主要介绍MySQL之InnoDB存储引擎中的索引用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录1、背景2、准备3、正篇【1】存储用户记录的数据页【2】存储目录项记录的数据页【3】聚簇索引【4】二

SpringBoot集成LiteFlow工作流引擎的完整指南

《SpringBoot集成LiteFlow工作流引擎的完整指南》LiteFlow作为一款国产轻量级规则引擎/流程引擎,以其零学习成本、高可扩展性和极致性能成为微服务架构下的理想选择,本文将详细讲解Sp... 目录一、LiteFlow核心优势二、SpringBoot集成实战三、高级特性应用1. 异步并行执行2

CSS Anchor Positioning重新定义锚点定位的时代来临(最新推荐)

《CSSAnchorPositioning重新定义锚点定位的时代来临(最新推荐)》CSSAnchorPositioning是一项仍在草案中的新特性,由Chrome125开始提供原生支持需... 目录 css Anchor Positioning:重新定义「锚定定位」的时代来了! 什么是 Anchor Pos

LiteFlow轻量级工作流引擎使用示例详解

《LiteFlow轻量级工作流引擎使用示例详解》:本文主要介绍LiteFlow是一个灵活、简洁且轻量的工作流引擎,适合用于中小型项目和微服务架构中的流程编排,本文给大家介绍LiteFlow轻量级工... 目录1. LiteFlow 主要特点2. 工作流定义方式3. LiteFlow 流程示例4. LiteF

SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程

《SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程》LiteFlow是一款专注于逻辑驱动流程编排的轻量级框架,它以组件化方式快速构建和执行业务流程,有效解耦复杂业务逻辑,下面给大... 目录一、基础概念1.1 组件(Component)1.2 规则(Rule)1.3 上下文(Conte

Python基于微信OCR引擎实现高效图片文字识别

《Python基于微信OCR引擎实现高效图片文字识别》这篇文章主要为大家详细介绍了一款基于微信OCR引擎的图片文字识别桌面应用开发全过程,可以实现从图片拖拽识别到文字提取,感兴趣的小伙伴可以跟随小编一... 目录一、项目概述1.1 开发背景1.2 技术选型1.3 核心优势二、功能详解2.1 核心功能模块2.

MySQL 存储引擎 MyISAM详解(最新推荐)

《MySQL存储引擎MyISAM详解(最新推荐)》使用MyISAM存储引擎的表占用空间很小,但是由于使用表级锁定,所以限制了读/写操作的性能,通常用于中小型的Web应用和数据仓库配置中的只读或主要... 目录mysql 5.5 之前默认的存储引擎️‍一、MyISAM 存储引擎的特性️‍二、MyISAM 的主

WiFi6时代来临! 华三H3C NX54路由器还值得购买吗?

《WiFi6时代来临!华三H3CNX54路由器还值得购买吗?》WiFi6时代已经来临,众多路由器厂商也纷纷推出了兼容WiFi6协议的路由器,今天我们将深入体验H3CNX54路由器,这款由知名企业... 随着科技的发展,WiFi6逐渐走进了我们的日常生活之中,相比WiFi5来说,WiFi6拥有更高的带宽、更高

MySQL常见的存储引擎和区别说明

《MySQL常见的存储引擎和区别说明》MySQL支持多种存储引擎,如InnoDB、MyISAM、MEMORY、Archive、CSV和Blackhole,每种引擎有其特点和适用场景,选择存储引擎时需根... 目录mysql常见的存储引擎和区别说明1. InnoDB2. MyISAM3. MEMORY4. A

MySQL InnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据

《MySQLInnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据》mysql的ibdata文件被误删、被恶意修改,没有从库和备份数据的情况下的数据恢复,不能保证数据库所有表数据... 参考:mysql Innodb表空间卸载、迁移、装载的使用方法注意!此方法只适用于innodb_fi