8000 GitHub - tentone/potree-core at 2.0.3
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

tentone/potree-core

Repository files navigation

Potree Core 2.0

npm version GitHub version

  • This project was originally based on Potree Viewer 1.6 and is now since version 2.0 based on the shiukaheng fork of the Potree-Loader.
  • 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, the code was adapted from the original repositorys.
  • Support for pointclouds from LAS, LAZ, Binary files.
  • Some features require support for the following GL extensions
    • EXT_frag_depth, WEBGL_depth_texture, OES_vertex_array_object

TO DO

  • Supports logarithmic depth buffer (just by enabling it on the threejs renderer), useful for large scale visualization.
  • Point clouds are automatically updated, frustum culling is used to avoid unnecessary updates (better update performance for multiple point clouds).

How to use

Testing

  • The project can be build running the commands npm install and npm run build.

Demo

Example

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

const canvas = document.getElementById("canvas");

const renderer = new WebGLRenderer({canvas:canvas});

const geometry = new BoxGeometry(1, 1, 1);
const material = new MeshBasicMaterial({color: 0x00ff00});
const cube = new Mesh(geometry, material);
scene.add(cube);

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

const pointClouds = [];

const baseUrl = "data/test/";
const potree = new Potree();
potree.loadPointCloud("cloud.js", url => `${baseUrl}${url}`,).then(function(pco) {
   scene.add(pco);
	pointClouds.push(pco);
});

function loop()
{
   potree.updatePointClouds(pointClouds, camera, renderer);

	controls.update();
	renderer.render(scene, camera);

	requestAnimationFrame(loop);
};
loop();

Notes

  • Since potree-core is meant 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.
  • Removed classification and clipping functionality.
  • Removed Arena 4D point cloud support.
  • Removed Entwine Point Tile file support.
  • 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

Potree Converter

  • Use the (Potree Converter)[https://github.com/potree/PotreeConverter/releases] tool to create point cloud data from LAS, ZLAS or BIN point cloud files
  • Potree Converter 1.8 creates a multi file structure with each node as an individual file.
  • Potree Converter 2.1 creates a single file for all points and separates files for hierarchy index, its faster to create files. Requires a HTTP server configured for file streaming.
  • Tool to create hierarquical structure used for point-cloud rendering using potree-core.
  • There are two main versions 2.1 witch generates 4 contained files with point data, hierarchy,
  • To generate a folder output from a input file run the command .\PotreeConverter '..\input.laz' -o ../output

TXT2LAS

  • The potree converter tool only supports las and laz files, so textural file formats such as .pts, .xyz, have to be first converted into a supported format.
  • The TXT2LAS tool from the (LASTools)[https://github.com/LAStools/LAStools] repository can be used for this effect.
  • To run the tool use the command .\txt2las64 -i input.pts -ipts -parse xyziRGB -set_scale 0.001 0.001 0.001 -set_version 1.4 -o output.laz

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.

loadPointCloud

  • Method to load a point cloud database file
  • Potree.loadPointCloud(url, name, onLoad)

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
  • PointCloudTree

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

About

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

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published
0