Gaia Sky 3.3.0
Code Refactoring
- the largest change in this version by far is the complete refactoring of the internal model. We have moved from an object-oriented inheritance hierarchy to an entity component system (ECS).
- move render lists to Java collections.
- flatten object hierarchy by removing some classes, merging their functionality upwards.
- abstract attitude loading system, remove Gaia class, use heliotropic satellite.
- add
I18nFormatter
to reformat i18n files.
- remove old date formatting infrastructure (desktop, html, mobile) in favor of a direct approach.
- remove useless number formatting infrastructure.
Features
- enable minimizing focus info interface.
- adjust debug interface layout.
- key bindings file versioning. If the key bindings file starts with the line
#v[version]
, that version is compared to the default one and overwritten when necessary. That makes updating key bindings much easier.
- recompute UI scale at startup when starting with default config file.
- add back-buffer scale API call.
- add back-buffer scale controls to UI.
- add repository to
-v
information.
- rename fisheye post-processing effect and shader to reprojection. Update cubemap projection from fisheye to azimuthal equidistant.
- add shaders for Lambert equal-area, orthographic and stereographic projections.
- add re-projection GUI drop-down in preferences window. Add
setReprojectionMode()
scripting API call.
- include orthographic projection in panorama mode. Includes both hemispheres on the screen, side by side. Can be cycled through with
ctrl
+shift
+k
.
- Include "orthosphere" panorama mode -- orthospherical projection with both hemispheres overlaid to give a view of the celestial sphere from the outside.
- add new camera mode, orthosphere view, which includes the regular and the cross-eye orthosphere projections.
- add cross-eye view of the orthographic projection of the celestial sphere
- add support for KTX and ZKTX textures.
- change from thread to scheduled task to remove the mode change info pop-up.
- add mode change pop-up setting to enable or disable showing a pop-up with information when changing modes (panorama, planetarium, stereo, etc.).
- add GUI button to exit stereo mode.
- add new object type, 'cosmic locations', to mark the positions of interesting areas or regions.
- enable scene lights for shape objects when static light is off.
- new model attribute 'blendMode', which defaults to 'alpha' but can also be set to 'additive' to control the object blending.
- enable gamepad operation in welcome GUI.
- add zero-point to gamepad configuration.
- introduce gamepad support for spacecraft mode, remove 'Gaia scene' camera mode (can be mimicked with focus mode), refactor input controllers, fix default SDL gamepad mappings file.
- add several new functions to enable setting the camera state from scripts.
- add time zone to settings. Time zone can be either UTC, or the system default. Update date dialog year limits, fix time component layout.
- adapt raymarching effects work with ECS model.
- light glow effect now works with ECS model.
- expose post-processor properties as settings in configuration file.
- save configuration when closing dataset manager window.
- add popup notice when opening the keyframes window if component 'others' is not visible.
- add full screen bit depth and refresh rate to fully qualify selected full screen modes.
- improve layout and information of crash window.
- add notice when there are no datasets.
Bug Fixes
- disable tessellation on macOS by default.
- bug in latest version determination in version checker.
- remove unnecessary spacing in layout of focus info interface.
- trajectory size determination algorithm not accurate, breaks when adding points close to the origin.
- add model size attribute to compute solid angle for model objects more accurately.
- correctly query graphics device for resolution and apply scaling.
- toggling SSR and motion blur does not update depth state in some shaders.
- double definitions in shader libraries.
- render constellation boundaries as closed polygons in order to avoid artifacts.
- index errors in keybaord in controller GUI.
- back-buffer scale is now applied correctly (and only once), works with external view.
- remove angle from zenith from cubemap renderer in planetarium, use shader-based solution.
- prevent rendering titles if panorama mode is on.
- initialize position from coordinates object during initialization phase.
- land at location never returns. #674
- set foucs with
FocusView
object type. #671
- provide a correct index mapping for arbitrary attributes with string values.
- particle size of interactively loaded point cloud datasets.
- vertically flip UV coordinates of two-faced billboard to correct texture orientation.
- regression in billboard group rendering. #663
- update coordinates in invisible only when present. #662
- prevent runtime error due to non-invertible matrix in spacecraft entity.
- diffuse color contribution calculated incorrectly when nLights > 1 in normal shaders.
- names in star groups can now be localized, fix focus name in panel.
- translate strings of filters, shapes, datasets and minimap. #403
- moon orbits are recomputed more often.
- filters crash with instanced star renderers.
- modal windows made not collapsible by default.
- hotkey tooltip backgrounds.
- jump in Pluto's orbit due to deviation between full periods.
- highlight 'all visible' setting in quad-based star renderers.
- frame sequence number synchronized, value updated when opening preferences.
- use view angle instead of view angle apparent in go to object API call.
- increase number of vertices of minimap shape renderer, fixes crash in heliosphere minimap.
- typo in Jupiter English translation file, add meshes to data descriptor file.
- break link in dataset manager if too long.
- make sure direction and up vectors are orthogonal in camera transition call.
- increase size star point buffer when needed.
- null-check satellite attitude before getting quaternion. #402
- empty tips may crash Gaia Sky at startup.
- 'add scene graph object' event missing source object. #400
- remove phase of pi radians in default-model orbital elements.
- regression with libgdx 1.11.0 that caused vertical tooltips.
- null-check settings in crash reporter.
- workaround for libgdx backslash bug in asset manager. Fixes #398
- hide system cursor correctly with GLFW until libgdx 1.10.1 is released.
- use minimum width for debug interface to prevent dynamic resizing depending on content.
Build System
- move repository from Gitlab to Codeberg.
- update Gitlab references to Codeberg, when possible. Use Codeberg API for version checking.
- update changelog template repository to Codeberg.
- remove Gitlab CI file.
- extract documentation to own project, which is no longer a submodule.
- upgrade to libgdx 1.11.0 and LWJGL 3.3.1 --- this adds M1 Mac support.
- add aarch64 JRE to macOS bundle for M1 machines. Move to macOS single bundle archive from deprecated old single bundle.
- force safe graphics mode on M1 macOS.
- use default GC (G1) in favor of Shenandoah (only LTS).
- upgrade gradle wrapper version to 7.5.1.
Documentation
- update repository pointers to Codeberg.
- update in-app mastodon reference from cat to social, as it's in English.
- remove twitter link, add mastodon hashtag.
- improve comments on color maps GLSL code.
- add new panorama orthographic projection to API Javadocs.
- remove wrong license (leftover from old copy-paste) in fisheye fragment shader code.
- add contributor.
- typos and so.
Style
- mend variable names in about window to follow camel case.
- fix linter stylistic warnings in GUI and interfaces.