Hi everyone,
Jzy3d is now at version 2.0 with the following updates.
EmulGL & refactoring of the drawing object model
A new
CPU-based OpenGL renderer is born, providing an enhanced portability. Traditional
GPU rendering offers great performance but sometimes hit a compatibility issue for some rare {OS, JDK, GPU} combination. EmulGL processes the 3D scene inside the JVM only with rendering time below 40ms for most surface and scatter charts. EmulGL uses
jGL, a pure Java implementation of the OpenGL 1 specification. EmulGL remains relevant for simple charts. Native charts (using JOGL) remain the preferred option for fast rendering of very large geometries, volumes or rendering involving shaders.
Many thanks to Johan Jeppsson and
Thermocalc to support this improvement.
Chart tests
Making big changes in the framework required more test tools to ensure non regression.
- Jzy3d is now built by Github CI rather than Travis CI.
- Integration tests are based on pixel-wise comparison of chart to a baseline image. Note that these tests are still sensitive to thin differences between {JVM;OS} and are intended to be stable on my computer. These tests are not ran by Github CI.
- Unit tests are based on mocks of the JOGL GL interface. Other mocks are built with Mockito.
- A set of OpenGL debugging tools has been added to the library to investigate bugs of the library visually.
Volume charts
Tutorials and documentation improvements
The Developer Guide Example Code 2.0 are already ported to Jzy3d 2.0 (the PDF Book will be updated soon). This may be usefull to you if you need lot of code examples for 2.0.
The readme files on the Github repo better explain how to use the framework and how it is built. Child modules will be better documented in the future.
Improvements in previous versions
Jzy3d 1.0.2
- Legends can be easily rendered with Java2D
- LineStrip now supports stippling patterns to easily draw dotted or dashed lines
- Squarifiers : Jacob Filik added multiple ways of scaling the chart inside the axis box
Jzy3d 1.0.1
2.0.0 Release Status
- Master branch of the API is on 2.0.0-SNAPSHOT, verified by Github CI
- Deployed from my computer to Jzy3D Maven repository
- I wait for 2.0.0 final release to upload javadoc
Remaining work before final release
- Getting feedback from you
- Finalizing few refactors to prune and simplify the object the model
- Improve portability of non regression tests
- Maybe (?) fix JavaFX offscreen rendering OR use the new JOGL Newt Canvas for JavaFX. At least should extract the project out of the API as building JavaFX with recent JDK is difficult (at least to me). Any feedback on the relevance of maintaining Jzy3d JavaFX charts is welcome
Happy 3D!
Martin