Threejs物联网,养殖场3D可视化(二)

简介: Threejs物联网,养殖场3D可视化(二)

1,介绍


该示例使用的是 r95版本Three.js库。

主要实现功能:引用养殖场模型进行展示。效果图如下:

2,主要说明



养殖场3D展示主要使用OBJLoader和MTLLoader加载模型并直接赋予材质进行展示。 

引入模型代码如下:


 3,源码


      var camera;
      var renderer;
      var mesh;
      function init() {
        // 创建一个场景,它将包含我们所有的元素,如物体,相机和灯光。
        var scene = new THREE.Scene();
        var urls = [
          'assets/textures/posx.jpg',
          'assets/textures/negx.jpg',
          'assets/textures/posy.jpg',
          'assets/textures/negy.jpg',
          'assets/textures/posz.jpg',
          'assets/textures/negz.jpg'
        ];
        var cubeLoader = new THREE.CubeTextureLoader();
        scene.background = cubeLoader.load(urls);
        // 创建一个摄像机,它定义了我们正在看的地方
        camera = new THREE.PerspectiveCamera(50, window.innerWidth / window.innerHeight, 0.1, 30000);
        // 将摄像机对准场景的中心
        camera.position.x = 5500;
        camera.position.y = 3000;
        camera.position.z = 2000;
        camera.lookAt(scene.position);
        var orbit = new THREE.OrbitControls(camera);
        // 创建一个渲染器并设置大小,WebGLRenderer将会使用电脑显卡来渲染场景
        // initialize basic renderer
        renderer = new THREE.WebGLRenderer({
          antialias: true,
          logarithmicDepthBuffer: true,
        });
        renderer.setSize(window.innerWidth, window.innerHeight);
        // 添加环境光
        scene.add(new THREE.AmbientLight("#ffffff", 1.5));
        // 将呈现器的输出添加到HTML元素
        document.getElementById("dom").appendChild(renderer.domElement);
        // 在屏幕上显示坐标轴
        var axes = new THREE.AxesHelper(10000);
        // scene.add(axes);
        initModel();
        // 启动动画
        renderScene();
        // 添加模型
        function initModel() {
          var mtlLoader = new THREE.MTLLoader();
          mtlLoader.setPath("assets/models/obj_mtl/")
          mtlLoader.load('yangzhichang.mtl', function(materials) {
            materials.preload();
            var objLoader = new THREE.OBJLoader();
            objLoader.setMaterials(materials);
            objLoader.load('assets/models/obj_mtl/yangzhichang.obj', function(object) {
              mesh = object;
              object.traverse(function(node) {
                if (node.material) {
                  node.material.side = THREE.DoubleSide;
                }
              });
              scene.add(mesh);
            });
          });
        }
        document.addEventListener('click', onDocumentMouseDown, false);
        function onDocumentMouseDown(event) {
          // 点击屏幕创建一个向量
          var vector = new THREE.Vector3((event.clientX / window.innerWidth) * 2 - 1, -(event.clientY / window
            .innerHeight) * 2 + 1, 0.5);
          vector = vector.unproject(camera); // 将屏幕的坐标转换成三维场景中的坐标
          var raycaster = new THREE.Raycaster(camera.position, vector.sub(camera.position).normalize());
          var intersects = raycaster.intersectObjects(mesh, true);
          if (intersects.length > 0) {
            var name = intersects[0].object.name;
            var obj = scene.getObjectByName(name);
            console.log(obj)
            scene.remove(obj);
          }
        }
        function renderScene() {
          orbit.update();
          requestAnimationFrame(renderScene);
          renderer.render(scene, camera);
        }
        // 渲染的场景
        renderer.render(scene, camera);
      }
      window.onload = init;


4,下载


使用threejs渲染养殖场模型源码,养殖场模型obj+mtl格式,threejs模型,模型升级版-Web开发文档类资源-CSDN下载

升级版养殖场模型,使用threejs渲染模型源码Threejs渲染obj+mtl模型,Threej更多下载资源、学习资料请访问CSDN下载频道.

https://download.csdn.net/download/baidu_29701003/54824377


5,源码和模型


相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
目录
相关文章
|
7月前
|
人工智能 监控 数据可视化
AI、物联网、可视化智慧工地云平台源码
智慧工地是聚焦工程施工现场,紧紧围绕人、机、料、法、环等关键要素,综合运用物联网、云计算、大数据、移动计算和智能设备等软硬件信息技术,与施工生产过程相融合。
86 2
|
数据可视化 物联网
Threejs物联网,养殖场3D可视化(三)模型展示,轨道控制器设置,模型沿着路线运动,模型添加边框,自定义样式显示标签,点击模型获取信息
Threejs物联网,养殖场3D可视化(三)模型展示,轨道控制器设置,模型沿着路线运动,模型添加边框,自定义样式显示标签,点击模型获取信息
960 15
Threejs物联网,养殖场3D可视化(三)模型展示,轨道控制器设置,模型沿着路线运动,模型添加边框,自定义样式显示标签,点击模型获取信息
|
7月前
|
人工智能 监控 数据可视化
Springcloud可视化物联网智慧工地云SaaS平台源码 支持二开和私有化部署
Springcloud可视化物联网智慧工地云SaaS平台源码 支持二开和私有化部署
199 1
|
7月前
|
人工智能 数据可视化 安全
Java带可视化数据大屏的物联网智慧工地系统源码
通过现场AI智能视频监控、临时设施动态管理,实时检测场地空间、资源、设施的运行状况,及时发现场地安全隐患,确保为工人营造一个安全、文明的场地作业环境。
90 0
|
监控 数据可视化 物联网
Java可视化物联网智慧工地SaaS平台源码:人脸识别考勤
基于微服务+Java+Spring Cloud Vue +UniApp +MySql实现的智慧工地云平台源码
137 1
|
数据采集 JSON 监控
Zabbix物联网可视化开发文档
Zabbix物联网可视化开发文档
144 1
|
传感器 监控 数据可视化
IoT Studio 物联网可视化应用搭建开发实践
阿里云 IoT Studio 物联网可视化应用搭建开发实践
23806 4
IoT Studio 物联网可视化应用搭建开发实践
|
数据可视化 物联网
Threejs物联网,工厂3D可视化,加载模型,水流监测,标签动态数据展示
Threejs物联网,工厂3D可视化,加载模型,水流监测,标签动态数据展示
976 15
Threejs物联网,工厂3D可视化,加载模型,水流监测,标签动态数据展示
|
1月前
|
存储 安全 物联网
政府在推动物联网技术标准和规范的统一方面可以发挥哪些作用?
政府在推动物联网技术标准和规范的统一方面可以发挥哪些作用?
101 50
|
1月前
|
安全 物联网 物联网安全
制定统一的物联网技术标准和规范的难点有哪些?
制定统一的物联网技术标准和规范的难点有哪些?
51 2

相关产品

  • 物联网平台