I'll upload new binaries very soon. Please note that Gradle >= 8.0 is necessary to build Ardor3D. You have to skip the tests (unfortunately) because of a problem on EasyMock by entering "gradle build -x test".
P.S: I'll drop Maven support very soon when I can generate the Java API documentation with Gradle.
I have just discovered that the mouse management works very bad when the vertical synchronization is disabled, which is the case by default in T.U.E.R. Re-enabling it solves my biggest concern. I had been sad for years because of this bug.
To sum up, when you use FirstPersonControl, don't disable vertical synchronization.
I'm updating the roadmap:
- Gradle as single build tool (abandon Maven)
- Java 17 (removal of deprecated calls, mostly done)
- OFF import (work in progress)
- Improvements of unit tests with TestNG
- Improvements of the partial compatibility with Renanse's Ardor3D
- Inconsistent management of relative and absolute positions in ardor3d-math (for example in the way of managing the position of the buffers)
- Revamping and improvements in the exporters (allowing exports of complicated scenegraphs with hierarchies of nodes)
- Strengthening of the documentation (mostly done but the user's guide still lacks some explanations)
- Import MD2 models more accurately as an option (i.e add an option to split the models into more parts without the useless links that may cause some problems when trying to detect collisions)
- Drive some core utilities overridable (i.e avoid (ab)using the "static" keyword in those utilities)
- Drive all render state utilities overridable
- ardor3d-jogl-jfx based on NewtCanvasJFX (doable now as I use JOGL 2.4.0)
- Java 21 (native memory management in the core using java.lang.foreign.MemorySession and MemorySegment)
- JPMS (modularization, will require some changes in JOGL)
- Full support of relative mouse coordinates (will require some changes in JOGL)
- Constructive Shape Geometry
- BVH import
- GLTF import and export (the easiest feature to implement for this version)
- Abandon ardor3d-ui
- ardor3d-web-ui (inspired by RmlUI)
- HTML parser (JSoup)
- CSS parser (jStyleParser/CSSBox, JLessC, Flying Saucer or CSSParser)
- HTML/CSS renderer (using a subset of CSSBox or Flying Saucer, requires to imitate Graphics2D)
- WebGPU renderer
- A brand new name for the project
The support of True Type fonts has been canceled as I have lost the contribution :(
Yes, I'd prefer using JOGL build-in support of TTF instead of reinventing the wheel, there are several things that could be shared or moved into JogAmp, I need to spend much time in evaluating the CSS parsers.
I committed the very first blueprint of the OFF importer last night. I'll support only a subset of this file format, I've found no binary files, the specification mentions an include file that I've failed to find even inside Geomview's source code, I'll support only ASCII files with several coordinate layouts:
- 1D, 2D, 3D, 4D (homogeneous coordinates)
- colors or normals assigned to vertices (COFF, NOFF, CNOFF) or faces
An exporter would be useful too but in the worst case, Meshlab does a very good job. The OFF importer will be included in the version 1.0.
Many webpages mention only the most common layout which is very rudimentary with only 3D vertices and faces with colors without normals and without texture coordinates. Some programs generate files that violate a little bit the specification by writing the off keyword on the same line that the number of vertices. I have found no example of color map, which is stored in a separate file named cmap.fmap. The data can be arranged in several orders depending on the off keyword.
The OFF importer is almost ready, I'll have to handle homogeneous coordinates. It supports only triangles and quads for now whereas some files can contain concave polygons. There's some room for improvement.
I'll upload a last binary build made with Maven before dropping Maven once for all before the end of the week. I'll have to update the documentation as it lacks numerous precious pieces of information unlike the tutorial I wrote for OpenJFX and Java3D.
I'll try to upload the JARs into the JogAmp Maven development repository. I think that a small example using Gradle in the documentation would be warmly welcome.
The next build will require at least Java 20. I'm currently fixing the warnings on deprecated URL constructors but I'm unsure what to do. I'll make this next build with Gradle. Maven build scripts are going to be removed very soon as planned.
The new binary build (including its Java documentation) has just been uploaded. Gradle was used to generate everything except the Java documentation because I don't know how to aggregate the documentation of several sub-projects into one documentation. Maven was used to generate the Java documentation. When this problem is solved, Maven will be dropped once for all.
What's new in this build?
- Java 19 as minimal required version
- OFF importer
- Audio system
- JOGL 2.4.0
- misleading interleaved VBO support removed
- a new method to retrieve the normals of a primitive, in indexed and not indexed mesh data
- better management of the both representations of zero
The tutorial still needs an important update (work in progress).
- JARs in the JogAmp Maven development repository
- Java 20 or 21 as minimal required version
- abandon of Maven as a build tool