广东省建设注册执业资格中心网站jae安装wordpress
news/
2025/10/5 22:45:54/
文章来源:
广东省建设注册执业资格中心网站,jae安装wordpress,泰州网站建设要多少钱,浙里建app官方网站当前示例源码github地址:
https://github.com/vilyLei/voxwebgpu/blob/version-1.01/src/voxgpu/sample/MultiMaterialPass.ts
此示例渲染系统实现的特性:
1. 用户态与系统态隔离。
2. 高频调用与低频调用隔离。
3. 面向用户的易用性封装。
4. 渲染数据和渲染机制分离。 …当前示例源码github地址:
https://github.com/vilyLei/voxwebgpu/blob/version-1.01/src/voxgpu/sample/MultiMaterialPass.ts
此示例渲染系统实现的特性:
1. 用户态与系统态隔离。
2. 高频调用与低频调用隔离。
3. 面向用户的易用性封装。
4. 渲染数据和渲染机制分离。
5. 用户操作和渲染系统调度并行机制。
当前示例运行效果: 此示例基于此渲染系统实现当前示例TypeScript源码如下
export class MultiMaterialPass {private mEntity: Entity3D;geomData new GeomDataBuilder();renderer new WGRenderer();initialize(): void {console.log(MultiMaterialPass::initialize() ...);const shdSrc {vertShaderSrc: { code: vertWGSL, uuid: vtxShdCode },fragShaderSrc: { code: fragWGSL, uuid: fragShdCode }};let material0 this.createMaterial(shdSrc, [new WGImage2DTextureData(static/assets/blueTransparent.png)], [transparent], front);let material1 this.createMaterial(shdSrc, [new WGImage2DTextureData(static/assets/blueTransparent.png)], [transparent], back);this.mEntity this.createEntity([material0, material1]);}private createMaterial(shdSrc: WGRShderSrcType, texDatas?: WGImage2DTextureData[], blendModes: string[] [], faceCullMode back): WGMaterial {let pipelineDefParam {depthWriteEnabled: true,faceCullMode: faceCullMode,blendModes: [] as string[]};pipelineDefParam.blendModes blendModes;const texTotal texDatas ? texDatas.length : 0;const material new WGMaterial({shadinguuid: base-material-tex texTotal,shaderCodeSrc: shdSrc,pipelineDefParam});if (texTotal 0) {const texWrappers: WGTextureWrapper[] new Array(texTotal);for (let i 0; i texTotal; i) {texWrappers[i] new WGTextureWrapper({ texture: { data: texDatas[i], shdVarName: texture i } });}material.textures texWrappers;}return material;}private createEntity(materials: WGMaterial[], pv?: Vector3): Entity3D {const renderer this.renderer;const rgd this.geomData.createSphere(150, 30, 30);const geometry new WGGeometry().addAttribute({ shdVarName: position, data: rgd.vs, strides: [3] }).addAttribute({ shdVarName: uv, data: rgd.uvs, strides: [2] }).setIndexBuffer({ name: geomIndex, data: rgd.ivs });const entity new Entity3D();entity.materials materials;entity.geometry geometry;entity.transform.setPosition(pv ? pv : new Vector3());renderer.addEntity(entity);return entity;}private mRotY 0.0;run(): void {this.mRotY 0.5;this.mEntity.transform.setRotationXYZ(0, this.mRotY, this.mRotY 0.5);this.mEntity.update();this.renderer.run();}
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/928808.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!