当前示例源码github地址:
https://github.com/vilyLei/voxwebgpu/blob/feature/rendering/src/voxgpu/sample/VertColorCube.ts
此示例渲染系统实现的特性:
1. 用户态与系统态隔离。
2. 高频调用与低频调用隔离。
3. 面向用户的易用性封装。
4. 渲染数据和渲染机制分离。
5. 用户操作和渲染系统调度并行机制。
当前示例运行效果:
此示例基于此渲染系统实现,当前示例TypeScript源码如下:
-
- export class VertColorCube {
-
- geomData = new GeomDataBuilder();
- renderer = new WGRenderer();
-
- initialize(): void {
-
- const renderer = this.renderer;
- const rgd = this.geomData.createCube(200);
-
- const shaderCodeSrc = {
- vert: { code: vertWGSL },
- frag: { code: fragWGSL }
- };
-
- const materials = [new WGMaterial({
- shadinguuid: "shapeMaterial",
- shaderCodeSrc
- })];
-
- const geometry = new WGGeometry()
- .addAttribute({ position: rgd.vs })
- .setIndices( rgd.ivs );
-
- renderer.addEntity( new Entity3D({geometry, materials}) );
- }
-
- run(): void {
- this.renderer.run();
- }
- }