Coder Social home page Coder Social logo

zhuhaijun753 / pointcloud-viewer Goto Github PK

View Code? Open in Web Editor NEW

This project forked from cgtuebingen/pointcloud-viewer

0.0 0.0 0.0 1.59 MB

Efficient Large-Scale Point-Cloud Viewer based on OpenGL

Home Page: http://pointcloudviewer.org

License: GNU General Public License v3.0

CMake 1.25% C++ 98.49% GLSL 0.26%

pointcloud-viewer's Introduction

Point Cloud Viewer

Build Status TensorFlow

This tool allows viewing huge point clouds and export a flight through (as used in this video).

Beta version, not recommended for usage in commercial productions!!

Build on Ubuntu

Install dependencies

sudo apt install build-essential cmake
sudo apt install qt5-default libqt5opengl5-dev libboost-all-dev

Clone with

git clone [email protected]:cgtuebingen/pointcloud-viewer.git
cd pointcloud-viewer/
git submodule update --init

Compile with

mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ../src
make -j8

Run with

pointcloud_viewer/pointcloud_viewer

Usage: Basics

Load a Point Cloud with the menu bar:

Project > Import Pointcloud

There are two available navigation schemes for navigating the 3d view:

  • Blender
    View > Navigation > Blender
  • MeshLab
    View > Navigation > MeshLab

Blender Inspired Navigation Scheme

In the Blender Navigation scheme, you will see a grid:

screenshot

You have three different ways to navigate:

  • First Person Navigation
    This Navigation resembles the movement of a first person shooter game.

    1. Enter the first person navigation by pressing the shift key+the f key
    2. Move around
      • Look around by moving your mouse
      • Move forward/backward by holding the w key/s key
      • Move left/right by holding the a key/d key
      • Move up/down by holding the e key/q key
      • You can roll the camera by scrolling with your mouse wheel
        • To reset the rolling, just press the middle mouse button while holding the ctrl key.
    3. Leave the first person navigation
      • Keeping the new position by pressing the enter key or the left mouse button
      • Undo the position and reset to the old one by pressing the esc key or the right mouse button
  • Turntable Navigation
    This Navigation allows a quickly switching the perspective on the point cloud.

    • For turning the view around the object, hold the middle mouse button and move your mouse.
    • For shifting the view orthogonal to the view direction, hold the shift key and the middle mouse button and move your mouse.
    • For changing the distance to the object, scroll with your mouse wheel or hold the ctrl key and the middle mouse button and move your mouse.
  • Selecting Points
    You can quickly select a point and move towards it.

    • To select a single point, right click it with the right mouse button.
    • To center the view around the selected point, press (the comma key).

MeshLab Inspired Navigation Scheme

In the Blender Navigation scheme, you will see a trackball:

screenshot

You have three different ways to navigate:

  • First Person Navigation

    • Usage is the same as in the Blender Navigation Scheme
  • Trackball Navigation
    This Navigation allows a quickly switching the perspective on the point cloud.

    • For turning the view around the object, rotate the trackball by moving it with the mouse while holding the left mouse button.
    • For shifting the view orthogonal to the view direction, move the trackball with the mouse while holding the ctrl key and the left mouse button.
    • For changing the distance to the object, scroll with your mouse wheel or move the trackball with the mouse while holding the shift key and the left mouse button.
  • Selecting Points
    You can quickly select a point and move towards it.

    • To select a single point, right click it with the right mouse button.
    • To center the view around a point, double click it with the left mouse button or the middle mouse button

Additionally, you can change the render properties:

  • To change the point rendering size, hold the alt key and scroll with your mouse wheel

Usage: Animation

You can animate the camera by defining a camera path. The path consists out of multiple key-points.

If you have already a ready to use camera path, you can import it with the menu bar:

Flythrough > Import Path

Alternatively, you can create your own path by navigating the camera and add a new key-point by pressing the i key.

More options for changing the flythrough camera animation can be found in the Flythrough-Tab (red):

screenshot

  • With the Flythrough Menu (yellow), you can
    • export the current flythrough path
    • import an already created flythrough path
  • In the Keypoints List (blue), you can reorder keypoints and remove unwanted keypoints.
  • In the Playback Area (green), you can modify the
    • duration of the whole flythrough
    • velocity of the camera
    • interpolation between points

Usage: Render

You can render the frames of the animation to single png files. To do this, go the the Render-Tab (red):

screenshot

  • With the Render Button (blue), you start the Rendering Process and start the rendering process. If this button is grayed out, you need to create a key-point for the animation (you can press the i key for creating a single key-point at the current camera location).
  • You can customize the style
    • Change the brightness of the background (0 is black, 255 is white and 54 the default brightness)
    • Change the point size

Typical usage: Data Inspection

You can render the frames of the animation to single png files. To do this, go the the Data-Inspection-Tab (red):

screenshot

Here, you can

  • Build the KD-Tree (blue)
  • See information of the selected point (green)

In order to be able to pick single points, you need to build the KD-Tree first. You can to this with the bug Unlock Point Picker button. In order to automatically build the KD-Tree every time you load a point-cloud, check the Automatically Unlock after loading checkbox.

If you try to pick a point (by clicking the right mouse button) without building the KD-Tree first, a remonder dialog will open and allow you to immediately build the KD-Tree:
screenshot

Known Issues

Currently, no optimization technique is applied. When the pointcloud size exceeds the available video memory, the application will probably crash.

pointcloud-viewer's People

Contributors

robert42 avatar patwie avatar sherholz avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.