Skip to content

Releases: c42f/displaz

0.4.0

26 May 14:07
Compare
Choose a tag to compare

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

Release 0.3.2

10 Aug 14:15
Compare
Choose a tag to compare

Relative to release 0.3.1, this release contains major rendering fixes for Intel drivers on windows.

The windows driver for Intel HD graphics hardware appears to have some bugs resulting in severe rendering artifacts. This release contains small workarounds for the currently known problems:

  • Tweak to ensure depth testing is turned on so that distant objects appear behind foreground objects
  • Blacklist gl_FragDepth/gl_FragCoord shader features on windows+intel to avoid various odd rendering artifacts (dark points disappear; light points are squares rather than circles)

Release 0.3.1

19 Apr 22:10
Compare
Choose a tag to compare

Hotfix for last minute bug introduced in 0.3.0 las classificaton reader.

Release 0.3.0

19 Apr 14:59
Compare
Choose a tag to compare

New features

  • Data set interface
    • Display loaded datasets in a list
    • Control visibility of each dataset individually
  • Load files in the background for improved GUI responsiveness
  • Point selection mode based on return index
  • Generalized point attributes
    • Point attributes with arbitrary names may be loaded from file, and will
      be sent to any loaded shader which supports them.
    • Attributes may be 8,16,32 bit (un)signed integers, or 32 or 64 bit
      floating point numbers. Vector, arrays and color semantics are
      supported.
    • Integer shader attributes for non-scaled values
  • Experimental language bindings
    • Allows data to be sent to the displaz process from various languages via
      files and the displaz remote socket interface.
    • matlab, python, julia, C and C++11.
  • Ply support
    • Support point clouds in ply format
    • Support meshes with "triangle" element
    • Support displaz native ply point cloud format
    • General polygons (rendered as outlines)
  • Socket interface improvements
    • Control the dataset list externally using -add and -clear command line options
    • Camera pitch,roll,yaw and view distance may be automated from the command line
  • Experimental hierarchical point cloud generator ("dvox") and displaz viewer
    support for very large files.

Tweaks

  • Improved user guide and general documentation
  • Screenshot utility
  • Menu item to add files without closing current ones
  • Progress bar with text file reader
  • Use las "extended number of points" entry for large files
  • Remove FILE_LIST shader metadata hack (deprecated in favour of data sets UI)

Bugfixes

  • Avoid crashing with drag & drop of non-files
  • Correctly read truncated las files
  • Load line and mesh colours correctly
  • Set sensible default camera distance for meshes
  • Avoid crashing with files containing zero points
  • Avoid crashing when shader fails to compile
  • Don't crash when loading a large file allocates too much memory.

Internal changes

  • Build cleanups
    • Separate third party build system
    • Embedded GLEW
    • Make LAS input an optional dependency
    • Detect git version changes
    • Upgrade to LIBlas 150406
    • Update PDAL support for changing API
  • Refactor geometry classes
  • Refactor file loader
  • Las colors are loaded as uint16 to save memory
  • Avoid deprecated glsl constructs
  • Frustum culling for faster rendering

Release 0.2

24 Nov 06:51
Compare
Choose a tag to compare

New features:

  • Incremental rendering for large point clouds, including dynamic
    estimation of allowable interactive point count.
  • Save and load shaders: Menu items for the GUI, and a command line
    option to set the shader on startup. Also install shaders rather than
    embedding them to improve hackability.
  • Single instance support: new files now open in an existing displaz
    instance, unless -noserver is specified on the command line
  • Drag and drop to open files
  • Html documentation in GUI
  • Binary installer for windows

Tweaks:

  • New point colouring mode based on file number in default shader
  • Proper console help text and console debug output on windows
  • Log Euclidian distance between consecutive selected points
  • Support reading colour from .ply files
  • Cylindrical projection shader
  • Increase near clip plane to reduce z-fighting
  • Carefully acknowledge with third party licenses in binary distribution
  • Version numbering based on git-describe

Bug fixes:

  • Fix for older ATI drivers which require #version to come before #define
  • Fix display of zero point size on non-nvidia hardware
  • Fix uninitialized shader variables when loading from text file
  • Fix crash when opening text files containing zero points

Internal changes:

  • Octree data structure for better rendering and search
  • Make building the dependencies easier
  • Rearrange source tree

v0.1.1

09 Nov 06:12
Compare
Choose a tag to compare
  • Fix shader bug for ATI drivers
  • Add colour-by-file mode to standard shader

v0.1

09 Nov 06:07
Compare
Choose a tag to compare

First release. Major features:

  • Display point clouds using user-editable shaders
  • GUI elements for controlling shader uniforms
  • Point cloud simplification for frame rate control
  • Simple rendering of meshes and lines (non-flexible, non-editable shaders)
  • For points, input of .las, .laz, and basic .txt import
  • For meshes and lines, input of .ply files