Engine fixes + 3D physics debug drawing!
Continuing to dog-food ImNui and our 3D functionality, we've surfaced a few more issues that have been ironed out! Additionally, we now offer 3D physics visualization in Gaia with the click of a button -
Additionally, we have a potentially important BREAKING CHANGE. Here's we've replaced Convex nomenclature with Concave nomenclature, thus flipping the semantics for said boolean in shapes that utilize. This is an important breaking change because it primarily affects data, such as in nugroup scenes created via Gaia. Fortunately, the solution is maximally straight forward - just go into your .nugroup files and globally replace this text True None None] with Convex None None]. That should cover this and only this specific change case. I hated to break data at this level, but in this case I felt like it was worth it. At some point we may have to introduce versioning to avoid this sort of thing, but I find it best to put that off until there's no alternative. And, for foundational stuff like this, I don't think you want to version this sort of breakage away anyhow. It's just something I should have gotten right the first time, but did not.
Also, for those with existing projects, make sure you follow the project update wiki here! - https://github.com/bryanedds/Nu/wiki/Updating-User%E2%80%90Created-Projects-on-Engine-Updates
- Change way templates detect transitioning out is from splash.
- Fixed imnui initialization indication bug.
- We're now expecting animated names WITHOUT the Armature| prefix by doing blender export with NLA Strips instead of Actions option checked!
- Fixed #961
- Creating groups in Gaia now properly undo-able.
- Removed some shader hacks that were making lighting look suboptimal in certain scenes.
- Had to restore the seamed shadow culling algorithm due to bigger regression without it.
- Fixed weird OS file lock on AssetGraph.nuag.
- Protecting light cutoff values.
- Removed use of PooledArray as it might be causing .NET lock-ups in the finalizer's lock expression.
- Removed pooled collections because they do not appear to be production-ready.
- Light config handled via render to make sure first frame isn't skipped.
- Implement ray cast for FreezerFacet.
- Partially fixed code reload facet synchronization.
- Clamping GameTime.progress.
- Assuming a size threshold before setting frozen parent to non-pickable and added info logging.
- Thawing copy-dragged frozen entities.
- Fixed TraversalInterpoledFacet hostory not working well as intended with editing.
- Using cached PresenceOverride now since it's actually simpler than the previous half-assed solution.
- Added World.getBodySensor.
- Added tryCast operator.
- Validating BodyShapeProperties in 3D physics.
- Made BodyId comparable (so it can be added to F# Sets and Maps.
- Got rid of silent throw in Log.error because it was just too annoying.
- Fix spatial tree synchronization bug.
- Added Sensor(Model/Surface)Dispatchers.
- Ripped out Observable property to simplify API.
- Made disabled 3D bodies no longer part of ray cast query.
- Improved efficiency of dual rendering.
- Added saturate operator.
- Fixed "Paste Entity as Child" context menu bugs.
- Changed SSVF defaults.
- Attempt to fix shadow desired not be accounted for in light shadow sorting.
- Added World.getSelectedEntities, World.getSelectedEntitiesSovereign, ...
- Fixed eval regression in Gaia.
- Stopped excluding Visible property from propagating.
- Attempt to fix enabled and visible set via SetMountOptWithAdjustment.
- Different implementation of billboard rotation.
- Added mountee / mounter entity queries.
- Making "Scene" the default group because it's more convenient for actual game authoring to have that be default selected and often in ImNui, you don't even want a separate Gui group.
- Removed used of Gui groupss from ImNui templates and demos (the separation isn't as apropos in ImNui).
- Missing properties are now attached on code reload.
- Renamed getEntitiesSovereign to getSovereignEntities for consistency.
- Fixed #977
- Optimized imnui processing.
- Fixed bug in SetMountOptWithAdjustment.
- Exposed more ordered way to subscribe to related events via ImNui.
- Got rid of seemingly unnecessary SpineSkeletonEvent type.
- Reorganized ImNui-specific event unions away from being a non-data category.
- Improved and stream-lined ScreenDispatcherImNui.TryProcess implementation.
- More sensible exponential shadow defaults.
- Changed SsvfAsymmetryDefault to something more sensible.
- Fixed #980
- Fixed regression that was probably causing the actual issue in #975
- 3D physics debug rendering.
- Making rigid bodies non-static when their body type is set to non-static.
- Fix ImNui regression with programmatically-created screens.
- Unconditionally zero-processing screens.
- Added Convex property to allow disabling for concavity.
- Added Convex field to PointsShape.
- BREAKING CHANGE - Replaced Convex nomenclature with Concave nomenclature.
- Exposed SelectedScreenOpt from world instance for easier debugging.
- Exposed DesiredScreen as well.
- Added TryGet members, albeit in a hacky way.
- Hiding CharacterProperties in Gaia when BodyType isn't a character.
- Fixed incorrect sun translation approach in Terra Firma. Copy over said code if your project used that code from TF.
- Added new Profile type as well as new Bounds semantic for it, and replaced the Convex / Concave flag with it in complex shapes.
Full Changelog: v18.9.0...v18.10.0
