轻量封装WebGPU渲染系统示例<12>- 基础3D对象实体(源码)

当前示例源码github地址:

https://github.com/vilyLei/voxwebgpu/blob/main/src/voxgpu/sample/PrimitiveEntityTest.ts

此示例渲染系统实现的特性:

  1. 用户态与系统态隔离。

细节请见:引擎系统设计思路 - 用户态与系统态隔离-CSDN博客

  1. 高频调用与低频调用隔离。

  2. 面向用户的易用性封装。

  3. 渲染数据(内外部相关资源)和渲染机制分离。

  4. 用户操作和渲染系统调度并行机制。

  5. 数据/语义驱动。

当前示例运行效果:

此示例基于此渲染系统实现,当前示例TypeScript源码如下

javascript 复制代码
export class PrimitiveEntityTest {
	private mRscene = new RendererScene();

	initialize(): void {
		console.log("PrimitiveEntityTest::initialize() ...");

		const rc = this.mRscene;
		rc.initialize();
		this.initEvent();
		this.initScene();
	}
	private initEvent(): void {
		const rc = this.mRscene;
		rc.addEventListener(MouseEvent.MOUSE_DOWN, this.mouseDown);
		new MouseInteraction().initialize(rc, 0, false).setAutoRunning(true);
	}
	private mouseDown = (evt: MouseEvent): void => {};
	private initScene(): void {
		const rc = this.mRscene;

		let entities: PrimitiveEntity[] = [
			new SphereEntity(),
			new BoxEntity(),
			new CylinderEntity(),
			new CubeEntity({cubeSize: 130}),
			new TorusEntity({radius: 110, axisType: 1}),
			new PlaneEntity({axisType: 1})
		];

		for (let i = 0; i < entities.length; ++i) {

			let entity = entities[i]
				.setAlbedo(new Color4().randomRGB(1.5, 0.1))
				.setARM(1.1, Math.random() * 0.95 + 0.05, Math.random() * 0.9 + 0.1);

			entity.transform.setXYZ(-600 + i * 200, 0, 0);
			rc.addEntity(entity);
		}
	}

	run(): void {
		this.mRscene.run();
	}
}
相关推荐
twe775825841 分钟前
从极限测试到3D动画:揭开CCP-RIE的隐秘面纱
科技·3d·制造·动画
zl_vslam3 小时前
SLAM中的非线性优-3D图优化之IMU预积分SE3推导(二十一)
人工智能·算法·计算机视觉·3d
sin°θ_陈7 小时前
前馈式3D Gaussian Splatting 研究地图(路线一):像素对齐高斯的起点——pixelSplat 与 latentSplat 在解决什么
python·深度学习·3d·aigc·webgl·3dgs·空间智能
2401_863801461 天前
GLTF 与 GLB:哪种格式适合你的 3D 项目
3d
Yao.Li1 天前
PLY 文件格式与 PVN3D 中的使用说明
3d
在下胡三汉1 天前
3D文件格式,适用于3D商务、社交等领域,各种3D三维格式介绍
3d
CG_MAGIC1 天前
硬表面建模布线逻辑:机械与道具通用规范
3d·blender·贴图·效果图·建模教程
在下胡三汉1 天前
GLB 和 GLTF 格式文件:3D 建模服务中的目的、差异与应用领域
3d
xwz小王子1 天前
Science Advances--3D打印新型触觉传感器,让机器人拥有人类级灵巧操作能力
3d·机器人
3DVisionary1 天前
复杂工况下的力学透视:三维全场动态变形视觉检测系统解析金属3D打印
人工智能·3d·视觉检测·增材制造·轻量化结构·全场动态变形监测·复杂工况测试