当前位置: 首页 > news >正文

儋州市网站建设_网站建设公司_ASP.NET_seo优化

万网封停慧聪网,宁波seo推荐运营培训,wordpress会员多语言,微网站和h5有什么区别当前示例源码github地址: https://github.com/vilyLei/voxwebgpu/blob/feature/rendering/src/voxgpu/sample/GameOfLifePretty.ts 系统特性: 1. 用户态与系统态隔离。 2. 高频调用与低频调用隔离。 3. 面向用户的易用性封装。 4. 渲染数据(内外部相关资源)和渲染机制分离…当前示例源码github地址: https://github.com/vilyLei/voxwebgpu/blob/feature/rendering/src/voxgpu/sample/GameOfLifePretty.ts 系统特性: 1. 用户态与系统态隔离。 2. 高频调用与低频调用隔离。 3. 面向用户的易用性封装。 4. 渲染数据(内外部相关资源)和渲染机制分离。 5. 用户操作和渲染系统调度并行机制。 6. 数据/语义驱动。 7. 异步并行的场景/模型载入。 8. computing与rendering用法机制一致性。 1). 构造过程一致性。 2). 启用过程一致性。 3). 自动兼容到material多pass以及material graph机制中。 当前示例运行效果: WGSL顶点与片段shader: struct VertexInput {location(0) pos: vec3f,location(1) uv : vec2f,builtin(instance_index) instance: u32 };struct VertexOutput {builtin(position) pos: vec4f,location(0) cell: vec2f,location(1) uv: vec2f,location(2) instance: f32, }; group(0) binding(0) varuniform grid: vec2f; group(0) binding(1) varstorage cellState: arrayu32; group(0) binding(2) varstorage lifeState: arrayf32; vertex fn vertMain(input: VertexInput) - VertexOutput {let i f32(input.instance);let cell vec2f(i % grid.x, floor(i / grid.x));let cellOffset cell / grid * 2.0;var state f32(cellState[input.instance]);let gridPos (input.pos.xy * state 1.0) / grid - 1.0 cellOffset;var output: VertexOutput;output.pos vec4f(gridPos, 0.0, 1.0);output.cell cell;output.uv input.uv;output.instance i;return output; }fragment fn fragMain(input: VertexOutput) - location(0) vec4f {let c input.cell / grid;var dis length(input.uv - vec2f32(0.5, 0.5));dis min(dis/0.15, 1.0);let i u32(input.instance);var f clamp((lifeState[i])/100.0, 0.0005, 1.0);dis (1.0 - pow(dis, 100.0)) * (1.0 - f) f;var c3 vec3f(c, (1.0 - c.x) * (1.0 - f) f) * dis;return vec4f(c3, 1.0); } 此示例基于此渲染系统实现当前示例TypeScript源码如下 export class GameOfLifePretty {private mRscene new RendererScene();initialize(): void {console.log(GameOfLifePretty::initialize() ...);const rc this.mRscene;rc.initialize();this.initScene();}private createUniformValues(): { ufvs0: WGRUniformValue[]; ufvs1: WGRUniformValue[] }[] {const gridsSizesArray new Float32Array([gridSize, gridSize]);const cellStateArray0 new Uint32Array(gridSize * gridSize);for (let i 0; i cellStateArray0.length; i) {cellStateArray0[i] Math.random() 0.6 ? 1 : 0;}const cellStateArray1 new Uint32Array(gridSize * gridSize);for (let i 0; i cellStateArray1.length; i) {cellStateArray1[i] i % 2;}const lifeStateArray3 new Float32Array(gridSize * gridSize);for (let i 0; i lifeStateArray3.length; i) {lifeStateArray3[i] i % 2;}let shared true;let sharedData0 { data: cellStateArray0 };let sharedData1 { data: cellStateArray1 };let sharedData3 { data: lifeStateArray3 };const v0 new WGRUniformValue({ data: gridsSizesArray, stride: 2, shared });v0.toVisibleAll();// build rendering uniformsconst va1 new WGRStorageValue({ sharedData: sharedData0, stride: 1, shared }).toVisibleVertComp();const vb1 new WGRStorageValue({ sharedData: sharedData1, stride: 1, shared }).toVisibleVertComp();const vc1 new WGRStorageValue({ sharedData: sharedData3, stride: 1, shared }).toVisibleAll();// build computing uniformsconst compva1 new WGRStorageValue({ sharedData: sharedData0, stride: 1, shared }).toVisibleVertComp();const compva2 new WGRStorageValue({ sharedData: sharedData1, stride: 1, shared }).toVisibleComp();compva2.toBufferForStorage();const compvb1 new WGRStorageValue({ sharedData: sharedData1, stride: 1, shared }).toVisibleVertComp();const compvb2 new WGRStorageValue({ sharedData: sharedData0, stride: 1, shared }).toVisibleComp();compvb2.toBufferForStorage();const compv3 new WGRStorageValue({ sharedData: sharedData3, stride: 1, shared }).toVisibleComp();compv3.toBufferForStorage();return [{ ufvs0: [v0, va1, vc1], ufvs1: [v0, vb1, vc1] },{ ufvs0: [v0, compva1, compva2, compv3], ufvs1: [v0, compvb1, compvb2, compv3] }];}private mEntity: FixScreenPlaneEntity;private mStep 0;private createMaterial(shaderCodeSrc: WGRShderSrcType, uniformValues: WGRUniformValue[], shadinguuid: string, instanceCount: number): WGMaterial {return new WGMaterial({shadinguuid,shaderCodeSrc,instanceCount,uniformValues});}private createCompMaterial(shaderCodeSrc: WGRShderSrcType, uniformValues: WGRUniformValue[], shadinguuid: string, workgroupCount 2): WGCompMaterial {return new WGCompMaterial({shadinguuid,shaderCodeSrc,uniformValues}).setWorkcounts(workgroupCount, workgroupCount);}private initScene(): void {const rc this.mRscene;const ufvsObjs this.createUniformValues();const instanceCount gridSize * gridSize;const workgroupCount Math.ceil(gridSize / shdWorkGroupSize);let shaderSrc {shaderSrc: {code: shaderWGSL,uuid: shader-gameOfLife,vertEntryPoint: vertMain,fragEntryPoint: fragMain}} as WGRShderSrcType;let compShaderSrc {compShaderSrc: {code: compShdCode,uuid: shader-computing,compEntryPoint: compMain}};const materials: WGMaterial[] [// build ping-pong rendering processthis.createMaterial(shaderSrc, ufvsObjs[0].ufvs0, rshd0, instanceCount),this.createMaterial(shaderSrc, ufvsObjs[0].ufvs1, rshd1, instanceCount),// build ping-pong computing processthis.createCompMaterial(compShaderSrc, ufvsObjs[1].ufvs1, compshd0, workgroupCount),this.createCompMaterial(compShaderSrc, ufvsObjs[1].ufvs0, compshd1, workgroupCount),];let entity new FixScreenPlaneEntity({x: -0.8, y: -0.8, width: 1.6, height: 1.6,materials});rc.addEntity(entity);materials[0].visible false;materials[2].visible false;this.mEntity entity;}private mFrameDelay 3;run(): void {let rendering this.mEntity.isRendering();if (rendering) {if (this.mFrameDelay 0) {this.mFrameDelay--;return;}this.mFrameDelay 3;const ms this.mEntity.materials;for (let i 0; i ms.length; i) {ms[i].visible (this.mStep % 2 i) % 2 0;}this.mStep;}this.mRscene.run(rendering);} }
http://www.lebaoying.cn/news/7062.html

相关文章:

  • 微信上登录网站同步怎么做厦门建设局招聘
  • 国外手机设计网站asp.net程序做的网站安全吗
  • 用墨刀做网站后台原型网站开发有哪几种语言
  • 网站开发公司 广告词电商培训内容
  • 微官网与手机网站首页东莞东城邮编
  • 云南微网站搭建费用wordpress版权说明
  • 北京专业做网站的公司软件商城电脑版下载
  • 可以做词云的网站下载好字体怎么导入wordpress
  • 百度站长seo建设厅官方网站新资质标准
  • php做网站要多久潍坊哪里有做360网站护栏
  • 上海外贸网站推广服务php7安装wordpress
  • 做网站哪家好 要钱深圳做网站设计
  • 网站前台模板下载做静态网站接单
  • 在互联网上建设网站可选择的方案有山东诚铭建设机械有限公司网站
  • 秒应小程序怎么创建济南seo优化外包服务公司
  • 团购网站前景软件首页设计
  • 万网域名注册查询网深圳搜索优化排名公司
  • 湖南响应式网站哪家好潍坊个人网站制作
  • asp框架商城网站模板潍坊网站建设工作
  • 网站维护工程师工资济宁外贸网站建设
  • 能让网络非常流畅的软件适合seo软件
  • 2017年网站外链怎么做网站备案ip
  • 怎么有自己的网站小程序定制开发流程
  • 网上学习网站有哪些深圳网络推广系统
  • 保定网站制作网页给别人做网站用什么
  • 做域名不做网站可以吗最近重大新闻
  • 织梦做英文网站服务器建设网站软件下载
  • 网站建设后期出现的问题网页制作软件哪个好
  • 一个空间建多个网站软件外包合同
  • 千龙网站建设广东嵘通建设