Beta 2025.1.14.6

From Resonite Wiki

Beta 2025.1.14.6 is a Resonite version released on 2025/01/14.

The following notes were sent by Frooxius:

Hello everyone! I got another build for you with a bunch of goodies! Resonite now has a new data primitive - spherical harmonics! This has been added through my side project of adding gaussian splatting support (which will probably be released next week, I'm going to FC this week, so I don't want to push out big things just yet), but it's useful for lots of other stuff (some of which will also appear soon(ish)!). It's a generic primitive and there's a bunch of nodes and components to play with it.
This build also merges the joining via URL by @ProbablePrime, so that should be significantly improved!
There's some other goodies by @Cyro and @Ryuvi as well.

New Features:

  • Added ability for the UniversalImporter to recognize and handle ressession://, and other network protocol links(lnl, lnl-nat) (implemented by @ProbablePrime)
    • This Allows you to paste or otherwise submit to our importer these links and for them to be processed.
    • By Default, if a link is joinable(session, network etc), or if the link is a world, Resonite will try to Open/join it.
  • Added Import Settings for Session, World and Network Urls (implemented by @ProbablePrime)
    • Allows you to control what happens in the UniversalImporter for Session, World and Network Urls
      • Open - Instructs Resonite to Open/Join the URL if possible
      • SpawnInterface - Spawns a world orb in your active world. This is useful for sharing sessions with your friends
      • SpawnUrl - Spawns a URL interface for the url, this is useful for technical items such as programming ProtoFlux etc.
  • Created go.resonite.com, a micro-site used to easily link other users to your sessions and worlds (implemented by @ProbablePrime)
    • Provides big green join/open button, which triggers the Join By URL flow, mentioned in the fixes section.
    • Provides alternative connection urls as text, which are useful for ProtoFlux etc.
    • Fully supports, Open Graph meta-data, allowing the Sessions and worlds to look good across most social media(Blue Sky, Discord etc)
    • This item resolves issue reported by @Nytra, issue #1120
  • Added SphericalHarmonicsL1..L4<T> data model primitives
    • Spherical Harmonics is a primitive that allows efficient encoding of low frequency directional information
    • T can be any type that supports scaling (float, float3, float4x4, color, colorX...)
    • Spherical Harmonics are used as a building block for a wide range of applications. Typically used in rendering (e.g. for ambient light or gaussian splats) or audio (ambisonics directional audio)
    • We'll be adding more components, nodes and systems to work with these as time goes - e.g. methods to compute them from cubemaps
    • Addition, Subtraction, Scaling and Lerp operations are supported (e.g. you can use the lerp node to interpolate between spherical harmonics)
  • Added PackSHx<T> nodes
    • These nodes let you create a new spherical harmonics instance by packing its coefficients
  • Added EvaluateSH<S,T> node
    • This allows you to evaluate value of spherical harmonic in a given direction provided by a vector from ProtoFlux
  • Added ScaleOrdersSHx nodes
    • These let you individually scale the order bands of a spherical harmonics from lowest to highest
    • This is useful if you need to lower/amplify the lower/higher frequency bands of the spherical harmonic
  • Added IcosphereSH1 to SH4 procedural meshes
    • These allow modulating the radius & vertex color using spherical harmonics
    • They can be used for visualizing spherical harmonics, creating procedural effects and education
  • Added Added ColorByOrientationDirectionSHx & ColorByVelocityDirectionSHx modules for PhotonDust
    • These modules allow modulating particles with a color based on spherical harmonics depending on the direction of the particle
    • The direction is either determined by the particle orientation (using forward vector) or by the direction that the particle is moving in depending on which version of the module you use
  • Added ColorByVelocityDirection module for PhotonDust
    • This modulates the color of the particle based on a reference direction using the particle velocity
    • This is added to provide a copmlement to existing version of the module which uses the orientation
  • Exposed Away Kick & Away Kick interval status through WorldItemInterface & SessionInfoItemInterface (issue #2593, implemented by @Ryuvi)

Optimizations:

  • Optimized IcoSphere calculation by skipping redundant per-vertex operations

Tweaks:

  • Update Noto fonts to latest versions to support newer characters (based on request by @Kresny, @AmasterAmaster| Judgement Dragon, issue #3514)
    • Note that if you're using a different set of fonts, you might need to update them manually

Locale:

  • Merged German locale update by @Muppeq
  • Merged Russian locale update by @Shadow Panther [RU/EN, UTC+1/+2]

Fixes:

  • Fixed joining Resonite sessions via URL (requested by business client and reported by @Frooxius, @Ari, @Enverex, issue #1295 and @cyberfrogg, issue #2260, implemented by @ProbablePrime)
    • On Startup, Resonite will now check that its protocols are registered on your computer, If they are not they will be registered by a small helper program.
    • Once registered, clicking or visiting any ressession://, resrec://(assuming its a world at the moment) resonite: link from within Common Apps such as * Browsers, Email Clients etc. Will prompt you to launch a tiny program.
    • If the program detects that Resonite is open, it will forward the clicked url, to Resonite.
      • The URL will then be Imported, by our Importer system. See New Features for info on the changes there.
    • If the program does not detect Resonite is open
      • It will attempt to open Resonite via Steam if possible
      • And then manually, using CLI arguments to launch into the world
      • In both cases, it will add Command Line Parameters to try to open the URL once Resonite has completed opening.
    • For more information on these feature checkout our wiki page on it: https://wiki.resonite.com/Go.resonite.com
    • If you'd like to opt-out of this system you can add "disableProtocolRegistration":true, to your Config.json file.
  • Fixed Color serialization including the IsNaN property
  • Fixed ColorX inspector editor not properly nesting out, corrupting the UI when the colorX datatype is used within other datatypes
  • Fixed ParticleSystem not unregistering style events when destroyed, resulting in resource leak and exceptions (based on report by @Modern, issue #3507)
  • Fixed new gradients added to gradient sky box not appearing (reported by @Cyro, @Spex, issue #2514, fixed by @Cyro)