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