All Projects → tentone → potree-core

tentone / potree-core

Licence: other
Potree point cloud viewer library core components for easier integration in a three.js project.

Programming Languages

javascript
184084 projects - #8 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to potree-core

Plasio
Drag-n-drop In-browser LAS/LAZ point cloud viewer. http://plas.io
Stars: ✭ 349 (+296.59%)
Mutual labels:  threejs, pointcloud
three-plain-animator
Three-Plain-Animator is a package for threejs developers to support 2D animations.
Stars: ✭ 56 (-36.36%)
Mutual labels:  threejs
icosa-viewer
3D Viewer component for Tilt Brush / Open Brush, Google Blocks files and their derivatives
Stars: ✭ 24 (-72.73%)
Mutual labels:  threejs
three-mithril-ts
THREE.js, Mithril.js, TypeScript starter project
Stars: ✭ 34 (-61.36%)
Mutual labels:  threejs
three-strip
Generate strip geometry for three.js. Supports taper, twist, dasharray and uvgen.
Stars: ✭ 15 (-82.95%)
Mutual labels:  threejs
generative
Creative coding experiments
Stars: ✭ 71 (-19.32%)
Mutual labels:  threejs
react-with-threejs-example
An example project integrating React with three.js
Stars: ✭ 27 (-69.32%)
Mutual labels:  threejs
threejs-dem-visualizer
Visualizing ASTER and LANDSAT satellite data using THREE.js
Stars: ✭ 35 (-60.23%)
Mutual labels:  threejs
vuletube
Starter project for vue in combination with typescript. Getting response for youtube search. Call server part for saving videos. Use videos in three.js 3d port view. Control vuletube site with hands (NUI) also with voice command.
Stars: ✭ 12 (-86.36%)
Mutual labels:  threejs
Photo-Sphere-Viewer
A JavaScript library to display Photo Sphere panoramas.
Stars: ✭ 1,198 (+1261.36%)
Mutual labels:  threejs
WebGL-Billiards
ThreeJS based 8-ball pool
Stars: ✭ 28 (-68.18%)
Mutual labels:  threejs
gamedex
👾 The code for my game dev + computer graphics experiments on YouTube.
Stars: ✭ 165 (+87.5%)
Mutual labels:  threejs
tycho
🪐 A real-time, WebGL-based interactive simulation of our solar system.
Stars: ✭ 90 (+2.27%)
Mutual labels:  threejs
codrops-texture-projection
Article about Texture Projection in Three.js
Stars: ✭ 75 (-14.77%)
Mutual labels:  threejs
three-musketeers
A simple module to introspect, debug and test any THREE.js application.
Stars: ✭ 30 (-65.91%)
Mutual labels:  threejs
Tools Merge Image PointCloud
Project the PointCloud to the image & Generate the LiDAR PointCloud with color.
Stars: ✭ 39 (-55.68%)
Mutual labels:  pointcloud
Big-Data-Demo
基于Vue、three.js、echarts,数据可视化展示项目,包含三维模型导入交互、三维模型标注等功能
Stars: ✭ 146 (+65.91%)
Mutual labels:  threejs
three-to-cannon
Convert a THREE.Mesh to a CANNON.Shape.
Stars: ✭ 207 (+135.23%)
Mutual labels:  threejs
D3Feat.pytorch
[PyTorch] Official Implementation of CVPR'20 oral paper - D3Feat: Joint Learning of Dense Detection and Description of 3D Local Features https://arxiv.org/abs/2003.03164
Stars: ✭ 99 (+12.5%)
Mutual labels:  pointcloud
SpinNet
[CVPR 2021] SpinNet: Learning a General Surface Descriptor for 3D Point Cloud Registration
Stars: ✭ 181 (+105.68%)
Mutual labels:  pointcloud

Potree Core

npm version GitHub version

  • This project is based on Potree V1.6.
  • Potree is a web based pouint cloud visualizer project created by Markus Schütz.
  • This project contains only the main parts of the potree project adapted to be more easily used as a independent library (I have only adapted code from the original repository).
  • Support for pointclouds from LAS, LAZ, Binary files and Grehound server.
  • Point clouds are automatically updated, frustum culling is used to avoid unnecessary updates (better update performance for multiple point clouds).
  • Supports logarithmic depth buffer (just by enabling it on the threejs renderer), useful for large scale visualization.

How to use

  • Download the custom potree build from the build folder or add it to your project using NPM.
  • Include it alonside the worker folder in your project (can be found on the source folder).
  • Download threejs from github repository.
  • The build is a ES module, that can be imported to other projects, it assumes the existence of THREE namespace for threejs dependencies.

Demo

  • Live demo at https://tentone.github.io/potree-core/
  • Contains the same model multiple times stored in different formats.
  • Double click the models to raycast the scene and create marker points.

Example

  • Bellow its a fully functional example of how to use this wrapper to load potree point clouds to a THREE.js project
var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera(60, 1, 0.1, 10000);

var canvas = document.createElement("canvas");
canvas.style.position = "absolute";
canvas.style.top = "0px";
canvas.style.left = "0px";
canvas.style.width = "100%";
canvas.style.height = "100%";
document.body.appendChild(canvas);

var renderer = new THREE.WebGLRenderer({canvas:canvas});

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);

var controls = new THREE.OrbitControls(camera, canvas);
camera.position.z = 10;

var points = new Potree.Group();
points.setPointBudget(10000000)
scene.add(points);

Potree.loadPointCloud("data/test/cloud.js", name, function(data)
{
	var pointcloud = data.pointcloud;
	points.add(pointcloud);
});

function loop()
{
	controls.update();
	renderer.render(scene, camera);
	requestAnimationFrame(loop);
};
loop();

document.body.onresize = function()
{
	var width = window.innerWidth;
	var height = window.innerHeight;
	renderer.setSize(width, height);
	camera.aspect = width / height;
	camera.updateProjectionMatrix();
}
document.body.onresize();

API Reference

  • The project has no generated documentation but bellow are some of the main configuration elements.
  • A example can be found in the repository index.html file.
Potree.BasicGroup
  • Container that stores point cloud objects and updates them on render.
  • The container supports frustum culling using the point cloud bouding box.
  • Automatically stops updating the point cloud if out of view.
  • This container only support pointColorType set as RGB, pointSizeType set as FIXED and shape set as SQUARE.
Potree.Group
  • Complete container with support for all potree features.

  • Some features require support for the following GL extensions

    • EXT_frag_depth, WEBGL_depth_texture, OES_vertex_array_object
Potree.loadPointCloud
  • Method to load a point cloud database file
  • Potree.loadPointCloud(url, name, onLoad)
Potree.PointCloudMaterial
  • Material used by threejs to draw the point clouds, based on RawShaderMaterial

  • shape

    • Defines the shape used to draw points
      • Potree.PointShape.SQUARE
      • Potree.PointShape.CIRCLE
      • Potree.PointShape.PARABOLOID
  • pointSizeType

    • Defines how the point cloud points are sized, fixed mode keeps the same size, adaptive resizes points accordingly to their distance to the camera
    • Possible values are
      • Potree.PointSizeType.FIXED
      • Potree.PointSizeType.ATTENUATED
      • Potree.PointSizeType.ADAPTIVE
  • pointColorType

    • Defines how to color the drawn points
    • Possible values are
      • Potree.PointColorType.RGB
      • Potree.PointColorType.COLOR
      • Potree.PointColorType.DEPTH
      • Potree.PointColorType.HEIGHT
      • Potree.PointColorType.INTENSITY
      • Potree.PointColorType.INTENSITY_GRADIENT
      • Potree.PointColorType.LOD
      • Potree.PointColorType.POINT_INDEX
      • Potree.PointColorType.CLASSIFICATION
      • Potree.PointColorType.RETURN_NUMBER
      • Potree.PointColorType.SOURCE
      • Potree.PointColorType.NORMAL
      • Potree.PointColorType.PHONG
      • Potree.PointColorType.RGB_HEIGHT
  • logarithmicDepthBuffer

    • Set true to enable logarithmic depth buffer
  • weighted

    • If true points are drawn as weighted splats
  • treeType

    • Defines the type of point cloud tree being drawn by this material
    • This should be automatically defined by the loader
      • Potree.TreeType.OCTREE
      • Potree.TreeType.KDTREE
  • Potree.PointCloudTree

    • Base Object3D used to store and represent point cloud data.
    • These objects are created by the loader

Notes

  • Since potree-core is mean to be used as library and not as a full software as potree some features are not available.

  • EDL shading is not supported by potree core (might be added later).

  • GUI elements were removed from the library

    • PotreeViewer
    • Controls, Input, GUI, Tools
    • Anotations, Actions, ProfileRequest
    • Potree.startQuery, Potree.endQuery and Potree.resolveQueries
    • Potree.timerQueries
    • Potree.MOUSE, Potree.CameraMode
    • PotreeRenderer, RepRenderer, Potree.Renderer
      • JQuery, TWEEN and Proj4 dependencies

Building

  • The output javascript is a module built using rollup.
  • The project can be build running the commands npm install and npm run build.

Point Clouds

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].