虚拟现场(一)

虚拟现场(一)

学习目标:

掌握用Threejs实现虚拟现场的制作,虚拟现场是通过现场实时数据驱动模型运动;

加载的js文件有哪些,这些Js文件的作用是什么


学习内容:

以threejs-master中的一个demo为研究对象,demo选用webgl_loader_collada_kinematics.html,学习其中:

加载的js有如下几种:

<script src="../build/three.js"></script>
<script src="js/libs/tween.min.js"></script>
<script src="js/loaders/ColladaLoader.js"></script>
<script src="js/Detector.js"></script>
<script src="js/libs/stats.min.js"></script>

     一、 three.js   

     二、 tween.min.js——tween.js是非常小的类库,包含多种缓动函数,可以实现多种缓动效果,控制物体在某个时间段内的运动速度,

            1、缓动函数包括:
                                 linear 匀速
                                 Quad 二次方缓动效果
                                 Cubic 三次方缓动效果
                                 Quart 四次方缓动效果
                                 Quint 五次方缓动效果
                                 Sine  正弦缓动效果
                                 Expo  指数缓动效果
                                 Circ  圆形缓动函数
                                 Elastic 指数衰减正弦曲线缓动函数
                                 Back  超过范围的三次方的缓动函数
                                 Bounce 指数衰减的反弹曲线缓动函数

              2、每种缓动函数都由三种效果:easeIn 加速、easeOut 减速、easeInOut 先加速后减速

              3、每个函数都有四个参数:
                                 t——current time:当前时间.解释为:开始的步数(一般从0开始),预示着一段动画的开始.(当前步数)
                                 b——beginning value  初始值.解释为:开始量(开始的属性值)/初始位置
                                 c——change in value  变化量.解释为属性值的改变量:结束位置的属性值 - 开始位置的属性值(总距离(变化量))
                                 d——duration 持续时间.解释为:结束的步数(运动的总时间)、总步数

                              (https://blog.csdn.net/github_37360787/article/details/54837669

      三、ColladaLoader.js——Collada是一种用基于XML的格式定义数字内容的格式。这也是一种被广泛使用的格式,差不多所有的三维软件和渲染引擎都支持这种格式。
                 Collada模型中不仅定义了几何体,也定义了材质,甚至还可以定义光源

             1、常规流程:首先,引入script加载器:<script src="/lib/js/loaders/ColladaLoader.js"></script>

                                     然后,实例化加载器对象,用加载器对象加载模型,给我们返回一个包含模型的对象,里面包含一些模型相关的内容,我们从里面找到scene对象,并在里面找到children数组,将模型clone出来,添加到场景当中。

var loader = new THREE.ColladaLoader();

var mesh;
loader.load("/lib/assets/models/dae/Truck_dae.dae", function (result) {
    mesh = result.scene.children[0].clone();
    scene.add(mesh);
});

 

四、 Detector.js——对兼容性检测,

        1、其中包括:

           (1)判断canvas兼容。

           (2)判断webgl兼容性。

           (3)在页面添加不兼容提示信息。

        2、实现兼容性的检测使用方法:

          (1)首先,将插件引入到页面:[html]view plaincopy

         (2)然后,在js里面添加一个判断:

                  [javascript]view plaincopy

                  if( ! Detector.webgl ) Detector.addGetWebGLMessage();

五、 stats.min.js——stats性能插件添加了以后,会默认在左上角显示性能帧数,每次刷新所用时间,占用内存。鼠标左键点击可进行切换,默认显示每秒的帧数。

例如:

基本使用方法:

(1)首先需要将stats插件引入:examples/js/libs/stats.min.js。

(2)然后需要实例化一个组件,然后添加到dom当中。

var stats;
    function initStats() {
        stats = new Stats();
        document.body.appendChild(stats.dom);
    }

 

(3)需要在requestAnimationFrame()函数调用里面更新stats。

function animate() {
        //更新控制器
        controls.update();
        render();
 
        //更新性能插件
        stats.update();
        requestAnimationFrame(animate);
    }

 

(4)设置默认显示的监听。

Stats.prototype.setMode()方法可以设置插件的默认监听

stats.setMode(0); //默认的监听fps
stats.setMode(1); //默认的监听画面渲染时间
stats.setMode(2); //默认的监听当前的不知道是啥

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值