Beta 2023.12.11.1259

From Resonite Wiki


Beta 2023.12.11.1259 is a Resonite version released on 2023/12/11.

The following notes were sent by Frooxius:

Ooof, I'm finally getting this build out, sorry it too so long! This has a lot of bugfixes for asset processing, particularly for the asset processing system. This should fix a number of crashes that have been happening recently too.
This started over a week ago, when I noticed issues popping up with asset processing. Turns out, there has been a whole bunch of them! But they should all be sorted out now.
And one good feature that comes out of this - we have significantly improved DDS support now! If you got DDS files, you should be able to import a wider variety of them with different encoding. The support is not 100 % - there's a lot, but it's been increased.
A big feature from this is that if the DDS includes pre-computed mipmaps, the asset variant system can now use those, instead of computing its own, which lets you make a lot of cool effects.
IMPORTANT: Also note, since this updates the asset variant system, textures might take a bit longer to load for a bit, as new metadata/variants might need to be computed.

New features:

  • Implemented alternate decoder for DDS files, which has better support for variety of formats and supports decoding included mip maps, instead of just generating them from the first image
    • You can now check "Keep Original Mip Maps" on StaticTexture2D, which will use the mip maps included in the DDS file
    • It is recommended to use more common formats, like RGBA32, or RGB24. BC1, BC3, RGBA5551, RGB555 and so on, while supported, are discouraged, as the textures will be recompressed anyways
  • Added support for additional texture data formats:
    • RGB565 (this is mostly internal and not recommended to use for procedural textures and such)
    • R8 (single channel 8-bit format)
    • RHalf, RFloat (single floating point channel)
    • RGHalf, RGFloat (two floating point channels)
  • Expose OriginalRegistrationDate on CloudUserInfo - this is the original registration date of user account that has been imported from another service (requested by jligeza, issue #822)

Bugfixes:

  • Fixed texture asset variants failing to encode as uncompressed, when one of the sides is 16K or higher
  • Fix ConvexHull colliders failing to compute for very tiny meshes (this also fixes asset variant system not being able to process those variants)
  • Fix encoding of Alpha8 textures to files not working
  • Fix bitmaps without flipped Y getting flipped vertically when the texture format is converted
  • Fixed incorrect byte ordering for floating (32-bit) textures when reading and writing pixels
  • Implement handling for corrupted assets (notably textures) - if the texture file is corrupted and fails to load, it will not be processed and will not load
  • Implement graceful handling of extremely large images files, instead of throwing exceptions and failing to process repeatedly
    • The maximum number of allowed pixels is 16K times 16K. 32K by 8K is allowed and will be processed, but will be downscaled to 16K by 4K. If the texture exceeds number of pixels, it will fail to process and load at all
  • Implement convex hull mesh complexity reduction, to ensure that convex hull colliders are not created with excessive amounts of points
    • This also works around a bug in BEPUv2, which results in severe memory corruption and results in crashes on the client or of the asset variant worker
  • Fix resize filtering being forced to Bilinear for small textures (128px or less), rather than provided filtering being respected
  • Fixed typos in the headless command help text (because @glitchfur made fun of me for those while we were at furmeet in a diner)
  • Fixed exceptions in ValueTextFormatDriver<T> when the Format string is null