webgl 基础渲染demo_简化封装threejs,让webgl可视化不再复杂

63c4f1296000b335e5da883dc658e0f6.png

  在如今互联网爆炸式发展的时候,物联网也是扶摇直上,其中物联网可视化领域也崭露头角,而目前物联网中,threejs也是时下十分火热的一个3D的JavaScript库,在WebGL中文网中的介绍说threejs就是是使用JavaScript来编写3D程序,在webgl中文网中,有着对于threejs的讲解,和教程,当然,threejs官网上也有着十分详细的教程。什么是webgl?WebGL是在浏览器中实现三维效果的一套规范。因此也就有了各种3d 的js库,其中threejs较为突出,但是学习threejs要一定的功夫。不过随着时间和技术的同步增长,目前也有部分平台选择封装了threejs库,将精炼后的threejs再度精炼,成为了一个受众更广的技术。

6843e097181b2e379d20c9e44b3501d1.png

  那我们来对比一下,一个threejs的“HelloWorld”怎么写?最简单的也需要以下四个步骤:

  a. 引入threejs库;

  b.创建场景;

  c. 添加物体;

  d. 渲染场景;

  相关代码如下:

<html>
    <head>
        <title>My first three.js app</title>
        <style>
            body {margin: 0; }
            canvas {width: 100%; height: 100% }
        </style>
    </head>
    <body>
        <script src="js/three.js"></script>
        <script>
            var scene = new THREE.Scene();
            var camera = new THREE.PerspectiveCamera( 75, window.innerWidth/window.innerHeight, 0.1, 1000 );
            var renderer = new THREE.WebGLRenderer();
            renderer.setSize( window.innerWidth, window.innerHeight );
            document.body.appendChild( renderer.domElement );
            var geometry = new THREE.BoxGeometry( 1, 1, 1 );
            var material = new THREE.MeshBasicMaterial( {color: 0x00ff00 } );
            var cube = new THREE.Mesh( geometry, material );
            scene.add( cube );
            camera.position.z = 5;
            var animate = function () {
                requestAnimationFrame(animate);
            cube.rotation.x += 0.01;
            cube.rotation.y += 0.01;
            renderer.render( scene, camera );
        };
        animate();
        </script>
    </body>
</html>

  threejs的“HelloWorld”代码数量比起最少也要上百行的c++代码数量少得多,同时也更加容易理解和学习,就如同c的出现让普通人也能编程,而不是面对一串串01组成的机器语言,同样,threejs以及其他的3d可视化库的出现,也渐渐的成为了网页开发3D程序的主流,横向对比Java的“HelloWorld”(总共五行代码),你会发现threejs的“helloworld”看得更加复杂,不像一个最基本的入门程序,那是因为再怎么简单,threejs也不是一个十分容易上手的技术,那有跟Java一样入门简单的”HelloWorld“么?有!如果说threejs是面向webgl底层的技术,那么thingjs就是webgl的中层技术(此处的中层技术意味着基础简单好入门,但相应的某些功能会被内置,这对新手友好而对那些偏向底层技术的人员不太友好),ThingJS平台的的thingjs是如何实现“HelloWorld”的

  呢?

  只需要三行代码就能实现一个webgl的“HelloWorld”!

var app = new THING.App({
    url: 'https://www.thingjs.com/static/models/storehouse' // 场景地址
});

  thingjs相比于threejs,有哪些优点呢?

  1、相同的一个3D应用,thingjs代码量更少!

  2、相同的一个3D应用,thingjs更容易理解!

  3、开发一个3D应用,thingjs用时更短!

  简而言之就是thingjs是一个面向新手开发的一个js库,能实现目前物联网绝大部分可视化应用的需求!

  有优点自然就有缺点:

  1、thingjs的底层渲染什么的没threejs好。

  2、threejs技术更为成熟,使用过thingjs的公司也才几百家。

  3、threejs更加专业,能完成一些十分精密的操作等,thingjs在实现正常场景还是不错的,但是特别精密的场景以及特效还力有未逮。

  大体来看threejs就是一个专业级别的3d js库,相当于thingjs是高中课本知识,threejs则需要大学生花时间研读!

  如何用thingjs开发webgl可视化应用呢?只需要四个步骤!

  1、场景搭建;

  2、应用开发;

  3、数据对接;

  4、项目发布;

  是不是非常简单?迈入webgl的世界,不只是threejs,thingjs也能祝您一臂之力!搜索ThingJS官网即可进入webgl的大门!

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值