1、Potree是什么

Potree是一种基于WebGL的点云数据可视化解决方案,包含点云数据转化,以及进行可视化的源码。该解决方案的主要优势在于对点云数据进行了多尺度的管理,在数据传输和可视化上都做了优化。它是一套开源的系统,基于Three.js,由奥地利维也纳理工大学的Harvest4D项目贡献。

2、获取Potree源码

Potree的git地址为https://github.com/potree,打开后,如下图所示

目前我们的目的是做一套可部署到本地点云加载显示软件,需要关注potree和PotreeDesktop两个内容。其中potree是核心,使用jsvascript开发,PotreeDesktop使用electron,把Web程序包装成了桌面程序,于是我们就可以使用javascript基于potree开发桌面软件了。

如果从头开始搭建开发环境,肯定会很复杂,例如需要下载部署好Potree环境,需要搭建electron环境。有个比较简单的办法就是,我们把官方的PotreeDesktop部署包下载下来,在此基础上修改扩展即可。

3、获取PotreeDesktop

在potree主页,点击PotreeDesktop,进入该模块的主页面,如下图所示

右侧会有PotreeDesktop的发布包,点击进入,下载最新的部署包(PotreeDesktop_1.8.1_x64_windows.zip)即可。下载后,解压出内容,会发现PotreeDesktop并没有做多少实质性的内容,只是把Potree做好的主页面包成了桌面程序,并把开发桌面使用的环境进行了整理。不过做到这些就足够了,这样就为我们提供了很大的方便,让我们把更多的精力放到了解Potree上。

源码根目录的内容如下图所示。

我们开发的桌面程序,可双击运行PotreeDesktop.bat,运行系统。PotreeDesktop.bat文件用记事本打开,内容如下。

start ./node_modules/electron/dist/electron.exe ./main

意思是启动指定目录下的electron.exe文件,后面跟了一个参数,./main,我感觉这个参数应该指的是根目录下的main.js文件。这个没有仔细研究过,基本上PotreeDesktop为我们搭建好的运行环境不太用修改,直接扩展即可。而实时上,整个系统也是从main.js启动。

双击运行PotreeDesktop.bat,运行系统,弹出的主界面如下图所示

4、PotreeDesktop结构介绍

在根目录下,有几个重要的单文件,main.js、index.html、PotreeDesktop.bat。其中PotreeDesktop.bat我们已经说过了,是系统启动的快捷方式文件,main.js是系统启动后,首先执行的文件。在这个文件里面主要设置了和electron相关的一些内容,例如electron的菜单、系统标题以及加载哪个主页面等。

index.html就是系统启动后,包装显示的主页面,我们开发的内容以及页面,都是通过该页面展示出来,从这个页面开始,就正式进入普通的Web开发了。

除了文件之外,还有几个文件夹,src、node_modules和libs。其中src为PotreeDesktop自己的源码,里面包含desktop.js和desktop.css两个文件。看了下这连两个文件,主要实现了把las文件拖到点云主显示区,并调用转换工具对点云数据进行转换操作,并加载显示的流程,代码很容易看明白。

node_modules目录感觉主要包含了electron和nodejs的一些环境以及依赖项。该模块组织的非常清晰,运行也正常,所以我一直是没有动过该目录下的内容。

libs目录是我们用到的一些js库。包括Potree库、Threejs库以及用到的点云转换可执行程序等。该目录直接按照设置好的使用即可,不用做任何修改。

Potree 001 Potree介绍的更多相关文章

  1. 附001.kubectl介绍及使用

    一 kubectl介绍 1.1 kubectl概要 kubectl控制Kubernetes集群管理器,使用Kubernetes命令行工具kubectl在Kubernetes上部署和管理应用程序.使用k ...

  2. 001.VNC介绍

    一 VNC介绍 VNC 服务是一个自由开源软件,采用RFB通信协议.RFB ("remote 帧缓存 ") 是一个远程图形用户的简单协议,因为它工作在帧缓存级别上,所以它可以应用于 ...

  3. 001.KVM介绍

    KVM介绍可参考: http://liqingbiao.blog.51cto.com/3044896/1740516 http://koumm.blog.51cto.com/703525/128879 ...

  4. 001——Typescript 介绍 、Typescript 安 装、Typescript 开发工具

    一. Typescript 介绍 1. TypeScript 是由微软开发的一款开源的编程语言. 4. TypeScript 是 Javascript 的超级,遵循最新的 ES6.Es5 规范.Typ ...

  5. 001 UI介绍

    UI全称:User Interface,即用户界面 UI的职责:负责人机之间的交互,它需要将关键信息,操作逻辑等展示给用户 UI在游戏中承担的职责: 1.游戏美术风格的重要组成部分 2.承担着重要的美 ...

  6. HTML 001 入门介绍

    HTML 教程- (HTML5 标准) 超文本标记语言(英语:HyperText Markup Language,简称:HTML)是一种用于创建网页的标准标记语言. 您可以使用 HTML 来建立自己的 ...

  7. 001.OpenShift介绍

    一 OpenShift特性 1.1 OpenShift概述 Red Hat OpenShijft Container Platform (OpenShift)是一个容器应用程序平台,它为开发人员和IT ...

  8. 附002.Minikube介绍及使用

    一 Minikube介绍 1.1 概述 Minikube是一种可以在本地轻松运行Kubernetes的工具.Minikube在笔记本电脑的VM中运行单节点Kubernetes集群,供希望尝试Kuber ...

  9. simtrace之探秘SIM卡中的世界

    0×00 关于SIM卡 众所周知SIM卡是一张插在手机上的小卡,其全称为Subscriber Identity Module 客户识别模块.不过,这个世界上并没有多少人知道SIM卡中的操作系统是基于j ...

  10. 开源网站管理工具—Altman

    0×00前言 之前用过几款webshell工具,有B/C的也有C/S的,有的只能用于php或者aspx,当然个人用得最多.觉得用得舒服的也只有菜刀了. 但是毕竟菜刀是好几年之前的产物了,而且也已经停止 ...

随机推荐

  1. 关于Jenkins-Item-Office 365 Connector-下的多选框的参数定义

    在Jenkins的Item中Office 365 Connector下,我们有时会使用到,多选框(复选框),目的是可选择多个多个条目赋值给指定的变量 然后在Build Triggers中可以进行引用, ...

  2. 基于SqlSugar的开发框架循序渐进介绍(15)-- 整合代码生成工具进行前端界面的生成

    在前面随笔<基于SqlSugar的开发框架循序渐进介绍(12)-- 拆分页面模块内容为组件,实现分而治之的处理>中我们已经介绍过,对于相关的业务表的界面代码,我们已经尽可能把不同的业务逻辑 ...

  3. YOLOv5】LabVIEW+OpenVINO让你的YOLOv5在CPU上飞起来

    前言 上一篇博客给大家介绍了使用opencv加载YOLOv5的onnx模型,但我们发现使用CPU进行推理检测确实有些慢,那难道在CPU上就不能愉快地进行物体识别了吗?当然可以啦,这不LabVIEW和O ...

  4. echarts在Vue项目中的实际运用效果图

    文章目录 1.在后台系统首页中.可以根据需求制作相应的图表 2.在Vue中使用echarts的详细过程参照这个链接 1.在后台系统首页中.可以根据需求制作相应的图表 2.在Vue中使用echarts的 ...

  5. 什么是subsignature和return-type-substitutable

    subsignature 什么是签名(signature) 方法签名组成:方法名+参数列表(参数的类型.个数.顺序) Java语言层面规定的签名是不包含返回值类型的: JVM层面规定的签名是包含返回值 ...

  6. SpringBoot报错: No identifier specified for entity: XXX.XXX.XXX.XXX

    今天练习的时候报错说是 : 没有为实体指定标识符 仔细看了实体类才发现忘记写了一些注解 用JPA写实体类时一些注解是必须的 @entity  标名本类是实体类 @table(name="表名 ...

  7. Codeforces Round #812 (Div. 2) D. Tournament Countdown(交互题)

    记录一下第一次写交互题 题目大意:一共有1<<n个人参加一场竞标赛,需要你通过比较两人的胜场来判断谁晋级,最终获得第一名 最多1/3*2^(n+1)次询问,每次询问query(a,b),如 ...

  8. Dockerfile 跨阶段多阶段使用 ARG 命令

    若要想 Dockerfile 的 ARG 命令可以跨多个阶段使用,需要有以下几步: 先在文件最前面使用 ARG 命令定义 然后在每个阶段分别引用 ARG 命令使用 一个示范的 Dockerfile 文 ...

  9. 顺序表代码总结——SqList

    在C++编译器下可直接运行 #include <stdio.h> #include <stdlib.h> #include <malloc.h> //顺序表存储结构 ...

  10. lvm+xfs的扩缩容

    ext4文件系统可以经行扩缩容操作,但xfs的文件系统只能扩容,无法缩容 所以如果需要进行xfs的缩容,可以先使用xfsdump备份文件系统,然后对逻辑卷(/分区)进行缩容操作(此时原xfs文件系统会 ...