|
New features in 2.1.02022, 24th May2D charts improvedThe layout of 2D charts is now much more accurate. The Y axis label is now vertical and legends can be displayed in the corners of the chart. Tutorials show how to create 2D charts for surfaces, scatters and lines. The great thing is that 2D remains a particular case of a 3D chart. In this regard, the next version will allow displaying XZ and YZ in addition to the existing XY dimensions. As for 3D, it supports rendering in GPU (JOGL), CPU (EmulGL/jGL), and can cope with HiDPI and non HiDPI monitors.
Text rotation and scaleThe new TextRenderer is able to rotate text. Axis labels can be parallel to an axis, not only horizontal or vertical. Text can also be kept visually the same size while switching from HiDPI to non HiDPI monitor. This helps keep the same chart layout and preserve readability of the chart. The TextRenderer supports all Unicode characters and all fonts made available by java.awt.Font.
Displaying 3D contourDisplaying 3D contour required being able to address complex rendering issues with coplanar objects, which is now solved. The stencil buffer provided by OpenGL indeed allows dealing with Z-fighting situations where polygons override lines that are coplanar to it.
ClippingOne can configure the scene graph with clipping planes, which allows ignoring any part standing outside of an area. It is especially useful to zoom on an area and avoid displaying the complete object standing outside of the expected bounds.
Light support for volume visualizationLights improve understanding the shape of a volume with uniform colors. Lights support more settings than before and can also be synchronized to the camera to always have a clear view of what stands in front of the viewer.
More compatibility for GPU renderingWe now support Apple M1 for native charts. Native charts have been verified on MacOS 10, 11, Windows 10, Ubuntu 20, on Java 9, 14 and 17. We invested a lot on JOGL and provided a handy compatibility matrix that also provides a list of workarounds for failing situations. More performance for GPU renderingVBOs have been improved to use faster buffers and also to allow sharing vertices among elements of a geometry. Multiple sharing schemes are available (see DrawableVBO2 documentation). More performance for CPU renderingEmulGL, introduced at version 2.0, avoids a dependency to native OpenGL and GPU which may fail to work with some combinations of {OS, GPU, JDK}. Rendering in CPU offers much better portability at the cost of performance when rendering a lot of polygons.
In addition to the existing optimization tricks, a dynamic level of detail system is added to allow the API to select a coarser representation of an object when rotation is asked. The extreme case is the display of the bounding box instead of the object itself just during rotation. All is automatic and made to keep the most detailed representation that does not go beyond a target rendering time. More compatibility for CPU renderingjGL has been ported to SWT, allowing to implement EmulGL for SWT in the next version. More testingGithub Actions allowed to create a build system able to run unit tests on macOS 10.15, macOS 11.4 (with M1), Ubuntu 20 and Windows 10, for JDK 9 and 14, running on real hardware (not virtual machines). ITTests (integration tests) in module jzy3d-tests-java9 allow verifying charts as they are displayed in various situations (Swing/GPU, AWT/GPU, AWT/CPU). Baseline images are generated per hardware since there are subtle differences in the images generated by each hardware. MTest (manual tests) allow verifying charts while they move from one monitor to another. Other
Maven configuration
As of 2.0.0, Jzy3d artifacts have been splitted to be able to distinguish core java classes, native GL implementations, emulated GL implementation.
Maven dependencyFor emulated OpenGL
For native OpenGL in AWT
For native OpenGL in Swing
For native OpenGL in SWT
Jzy3d maven repository
Downloading the jarsYou can download jars manually from the Maven repositories :Documentation
|
|