广告
返回顶部
首页 > 资讯 > 精选 >three.js Mool3D模型类如何使用
  • 230
分享到

three.js Mool3D模型类如何使用

2023-07-05 20:07:55 230人浏览 安东尼
摘要

这篇文章主要介绍“three.js Mool3D模型类如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“three.js Mool3D模型类如何使用”文章能帮助大家解决问题。

这篇文章主要介绍“three.js Mool3D模型类如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“three.js Mool3D模型类如何使用”文章能帮助大家解决问题。

    Model类

    场景加载

    加载场景主要使用引擎中的model类来实现,引擎中model类主要功能有配置文件模型加载、场景切换、单一自定义模型加载、场景下动画的控制等~

    //下方为简单场景的加载import { Viewer } from "../Threejs/index";export class Index extends Viewer {  constructor(options) {    super(options);    this.initModel();  }}

    推荐通过继承主类的方式扩展业务代码,上方是一个最简单的场景加载示例。细心的同学可以发现上方只是初始化了一个model类而已如何完成场景的加载的,当然完成场景加载还需要一个触发场景的条件,这我们通常可以在容器文件中实现。下方就是最简单的场景加载容器

    //Vue文件//初始化const init = () => {  const el = refmap.value;  sceneA = new Index({    el: el as htmlElement,    tween: TWEEN,    path: "../public/scene/", //基础路径  });  setScene(1);};//切换场景const setScene = (id) => {  switch (id) {    case 1:      sceneA.setScene(1, () => {          //场景加载成功回调      });      sceneA.flyTo({ //相机位置        position: [0, 5, 6],        controls: [0, 0, 0],        duration: 2000,      });      break;    default:      break;  }};

    场景配置文件

    上方代码通过场景id加载场景,那是如何知道需要加载哪些模型呢?引擎通过config.JSON文件约束不同场景下所依赖的模型文件,配置文件存放路径为基础路径下(../public/scene/) 下方详细介绍配置文件~

    [  {    "name": "mool", //名称    "target": false, //是否被鼠标拾取    "layeridx": 1, //场景id    "scale": 1, //场景缩放    "positionX": 50, //场景初始位置    "positionY": 120,    "positionZ": 170,    "layers": [ //场景模型配置对象      {        "name": "./glb/building1.glb"      },      {        "name": "./glb/building2.glb"      }    ]  }  ......]

    递归处理场景模型

    照着上方的操作,我们完成了场景的加载。这时场景已经呈现在画面上,如果我们需要修改场景模型的材质等操作怎么做呢? 当然模型类中也考虑到这一点,提供了一个回调处理解码的模型,具体怎么操作见下方~

    constructor(options) {    super(options);    this.initModel();    //这是在加载场景模型之前执行的回调,所以建议放在初始化类时完成回调的注册,这样会在模型加载过程中递归去修改模型    this.model.deepFunction.push(({ e , item }) => {     // e:模型碎片Mesh / item:场景配置文件      e.scale.set(300, 300, 300);    });}

    不推荐什么方法都放在constructor中去调用,由于模型加载时才会去设置当前场景的id,如在constructor中初始化天空和灯光等,会出现无效的情况,出现这种情况是因为场景id默认值为1,都加载到场景1中去了。所以模型类提供一个场景加载成功的回调,在里面初始化场景需要的一些修饰类如灯光、天空、环境贴图等~

    sceneA.setScene(1, () => {    //场景加载成功回调    sceneA.initEnvironment({      path: "exr.exr",      type: "exr",    });});

    加载独立模型

    如何加载独立于场景配置文件之外的模型呢?模型类提供GLBFBX两种类型模型加载方法,具体见下方说明~

    //加载glb/gltf模型this.model.loadModel(  "../public/scene/glb/walk.glb",  this.sceneidx,  (glb, animations) => {    glb:为模型对象    animations:模型动画    ...模型自定义修改  });//加载fbx模型this.model.loadFbxModel(  "../public/scene/glb/walk.fbx",  this.sceneidx,  (fbx, animations) => {    fbx:为模型对象    animations:模型动画     ...模型自定义修改  });

    注意上方只提供加载模型,不会主动添加到场景中,需修改定制化模型参数之后手动将其add到场景中~

    动画

    模型类中提供两种执行动画的方法,一种是执行场景下的所有动画,一种是执行某个名称的动画。具体使用见下方说明~

    //执行场景下的所有动画this.model.playAllClipes(this.sceneidx);//传入场景的id//执行某名称的动画this.model.playNameClipes(this.sceneidx,'mool');//传入场景的id和动画名称

    关于“three.js Mool3D模型类如何使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网精选频道,小编每天都会为大家更新不同的知识点。

    --结束END--

    本文标题: three.js Mool3D模型类如何使用

    本文链接: https://www.lsjlt.com/news/354912.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • three.js Mool3D模型类如何使用
      这篇文章主要介绍“three.js Mool3D模型类如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“three.js Mool3D模型类如何使用”文章能帮助大家解决问题。...
      99+
      2023-07-05
    • three.js Mool3D模型类的使用
      目录Model类场景加载场景配置文件递归处理场景模型加载独立模型动画结语Model类 之前的引擎介绍文章中有人留言想了解如何通过引擎加载自定义的模型场景,这篇文章将详细介绍如何加载...
      99+
      2023-05-14
      three.js Mool3D模型类 three.js Mool
    • three.js如何加载obj模型
      这篇文章主要介绍three.js如何加载obj模型,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!three.js是一款webGL框架,由于其易用性被广泛应用。如果你要学习webGL,...
      99+
      2022-10-19
    • AngularJS中如何使用three.js
      小编给大家分享一下AngularJS中如何使用three.js,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!AngularJS中...
      99+
      2022-10-19
    • 在vue中如何使用three.js
      这篇文章主要讲解了“在vue中如何使用three.js”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“在vue中如何使用three.js”吧!1.首先安装three.js、引入npm ...
      99+
      2023-07-05
    • 详解Three.js 场景中如何彻底删除模型和性能优化
      目录three.js 场景中如何彻底删除模型和性能优化删除外部模型优化技巧注意事项three.js 场景中如何彻底删除模型和性能优化 删除外部模型 在three.js场景中,要彻底...
      99+
      2023-05-16
      Three.js 删除模型性能优化 Three.js 彻底删除模型
    • C#中如何使用值类型和引用类型
      C#中如何使用值类型和引用类型,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1。变量:变量是指在程序的运行过程中随时可以发生变化的量。语法:数据类型 变量名2。常量:也称常数,...
      99+
      2023-06-17
    • thinkphp5 使用模型查询对象类型转数组
      在ThinkPHP5中,可以使用模型的toArray方法将查询结果对象类型转换为数组类型。以下是一个例子:1. 假设有一个User模...
      99+
      2023-10-11
      php
    • Python中String类型如何使用
      这篇文章给大家介绍Python中String类型如何使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Python String类型应用代码示例:>>> 'hello wo...
      99+
      2023-06-17
    • PostgreSQL中如何使用Lateral类型
      这篇文章给大家介绍PostgreSQL中如何使用Lateral类型,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。PostgreSQL 9.3 用了一种新的联合类型! Lateral联合...
      99+
      2022-10-18
    • Redis集合类型如何使用
      这期内容当中小编将会给大家带来有关Redis集合类型如何使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、集合内操作1.添加元素sadd key ...
      99+
      2022-10-19
    • HTML5中如何使用Input类型
      这篇文章主要为大家展示了“HTML5中如何使用Input类型”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“HTML5中如何使用Input类型”这篇文章吧。新的输...
      99+
      2022-10-19
    • Redis中如何使用set类型
      本篇文章给大家分享的是有关Redis中如何使用set类型,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。 set是s...
      99+
      2022-10-18
    • CSS如何使用媒体类型
      这篇文章给大家分享的是有关CSS如何使用媒体类型的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。   根据Web网站的不同,网页的错误会以非预期的形式出现,例如打印时的布局折叠,...
      99+
      2022-10-19
    • TypeScript如何使用类型推导
      这篇文章给大家分享的是有关TypeScript如何使用类型推导的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。巧用类型推导TypeScript 能根据一些简单的规则推断(检查)变量...
      99+
      2022-10-19
    • TypeScript如何使用类型别名
      这篇文章主要介绍了TypeScript如何使用类型别名,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。类型别名类型别名会给一个类型起个新名字,...
      99+
      2022-10-19
    • TypeScript如何使用交叉类型
      这篇文章主要为大家展示了“TypeScript如何使用交叉类型”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“TypeScript如何使用交叉类型”这篇文章吧。交...
      99+
      2022-10-19
    • TypeScript如何使用类型约束
      这篇文章主要为大家展示了“TypeScript如何使用类型约束”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“TypeScript如何使用类型约束”这篇文章吧。巧...
      99+
      2022-10-19
    • java布尔类型如何使用
      在Java中,布尔类型表示逻辑值,只能有两个值:true和false。可以在声明变量时指定布尔类型,例如:```javaboolea...
      99+
      2023-08-23
      java
    • Python中如何使用file类型
      这篇文章将为大家详细讲解有关Python中如何使用file类型,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Python file类型在Python是一个特殊的类型,它用于在Python程序...
      99+
      2023-06-17
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作