Beta 2025.1.28.1216

From Resonite Wiki

Beta 2025.1.28.1216 is a Resonite version released on 2025/01/28.

The following notes were sent by Frooxius:

Hello everyone! I got a whole bunch of things for you today!
First, you now have full control over the global ambient lighting in the world! The automatic calculation from the skybox is now also controlled from FrooxEngine side with a new set of components - including one that efficiently computes the parameters from a reflection probe with a Compute Shader. This is way faster and more efficient than Unity's own method, making ambient light changes significantly faster and smoother.
Big thanks to @troyBORG, @epicEaston197, VirgilCore, @Modern and @Nuki Raccoon ♀ for helping to test this in prerelease. Fortunately there weren't really many issues with this reported over last two weeks, so it should be good to go - but if you still run into something, make a report and we'll fix it in subsequent builds.
If you'd like to learn more about how this new system works, we covered it in the recent episode of The Resonance: https://youtu.be/Hyv2s364DPU
Second, PhotonDust is now out of experimental phase! Majority of the remaining issues (including legacy conversion) are now resolved - it's good to start using for new projects and convert your old into it and continue on! The conversion isn't automatic yet - this will happen when the Legacy system is removed fully.
The legacy particle system still exists for a little bit, but it will be removed very soon! If you run into some issues, please report them while you can! I'll probably remove the legacy system sometime next week, assuming there's no big blockers.
There's a number of bugfixes too from @ProbablePrime, which should resolve some issues and regressions!

New Features:

  • Added AmbientLightSH2 component to control the ambient light in the world
    • This functions similarly to the Skybox component, where there will be one active component that is determining what the current ambient lighting is
    • The ambient light is parameterized using second order spherical harmonics
  • Added ReflectionProbeSH2
    • This computes Spherical Harmonics (of order 2) based on the current texture of the target Reflection Probe
    • The computation is done using Compute Shaders and should be fast. However having lots of these will add up
    • The calculation is done locally for each user - if you want to share it, write the computed value into a field
    • For Baked probes, the calculation will currently only work with uncompressed texture formats
    • The Compute Shader is adapted version of this: https://github.com/pieroaccardi/Unity_SphericalHarmonics_Tools
  • Added OnChanges mode to ReflectionProbe & ChangesSources list
    • This can be used to have the probe re-render only when another component changes (e.g. a Skybox material)
    • It's similar mode to Realtime, but it does not re-render constantly - only on changes, saving performance when relevant items do not update
  • Add SkyboxOnly mode to ReflectionProbe
    • This will make the probe render only the skybox and nothing else
    • It's useful for computing the ambient lighting based on the skybox
  • Added auto-upgrade mechanism for worlds, which will convert them to the new lighting system that's managed within the Resonite world
    • The world is auto-instrumented with a skybox only reflection probe, which is also used to drive the ambient lighting
    • You can find these components on where the Skybox component is located
    • This mechanism replicates the old behavior, but with faster update rate (meaning changes in ambient lighting are significantly smoother)
  • Added UnpackSH nodes for unpacking spherical harmonics (requested by @Redd (evil mentor), issue #3585)
  • Added PackSH1 node for packing spherical harmonics of order 1 (requested by @Nytra, issue #3542)

Tweaks:

  • Remove "experimental" label on PhotonDust
    • From this point on, we recommend using PhotonDust for any new projects and avoiding the Legacy Particle system, which will be removed very soon
    • For any changes to PhotonDust we'll now implement compatibility conversions to make sure your items keep working properly
    • Conversion is still not automatic and legacy particle system is present, but as of now we don't recommend using it for new projects
    • Legacy system will be removed very soon, so prepare for its removal!
  • When particle trails space changes, the trails are now cleared to prevent odd positioning (based on report by brecert, issue #3510)
  • Added generic recursion limit for SphericalHarmonics instances that can be introduced into the data model (it cannot be above 2)

"Set Active Skybox" button on Skybox component is now localizable

Locale:

  • Merged German locale update by @Muppeq
  • Merged Esperanto locale update by SejdenGrauk
  • Merged Japanese locale update by @Aesc
  • Merged French locale update by @Jae “awa” J4
  • Merged Chinese locale update by modimobeikete
  • Merged Russian locale update by @A Lynray 🍇

Fixes:

  • Fixed the importing of public folders via their resrec url (reported by @Halo, issue #3554, fixed by @ProbablePrime)
    • This also allows for both Link and Directory record urls to be used to importing public folders and provides error messages on issues/problems with the URL
  • Fixed OnChanges reflection probes not re-render when the Slot they're is disabled and then re-activated (reported by @Modern, issue #3553)
    • This is a prerelease build fix
  • Fixed ReflectionProbes breaking when near/far clip are too low
  • Fixed deleting PhotonDust particle systems sometimes resulting in all particle systems to break (reported by @Modern, issue #3507)
  • Fixed SkinnedMeshEmitter not working with meshes that either lack bones or blendshapes (based on report by @Lux, @Nytra, @Baxter, @Fukuro, issue #3522)
  • Fixed GravityForce being in the incorrect space for legacy converted particle systems (reported by brecert, issue #3508)
  • Fixed legacy line emitters not emitting particles with correct direction when using line-aligned mode (reported by brecert, issue #3509)
    • Note: This is a breaking change for existing converted systems. If you have saved converted systems with PhotonDust with these emitters you'll need to reconvert them
  • Fixed particle renderer modules getting a weird offset when the main renderer space changes (based on report by brecert, issue #3510)
  • Restored the order of operations when importing resdb urls
    • This fixes cases of "cloud spawning" being broken on 2025.1.14.6 (reported by @yoshi1123_, issue #3534)
    • Do keep in mind that "cloud spawning" via this method may break in the future, but we do hope to create an official version of cloud spawning in the future.
  • Fixed Spherical Harmonics generic instances not being flagged as unsupported, allowing creating invalid instances which result in a crash (reported by @Modern, issue #3529)
  • Added generic validation to SphericalHarmonics nodes, preventing unsupported instances from being made and causing issues and crashes (based on report by @Modern, issue #3529)