首页 > 其他分享 >webGPU orillusion(一)

webGPU orillusion(一)

时间:2023-06-03 18:55:06浏览次数:54  
标签:obj orillusion light webGPU Object3D let 组件 new

关于架构的理解与认识

  Orillusion 核心借鉴了 ECS 结构,遵循 组合优于继承 的开发设计原则,实现了自己的组件系统。我们将传统复杂的逻辑划分为独立的、可重复利用的部分,每个部分可以单独封装运行逻辑。然后通过灵活组合的形式,将多个简单组件合并在一起运行从而表现复杂的功能和逻辑。

       也就是说,他会声明一个物体容器或者场景容器,而这个物体不会有任何属性。所有的属性诸如threejs等中的摄像机、几何体、控制器等,都只是该物体容器的一个属性。也就是说,摄像机不再是引擎内部的一个预设对象,他只是有摄像属性的物体。从性质上讲,他与开发者创造的其他物体并无区别,这是很不同于threejs等的一方面。这是对于各类物体更底层的抽象,道家所谓缘起性空,性空缘起,大抵如此。一个物体之所以有他的意义,是在于他有不同的属性,除过不同的属性,他只是一个空的容器。比如:

  • 相机 = Position + Rotation + Camera3D
  • 灯泡 = Position + Rotation + PointLight + Shadow
  • 盒子 = Position + Rotation + Scale + BoxGeometry + Material

       其中,所有组件都是独立且平等的,且各自只负责一个单独的功能,这样的拆分使得 Position 和 Rotation 模块可以重复利用,在使用时按需要组合即可,大大提高代码的利用效率,也能有效降低各个模块间的耦合性。

基础用法

//创建一个实体
let obj = new Object3D();
//将实体添加到场景中
scene.addChild(obj);

 添加组件

let obj = new Object3D();
let light = obj.addComponent(DirectLight)

 删除组件

let obj = new Object3D();
let light = obj.removeComponent(DirectLight)

 停用组件

let obj = new Object3D();
let light = obj.getComponent(DirectLight)
light.enable = false

 

启用组件

let obj = new Object3D();
let light = obj.getComponent(DirectLight)
light.enable = true

 

标签:obj,orillusion,light,webGPU,Object3D,let,组件,new
From: https://www.cnblogs.com/BlackCaat/p/17454392.html

相关文章

  • webgpu_红色三角形_学习_wgsl
    /Users/song/Code/webgpu_learn/webgpu-for-beginners/webgpu_learn_typescript/index.html<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"/><linkrel="icon"type="image/svg+xml&......
  • WebGPU All In One
    WebGPUAllInOnehttps://webgpufundamentals.org/https://github.com/gfxfundamentals/webgpufundamentalsWebGPU基础知识本文将尝试向你介绍WebGPU的基础知识。在阅读本文之前,你应该已经了解JavaScript。映射数组、解构赋值、传播值、async/await、es6模块等......
  • Chrome 发布首个 WebGPU 实现
    Chrome团队宣布,经过多年的开发,他们终于发布了WebGPU实现,目前已在Chrome113Beta中默认启用。WebGPU可用于在Web上进行高性能3D图形和数据并行计算。WebGPU初始版本可以在ChromeOS、macOS和Windows上使用,对其他平台的支持将于今年晚些时候推出。WebGPU是由......
  • 真实感渲染:WebGPU介绍和使用光栅化管线绘制一个三角形
    大家好~本课程为“真实感渲染”的线上课程,从0开始,介绍相关的图形学算法和数学基础,给出详细的数学推导、伪代码和实现代码,最终带领大家开发出基于物理的渲染器线上课程资料......
  • 为什么精通webgl、webgpu的人很少?
    为什么精通webgl、webgpu的人很少? 如题,更不用提webassembly了,是因为需求不够还是难度太大?显示全部 ​关注者153被浏览260,594关注问......
  • WebGPU光追引擎基础课:课程介绍
    大家好~我开设了“WebGPU光追引擎基础课”的线上课程,从0开始,在课上带领大家现场写代码,使用WebGPU开发基础的光线追踪引擎课程重点在于基于GPU并行计算,实现BVH构建和遍历......
  • WebGPU光追引擎基础课系列目录
    大家好~我开设了“WebGPU光追引擎基础课”的线上课程,从0开始,在课上带领大家现场写代码,使用WebGPU开发基础的光线追踪引擎课程重点在于基于GPU并行计算,实现BVH构建和遍历......
  • 在 WebGPU 中使用时间戳查询
    目录概述按步教学0.让浏览器具备时间戳查询功能1.创建Queryset和缓冲对象2.写入时间戳3.解析时间戳到缓冲对象中4.读取查询结果5.(可选)添加标签致谢原文https:......
  • 如何创建前端 WebGPU 项目?
    目录1.丐版HelloWebGPU①为什么是index.html②你这个代码为什么浏览器没有显示东西?③为什么你不用HTTP协议打开index.html2.我需要类型提示2.1.使用VSCode的......
  • WebGPU的计算着色器实现冒泡排序
    大家好~本文使用WebGPU的计算着色器,实现了奇偶排序。奇偶排序是冒泡排序的并行版本,在1996年由JKornerup提出。它解除了每轮冒泡间的串行依赖以及每轮冒泡内部的串行依赖,......