首页 > 其他分享 >three.js 性能优化之模型转化与压缩

three.js 性能优化之模型转化与压缩

时间:2023-02-17 15:56:23浏览次数:48  
标签:obj 压缩 three js scene 模型 gltf

模型转换

obj转gltf

  安装插件

    npm i -g obj2gltf
执行转换命令
  obj2gltf  -i 11-6.obj -o 11-6.gltf -u

 

模型压缩

安装gltf-pipeline

    npm i -g gltf-pipeline
执行压缩命令
    gltf-pipeline  -i 11-6.gltf -o 11-6_mini.gltf -d

加载压缩后的模型

    import {GLTFLoader} from 'three/examples/jsm/loaders/GLTFLoader'
    import {DRACOLoader} from 'three/examples/jsm/loaders/DRACOLoader'
 //加载模型
        let loader = new GLTFLoader();
        let dracoLoader = new DRACOLoader();
        dracoLoader.setDecoderPath("/static/models/draco/");//加载draco算法,这样才能解析压缩后的gltf模型格式,具体的draco算法文件,直接可以three依赖文件中找到,赋值到static目录下面就好了
        loader.setDRACOLoader(dracoLoader);
        loader.load("mini.gltf",//引入压缩的gltf模型
          function(obj) { // 这个obj就是解析后的模型,可添加到scene内。
            obj.scene.position.set(-27.5, 0, -2);//设置物体的位置
            obj.scene.scale.set(0.00065, 0.00065, 0.00065);//设置物体的大小
            that.scene.add(obj.scene);// 在场景中添加物体
          },
          // called while loading is progressing
          function(xhr) {
            console.log((xhr.loaded / xhr.total) * 100 + "% loaded");
          },
          // called when loading has errors
          function(error) {
            console.log("An error happened");
          }
        );

 

标签:obj,压缩,three,js,scene,模型,gltf
From: https://www.cnblogs.com/Wei-notes/p/17130395.html

相关文章

  • 关于net core 开发服务时,使用Serilog根据appsettings.json输出日志错误的问题。
    使用Serilog输出日志时,配置内容如下,"Serilog":{"Using":["Serilog.Sinks.Console","Serilog.Sinks.File"],"MinimumLevel":"Debug","WriteTo":[......
  • js 对象命名
    JS标识符的命名规则,即变量的命名规则:标识符只能由字母、数字、下划线和‘$’组成数字不可以作为标识符的首字符对象属性的命名规则通过[]操作符为对象添加属性时,属......
  • 10个常用的JS工具库,80%的项目都在用
    Day.js一个极简的处理时间和日期的JavaScript库,和 Moment.js的API设计保持一样,但体积仅有2KB。qs一个轻量的url参数转换的JavaScript库js-cookie一个简单......
  • 根composer.json需要php^8.0,但您的php版本(7.4.27)不满足该要求
    我安装了php7.4,但当我在项目中写入composerinstall时,我看到了以下错误:Rootcomposer.jsonrequiresphp^8.0butyourphpversion(7.4.27)doesnotsatisfythatreq......
  • curl post请求发送json数据两种方式(Window/Linux)
    curlpost请求发送json数据两种方式(Window/Linux) 设置请求头Content-Typecurl发送post请求,默认的content-type是:application/x-www-form-urlencoded。要发送json格式,......
  • 4. JWT(JSON Web Token)鉴权
    通过第三节,知道了Token的使用方式以及组成,不难发现,服务端验证客户端发送过来的Token时,还需要查询数据库获取用户基本信息,然后验证Token是否有效;这样每次请求验证都......
  • 使用JSEncrypt加密解密
    密钥对生成http://web.chacuo.net/netrsakeypairconstpublicKey='MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANL378k3RiZHWx5AfJqdH9xRNBmD9wGD\n'+'2iRe41HdTNF8RUhNnHit......
  • NodeJs基础学习
    学习目标该文档为NodeJs的学习记录文档,学习目标为能够知道什么是Nodejs能够知道Node,js可以做什么能够说出Nodejs中的JavaScript的组成部分能够使用fs模......
  • JS为什么是单线程
    JS为什么是单线程进程与线程什么是进程都知道,CPU是计算机的核心,承担所有的计算任务官网说法,进程是CPU资源分配的最小单位字面意思就是进行中的程序,可以将它理解为......
  • JS原型链继承
    functionParent(){this.name='red';this.eat=function(){console.log('走这里了吗')}}Parent.prototype.start=function(){console.lo......