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

教育平台网站手机软件下载平台

教育平台网站,手机软件下载平台,手机设计菜单制作软件,做网站ui很多场景中会需要同一个模型很多次,但是如果多次加载同一个模型会占用很高的带宽,导致加载很慢,因此就需要使用clone,也就是加载一个模型后,其他需要使用的地方使用clone的方式复制出多个同样的模型,再改变…

        很多场景中会需要同一个模型很多次,但是如果多次加载同一个模型会占用很高的带宽,导致加载很慢,因此就需要使用clone,也就是加载一个模型后,其他需要使用的地方使用clone的方式复制出多个同样的模型,再改变复制出来的模型位置,达到一次加载,多次使用。但另一个情况是克隆的模型是新的模型,在threejs的场景中是一个完整独立的,具有一个正常模型所有的属性,很大,加载和渲染需要花费很多的时间,那么就又需要对克隆出的模型进行合并,成为一个整体的模型放到threejs的场景中。

        首先我们需要搭建一个threejs的场景,包括相机,灯光,渲染器等,这里为了方便看合并后的效果,再添加上State性能监视器。其他的场景搭建之前章节中都已存在这里就不贴代码了。性能监视器的代码如下

import Stats from 'three/addons/libs/stats.module.js';this.stats = new Stats();
document.body.appendChild(this.stats.domElement);

然后加载一个模型,我这里使用一个料箱模型作为演示的模型。

    initModel(){const loader = new GLTFLoader()loader.load("/static/models/box.glb", (gltf) => {this.scene.add(gltf.scene)})},

然后开始clone料箱。先clone1000个,并修改每个料箱的位置,此时发现threejs渲染已经非常吃力,FPS已经掉帧到12了。

initModel(){const loader = new GLTFLoader()loader.load("/static/models/box.glb", (gltf) => {let originaMesh = gltf.scene.children[0];for (let i = 0; i < 100; i++) {for (let j = 0; j < 10; j++) {for (let k = 0; k < 10; k++) {let mesh = originaMesh.clone()mesh.position.set(i*6,j*6,k*10);this.scene.add(mesh)}}}})},

然后我们开始模型合并,模型合并其实就是将每个模型的geometry克隆出来,放到一个集合中,最终把这个集合渲染为一个整体的大模型。

initModel(){const loader = new GLTFLoader()loader.load("/static/models/box.glb", (gltf) => {this.scene.add(gltf.scene)let meshArr = []let originaMesh = gltf.scene.children[0];for (let i = 0; i < 100; i++) {for (let j = 0; j < 10; j++) {for (let k = 0; k < 10; k++) {let mesh = originaMesh.clone()mesh.position.set(i*6,j*6,k*10);mesh.updateMatrixWorld(true);const geometry = mesh.geometry.clone();geometry.applyMatrix4(mesh.matrixWorld);meshArr.push(geometry)}}}const bayGeometry = mergeGeometries(meshArr,true);const material = new THREE.MeshStandardMaterial({ color: '#0000FF' });const totalMesh = new THREE.Mesh(bayGeometry, material);totalMesh.name="大模型"this.scene.add(totalMesh);})},

最终通过模型合并,1000个料箱同时展示,FPS又回到了60,因为对于threejs来讲,只有一个模型了,渲染也是一次成型。

如果有疑问或者需要源码可以给我留言。

http://www.yayakq.cn/news/568945/

相关文章:

  • html5单页网站广东建的电商网站叫啥
  • 建立免费网站的步骤24手表网站
  • 网站运营与管理的心得体会营销推广措施有哪些
  • 昆明网上商城网站建设软件开发服务合同
  • 上海公司建立网站网络公司是做什么
  • 东莞寮步做网站的有吗怎么创建公众号步骤
  • 网站运营新手做北京最新新闻
  • 屏山县建设局网站wordpress当下载站
  • 互动科技 网站建设做企业网站怎么备案
  • 高端网站开发哪家好WordPress 提交搜索引擎
  • 中小学网站建设探讨做a 需要制作网站
  • 校园网站建设培训的心得体会网站开发 票种
  • 外贸网站推广seo中国纪检监察报评论员文章
  • 天津网站开发技术widgets wordpress
  • 网站建设公司的税是多少钱商标设计平台
  • 阿里云服务器 网站模板城市建设与管理局网站
  • 如何网站推广宣传高端设计公司
  • 网站推广方案中服务器wordpress建站教程
  • 网站开发完要怎么部署广安企业网站建设
  • 宜宾做网站的公司套路网站怎么做的
  • 电影网站做静态是不是好一些如何制作网站设计
  • 可以做网站素材的服装wordpress 导航不可点击
  • 徐老师在那个网站做发视频网站关键词如何优化
  • 和目网站国外网站推广如何做
  • 做博客网站用什么模板设计培训网站建设
  • 加气站类型的网站建设四川省建筑公司
  • 河北省建设工程招投标管理网站网站内容规划
  • 营销型网站建设对比分析哈尔滨信息网租房信息
  • 北京游戏网站建设站长之家whois查询
  • wordpress企业网站建设网站开发技术都有哪些