Orillusion次时代 WebGPU 引擎

news2025/1/11 17:50:39

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 engine
			await Engine3D.init()
			// create new scene as root node
			let scene3D = new Scene3D()
			// add an Atmospheric sky enviroment
			let sky = scene3D.addComponent(AtmosphericComponent)
			sky.sunY = 0.6
			// create camera
			let cameraObj = new Object3D()
			let camera = cameraObj.addComponent(Camera3D)
			// adjust camera view
			camera.perspective(60, Engine3D.aspect, 1, 5000.0)
			// set camera controller
			let controller = cameraObj.addComponent(HoverCameraController)
			controller.setCamera(0, 0, 15)
			// add camera node
			scene3D.addChild(cameraObj)
			// create light
			let light = new Object3D()
			// add direct light component
			let component = light.addComponent(DirectLight)
			// adjust lighting
			light.rotationX = 45
			light.rotationY = 30
			component.intensity = 1
			// add light object
			scene3D.addChild(light)
			// create new object
			const obj = new Object3D()
			// add MeshRenderer
			let mr = obj.addComponent(MeshRenderer)
			// set geometry
			mr.geometry = new BoxGeometry(5, 5, 5)
			// set material
			mr.material = new LitMaterial()
			// set rotation
			obj.rotationY = 45
			// add object
			scene3D.addChild(obj)
			// create a view with target scene and camera
			let view = new View3D()
			view.scene = scene3D
			view.camera = camera
			// start render
			Engine3D.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/

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/616158.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python接口自动化(三)--如何设计接口测试用例(详解)

在开始接口测试之前&#xff0c;我们来想一下&#xff0c;如何进行接口测试的准备工作。或者说&#xff0c;接口测试的流程是什么&#xff1f;有些人就很好奇&#xff0c;接口测试要流程干嘛&#xff1f;不就是拿着接口文档直接利用接口 测试工具测试嘛。其实&#xff0c;如果…

【正点原子STM32连载】 第二十八章 低功耗实验摘自【正点原子】STM32F103 战舰开发指南V1.2

1&#xff09;实验平台&#xff1a;正点原子stm32f103战舰开发板V4 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id609294757420 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html 第二十…

计算机中数据的表示:定点数、浮点数

文章目录 1 概述2 定点数2.1 表示方法2.2 取值范围2.3 运算方法 3 浮点数3.1 表示方法3.2 运算方法 4 扩展4.1 等比数列前 n 项和公式 1 概述 #mermaid-svg-EXDrkn8G91FsDdps {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#merm…

给 a 标签设置 display:inline-block 之后 a 整体下沉

今天给一个a设置宽高&#xff0c;前提是添加了display:inline-block&#xff1b;然后发下a没有与父元素div顶部对齐&#xff0c;反而下沉了。试了好多办法都没成功&#xff0c;然后在网上找的教程。 原因 1、问题就是出在了display:inline-block;语句上&#xff0c;行内块元…

使用Python进行接口性能测试:从入门到高级

前言&#xff1a; 在今天的网络世界中&#xff0c;接口性能测试越来越重要。良好的接口性能可以确保我们的应用程序可以在各种网络条件下&#xff0c;保持流畅、稳定和高效。Python&#xff0c;作为一种广泛使用的编程语言&#xff0c;为进行接口性能测试提供了强大而灵活的工…

Redis:数据类型

一、Redis字符串(String) 1、String类型 String字符串&#xff1a;string类型是redis最基本、最简单的数据类型&#xff0c;一个key对应一个value。 String类型的二进制是安全的&#xff0c;可以包含任何数据&#xff0c;但是每一个value最大时512M 2、String命令 设置和获…

《人月神话》译文修订明细(6)-读者可以对照修改

《人月神话》译文修订明细&#xff08;1&#xff09;-读者可以对照修改 《人月神话》译文修订明细&#xff08;2&#xff09;-读者可以对照修改 《人月神话》译文修订明细&#xff08;3&#xff09;-读者可以对照修改 《人月神话》译文修订明细&#xff08;4&#xff09;-读…

前端面试题整理14

目录 1.什么是同步&#xff1f;什么是异步&#xff1f; 2.localStorage、sessionStorage和cookie的区别&#xff1f; 3.Vue中key的作用是什么&#xff1f; 4.支付流程是什么&#xff1f; 5.Vuex的模块化是如何做的&#xff1f; 6.Vite和webpack的不同&#xff1f;Vite的优…

BS LIS系统仪器数据采集方法

BS LIS系统仪器数据采集方法 BS LIS系统对检验仪器的数据采集主要通过串行口通讯、USB端口通讯、TCP/IP通讯、定时监控数据库和手工录入等几种方法。串行口通讯最为普遍&#xff0c;采用RS-232C标准&#xff0c;一般的仪器都支持此标准。定时监控数据库对仪器管理机上已有的检…

【Vue】Element Plus和Element UI中插槽使用

文章目录 前言一、两者的区别二、组件库三、具体讲解总结 前言 今天和大家讲一下Element Plus和Element UI这两个组件库中表格的插槽使用方法&#xff0c;一般情况下vue2使用Element UI这个组件库&#xff0c;表格组件的插槽的话一般都是使用v-slot&#xff0c;而vue3使用Elem…

如何进行有效的移动应用测试?10个步骤带你一战成神

移动应用的市场日益壮大&#xff0c;而随着这个市场的发展&#xff0c;如何有效地测试移动应用也成为了一个重要的问题。本文将为你提供一些关于如何进行有效的移动应用测试的建议&#xff0c;并提供一些实际测试例子。 1. 理解你的用户和使用场景 在进行移动应用测试之前&…

rror updating database. Cause: java.sql.SQLSyntaxErrorException解决方案

错误描述&#xff1a; ### Error updating database. Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near CONDITION 1 这里是因为字段名…

Linux多线程认识

目录 &#x1f427;一、什么是线程 1.1虚拟地址如何转换成物理地址 1.2多线程 1.3Linux进程vs线程 1.4从Linux内核和CPU的角度看线程 &#x1f427;二、Linux线程控制 2.1POSIX线程库 2.2线程异常 2.3线程终止 ①exit不可以用来终止线程 ②pthread_exit() ③pthread…

Revit干货|自动捕捉遇到困难?这份秘诀请收好!

在BIM行业里&#xff0c;Revit往往影响着我们的建模效率&#xff0c;尽管软件提供了许多功能&#xff0c;但在建模过程中还是会因繁琐的操作而浪费很多时间。 因此&#xff0c;在使用Revit建模时&#xff0c;我们需要掌握一些小技巧来提升效率&#xff0c;如快捷键的使用和工具…

早餐配送APP小程序开发 轻轻一点搞定营养早餐

早餐是一日三餐中最重要的一餐&#xff0c;需要营养添加。但是现在多数的年轻人因为快节奏的生活工作二忽视了早餐的重要性&#xff0c;没有时间做就对付几口很多人甚至不吃早餐。早餐预定配送APP小程序开发解决了上班族的早餐问题&#xff0c;不用排队到早餐店去挤着买豆浆油条…

Langchain学习笔记

Langchain学习笔记 1.环境2. 1.环境 1.创建虚拟环境,名叫langchain conda create -n langchain python conda activate langcahin pip install langchain pip install openai -i https://pypi.tuna.tsinghua.edu.cn/simple2.在jupyter中使用这个虚拟环境。 conda activate l…

DG4pros 1:500地籍精度免像控实验

前言 DG4pros是睿铂目前综合性能最强大的高端倾斜摄影相机&#xff0c;它完成了许多以前在业内人士认为难以做到或者不可能完成的项目。本期&#xff0c;我们实验的内容是1:500地籍精度的免相控作业。 DG4pros倾斜摄影相机 一.实验目的 本次实验共进行两组测试&#xff0c;分…

vue项目复制----复制一个项目为另一个项目仍然访问原来老项目代码

表现就如下边这张图&#xff0c;新项目名字叫pccs&#xff0c;旧项目名字叫vue-element-admin&#xff0c;能启动&#xff0c;运行成功&#xff0c;一切正常&#xff0c;但是你会发现仍然是老项目的。 解决办法&#xff1a;

Javascript的闭包,匿名函数,自动调用

这里写目录标题 验证文本框HTMLJavascript分析var引起的赋值错误最优的解决方案forEach(function(item){})最简单的方式&#xff0c;const/let 申明一个局部变量直接使用函数通过声明函数变量的方式定义函数申明匿名函数和自动调用函数的区别 在案例的基础上分析。 验证文本框 …

未来工业的新趋势:探索智慧工厂的创新之路

随着科技的不断进步和工业的快速发展&#xff0c;智慧工厂正在逐渐改变传统的生产模式&#xff0c;成为现代工业的新趋势。智慧工厂以数字化、自动化和智能化为核心&#xff0c;通过信息技术和物联网的应用&#xff0c;实现生产线的高效运行和优化管理&#xff0c;为企业带来诸…