我的编程空间,编程开发者的网络收藏夹
学习永远不晚

three.js Mool3D模型类如何使用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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模型类如何使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网行业资讯频道,小编每天都会为大家更新不同的知识点。

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

    three.js Mool3D模型类如何使用

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

    下载Word文档

    猜你喜欢

    three.js Mool3D模型类如何使用

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

    three.js Mool3D模型类的使用

    这篇文章主要为大家介绍了three.js Mool3D模型类的使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-14

    如何在Keras中使用模型的子类化

    在Keras中使用模型的子类化可以通过创建一个继承自tf.keras.Model的子类来实现。以下是一个简单的示例:import tensorflow as tffrom tensorflow.keras.layers import D
    如何在Keras中使用模型的子类化
    2024-03-14

    在vue中如何使用three.js

    这篇文章主要讲解了“在vue中如何使用three.js”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“在vue中如何使用three.js”吧!1.首先安装three.js、引入npm inst
    2023-07-05

    C#中如何使用值类型和引用类型

    C#中如何使用值类型和引用类型,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1。变量:变量是指在程序的运行过程中随时可以发生变化的量。语法:数据类型 变量名2。常量:也称常数,
    2023-06-17

    如何使用 C++ 函数模板实现参数化类型?

    使用 c++++ 函数模板实现参数化类型简介函数模板可以处理不同类型的通用函数。参数化类型使函数模板更进一步,可以接受不同类型的参数。代码示例: 1. 定义函数模板 print_pair(t, u) 处理不同类型对。 2. 在主函数中调
    如何使用 C++ 函数模板实现参数化类型?
    2024-04-15

    Laravel模型事件如何使用

    这篇“Laravel模型事件如何使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Laravel模型事件如何使用”文章吧。我
    2023-07-04

    C# 中如何使用Direct3D模型

    今天就跟大家聊聊有关C# 中如何使用Direct3D模型,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。C# Direct3D模型由World 空间,View 空间和光源组成。Worl
    2023-06-17

    Python中String类型如何使用

    这篇文章给大家介绍Python中String类型如何使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Python String类型应用代码示例:>>> hello world hello world >>> "h
    2023-06-17

    Python中如何使用file类型

    这篇文章将为大家详细讲解有关Python中如何使用file类型,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Python file类型在Python是一个特殊的类型,它用于在Python程序
    2023-06-17

    如何使用TypeScript类型注解

    小编给大家分享一下如何使用TypeScript类型注解,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!类型注解TypeScript提供了很多数据类型,通过类型对变量进行限制,称之为类型注解,使用类型注解后,就不能够随意变更变
    2023-06-29

    编程热搜

    • Python 学习之路 - Python
      一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
      Python 学习之路 - Python
    • chatgpt的中文全称是什么
      chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
      chatgpt的中文全称是什么
    • C/C++中extern函数使用详解
    • C/C++可变参数的使用
      可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
      C/C++可变参数的使用
    • css样式文件该放在哪里
    • php中数组下标必须是连续的吗
    • Python 3 教程
      Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
      Python 3 教程
    • Python pip包管理
      一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
      Python pip包管理
    • ubuntu如何重新编译内核
    • 改善Java代码之慎用java动态编译

    目录