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

Mars3d的gltf零部件控制(运载火箭)示例关于gltf内部的animations说明

示例链地址:

1.功能示例(Vue版) | Mars3D三维可视化平台 | 火星科技

问题:

1.火箭模型gltf内部的animations好像获取不到,在示例的学习过程中,示例中控制的只是构件信息 articulations。

2.Cesium是这种写法,在思考怎么在Mars3d中实现转换成graphic添加,以此来控制模型内部的动画效果

3.通过原始的写法尝试后,发现加载后没有动画效果,应该是代码的使用问题

解决方案:

1.通过学习示例关于addDemoGraphic2,来手动控制获取gltf模型内部的动画后的操作。

相关示例地址:

功能示例(Vue版) | Mars3D三维可视化平台 | 火星科技

相关示例代码:

function addDemoGraphic2(graphicLayer) {

  const graphic = new mars3d.graphic.ModelPrimitive({

    name: "风机",

    position: [116.35104, 30.86225, 374.4],

    style: {

      url: "//data.mars3d.cn/gltf/mars/fengche.gltf",

      colorBlendMode: Cesium.ColorBlendMode.MIX,

      heading: 270,

      scale: 30,

      minimumPixelSize: 100,

      runAnimations: false, // 关闭启动动画

      distanceDisplayCondition: true,

      distanceDisplayCondition_near: 0,

      distanceDisplayCondition_far: 9000,

      distanceDisplayBillboard: {

        // 当视角距离超过一定距离(distanceDisplayCondition_far定义的) 后显示为图标对象的样式

        image: "img/marker/square.png",

        scale: 1

      },

      // 高亮时的样式(默认为鼠标移入,也可以指定type:'click'单击高亮),构造后也可以openHighlight、closeHighlight方法来手动调用

      highlight: {

        silhouette: true,

        silhouetteColor: "#00ffff",

        silhouetteSize: 3

      }

    },

    attr: { remark: "示例2" }

  })

  graphicLayer.addGraphic(graphic) // 还可以另外一种写法: graphic.addTo(graphicLayer)

  // 手动按需启动动画

  graphic.on(mars3d.EventType.load, function (event) {

    console.log("风机 模型加载完成", event)

    const model = event.model

    // 参考API: http://mars3d.cn/api/cesium/ModelAnimationCollection.html

    model.activeAnimations.addAll({

      multiplier: 0.5, // Play at half-speed

      loop: Cesium.ModelAnimationLoop.REPEAT // Loop the animations

    })

    // let animation = model.activeAnimations.add({

    //   index: 0, //第一个叶子

    //   multiplier: 0.5, // Play at double speed

    //   loop: Cesium.ModelAnimationLoop.REPEAT, // Loop the animation

    // });

    // animation.start.addEventListener(function (model, animation) {

    //   console.log("Animation started: " + animation.name);

    // });

    // animation.update.addEventListener(function (model, animation, time) {

    //   console.log("Animation updated: " + animation.name + ". glTF animation time: " + time);

    // });

    // animation.stop.addEventListener(function (model, animation) {

    //   console.log("Animation stopped: " + animation.name);

    // });

  })

}

相关文章:

  • 零元购:一种新型的消费模式?
  • 如何写出高质量博客的思考
  • 数据库产品层出不穷,金融行业应该怎么选?|飞轮科技联合创始人连林江
  • Gitlab+GitlabRunner搭建CICD自动化流水线将应用部署上Kubernetes
  • 数字化转型对企业有什么好处?
  • Java UDP 多人聊天室简易版
  • MySQL注入入门简述
  • 安防视频监控系统EasyNVR平台集成后无法播放的原因与解决步骤
  • 如何将CAD图纸导入Revit软件?
  • 五、HotSpot细节实现
  • Python数值类型(整形、浮点型和复数)及其用法
  • 【鸿蒙开发】第五章 ArkTS基础知识 - 声明变量、常量、类型和函数
  • 软件工程之需求分析
  • 利用R语言heatmap.2函数进行聚类并画热图
  • LeetCode 每日一题 Day 9 ||简单dp
  • exif信息对照
  • Iterator 和 for...of 循环
  • Java 实战开发之spring、logback配置及chrome开发神器(六)
  • Just for fun——迅速写完快速排序
  • ReactNative开发常用的三方模块
  • RxJS: 简单入门
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • spring学习第二天
  • Storybook 5.0正式发布:有史以来变化最大的版本\n
  • 阿里研究院入选中国企业智库系统影响力榜
  • 记一次用 NodeJs 实现模拟登录的思路
  • 前端性能优化——回流与重绘
  • 前端之React实战:创建跨平台的项目架构
  • 日剧·日综资源集合(建议收藏)
  • 手写双向链表LinkedList的几个常用功能
  • 为什么要用IPython/Jupyter?
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • 整理一些计算机基础知识!
  • ​iOS安全加固方法及实现
  • ​创新驱动,边缘计算领袖:亚马逊云科技海外服务器服务再进化
  • #window11设置系统变量#
  • (03)光刻——半导体电路的绘制
  • (2022版)一套教程搞定k8s安装到实战 | RBAC
  • (4)STL算法之比较
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第2节(共同的基类)
  • (第二周)效能测试
  • (二)Eureka服务搭建,服务注册,服务发现
  • (二十四)Flask之flask-session组件
  • (三)uboot源码分析
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .Mobi域名介绍
  • .net Application的目录
  • .net和php怎么连接,php和apache之间如何连接
  • .NET开源快速、强大、免费的电子表格组件
  • .NET企业级应用架构设计系列之开场白
  • .NET下ASPX编程的几个小问题
  • /etc/apt/sources.list 和 /etc/apt/sources.list.d
  • @ConditionalOnProperty注解使用说明
  • @RunWith注解作用