Gaia Sky 3.3.0
By tsagrista on
📢 Gaia Sky 3.3.0 available now!
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.
You can get this release in our repository.