Skip to content

0.4.0

Latest
Compare
Choose a tag to compare
@c42f c42f released this 26 May 14:07
· 123 commits to master since this release

There have been a lot of changes since 0.3.1, with most of them focussing on
making displaz "more hackable": We've added features to make it even easier to
control the 3D window from an external program, and to get displaz interface
events back into the external program.

There's also been a bunch of graphical improvements to allow displaying more
types of 3D data alongside point clouds. Here's a big list of features

Hook key events via the command line API

  • The -hook option allows events to be piped through to a listening
    process via the IPC interface, which can then respond with an alteration to
    the 3D scene, allowing simple interactive applications to be built by
    combining the language of your choice with the displaz 3D window.

Modify point clouds efficiently without reloading them

  • The attributes of points in a point cloud can now be mutated in place by
    loading a specially constructed ply file using the -modify option

More command line API additions

  • -annotation to add text annotations to the 3D window
  • -querycursor command for position of 3D cursor
  • -label option to label datasets with a name
  • -unload to remove a data set
  • -quit option to exit displaz
  • -viewposition to set the 3D cursor centre
  • -viewrotation sets the viewing angles using a full rotation matrix for
    scripting simplicity.

API language binding examples

  • Simplistic C bindings
  • Split out julia bindings into Displaz.jl
  • Minor improvements to most bindings

3D window - graphical features

  • Support for simple texture mapping of 3D ply meshes
  • Triangulation of arbitrary polygons
  • 3D axis direction legend
  • Various shader tweaks
  • Improved clipping plane heuristic, to avoid some of the typical clipping
    issues. Not perfect, but a lot better for viewing dense data close up.
  • OpenGL draw order improvements

Other Features

  • New icon
  • Shift+left click centres the view - for with mice without a usable centre
    button.
  • Centre cursor is much faster for large point clouds
  • Error message reporting for ply reader
  • Rework point selection algorithm for robustness
  • Move all shader handling to a shader menu for clarity.
  • Qt5 is the default version of Qt. Qt4 (possibly) still supported on linux,
    but this will be removed in the next version.
  • Syntax highlighting in shader editor

Breaking changes

  • Opening new datasets does not close existing ones. To do this, use the
    -clear flag explicitly
  • Datasets are deduplicated based on label / filename. You now need to use
    -add to override this if you want to load two different datasets of the
    same name.
  • Some changes to the shaders may take a little getting used to

Bug fixes

  • Much more robust interprocess communication, to allow scripts to drive
    displaz with as many requests as they like. Including robustly starting
    exactly one instance of displaz.
  • Ply reader fixes to avoid crashes with broken ply
  • Workarounds for rendering artifacts on Intel GPUs
  • Only recenter view when loading (not removing) geometry

Windows-specific bug fixes

  • Open las files with arbitrary unicode names on windows.
  • Better behaviour starting displaz on the windows command line - "dual mode"
    interface with command line and GUI inspired by the devenv.{com,exe}
    approach.
  • Disable gl_FragDepth on windows intel drivers. It's just buggy.
  • Various interprocess communication bug fixes

Internal changes

  • Use catch framework for tests
  • Use Travis and Appveyor for automated builds on Linux, OSX and Windows.
  • Source code rearrangement
  • Port to OpenGL 3.3
  • Update to rply-1.1.4
  • Update to GLEW-2.0.0