1. Neos VR
  2. News

Neos VR News

0.8.17.6442 - World loading features, MS Spatializer, LogiX nodes and bugfixes!

New world loading features, switch to MS HRTF Spatializer, new logix nodes and important bugfixes!

New features:

- Added new mechanism for reporting when the world is ready - this will prevent auto switching to the world until all components indicate that it's ready
-- Added MeshRendererLoadStatus (under World/Loading) - will report ready once all mesh renderers and their assets are loaded
-- Added AssetLoadStatus which will report ready once all listed assets are loaded
- Added new Logix nodes for value range shaping (under Math/Shaping)
-- Smooth Step
-- Smoother Step
-- Sin Shape
-- Symmetric Power Shape
- Added "Caps", "FlatShading" and "UVScale" setting to Cone Mesh
- Added "FlatShading" setting to Cylinder Mesh
- Added MaxSwing and MaxTwisting limiting to AutoLookAtUser (this replaces the "AroundAxis")
- Added AutoFocus & GetExiting to the WorldLink
- Added new inputs and outputs to OpenWorld LogiX node
-- GetExisting (will get an already open world with same url if it exists)
-- LoadingIndicator (indicates whether to show the loading indicator)
-- AutoFocus (auto focuses the world when it's ready)
-- MakePrivate (forces the started world to start as private)
-- OnWorldReady (fires when the world is ready)
- Added "FocusWorld" LogiX node, which allows focusing existing world if open

Tweaks:

- Switched to Microsoft HRTF Spatializer on Windows
-- This one seems most stable out of all, should help get rid of the audio issues for the time being
-- Also changed the default room setting to Outdoors (from the danger-nightly build)
- SetParent node won't try to parent object to itself, causing its global transform to get changed (based on issue reported by @tehturk )
- Disabled Avatar Anchors are now ignored
- Refactored API for opening/focusing worlds. This removes some bugs and improves behaviors (e.g. when opening already opened worlds)
-- World Relation "Replace" should now work correctly, closing the old world once the new one is focused
-- AutoFocus is now respected, allowing to load worlds without focusing them in background
- Filtered FreeImage logging messages about file type mismatch

Optimizations:

- Added memory pooling to sync element trash management, reducing memory allocations when deallocating/removing elements and reducing GC churn

Bugfixes:

- Fixed data model corruption causing world to crash for everyone but the host when releasing drive on Sync collections of other sync elements
-- This would happen when deleting certain components for example or releasing drive of complex objects (discovered by @Veer)
- Fixed NeosFieldBase throwing exceptions when some of its components are missing
- Fixed exception when trying to map external textures with a missing mapper (found in log from @Kalash )
- Added extra early filter to parenting slots to prevent them from parenting to themselves (based on issue reported by @tehturk )
- Fixed being able to break the userspace dash by destroying the adjustment handle (reported by @Aegis_Wolf)
- Fixed incorrect tooltip/shelf/grab-area anchor positioning with Avatar Creator for certain avatars (reported and sample avatar provided by @Ultranique, also reported by @ChrisWarner103)
- Fixed incorrect UV generation for conical frustums at the top side (e.g. cone mesh)
- Fixed incorrect wrap-around UV generation for conical frustums, causing the textures to not seamlessly loop around cylinders and cones
- Removed exceptions when trying to set playback position for targets with currently unassigned clip length (discovered in log from @Nexulan )

0.8.17.2187 - Switch to Resonance Audio Spatializer to get rid of the audio bug

Switched to Resonance Audio to get rid of the audio bug! Hopefully this one is good. Also few tweaks and a fix.

Build is compatible with the last one so you don't need to update immediately if you're in Neos now.

Tweaks:

- Switched to Resonance Audio spatializer by Google from OculusSpatializer
-- This will hopefully alleviate the audio bug. Let me know how it works or if you notice any issues with this one

- Changed naming of captured screenshots in the Windows Photos folder to yyyy-MM-dd HH.mm.ss to help alphabetical sorting (based on feedback by @Alex from Alaska )
- Removed old ability to unpack LogiX nodes by holding secondary on an object with the LogiX tooltips (based on feedback by @Coffee )
- Tweaked fetching of public sessions to reduce load on the cloud server and improve general cloud responsiveness

Bugfixes:

- Fixed GrabInstancer not respecting the permission system (reported by @Coffee )

0.8.17.37310 - Big bugfix update! With extra optimizations and additions on top

Big bugfix update! Should get rid of the recent world crashes and other problems. Also some optimizations and small additions.

New Features:

- Added "Play & Wait" node which can start playback and then fire an impulse once it's finished
- Added "Play One Shot & Wait" node, which fires impulse when the clip finishes playing
- Added "AutoTarget" property to AutoLookAtUser which allows disabling the auto-targetting and assignigng the targetted user manually
- Added "AroundAxis" and "Axis" properties to AutoLookAtUser which allow restricting the rotation to a particular axis
- Added "InvariantCulture" and "CurrentCulture" LogiX nodes (under Formatting)

Optimizations:

- Optimized allocation block management in reference manager - this removes all memory allocations when allocating new objects/components, reducing CPU and memory usage and GC churn
- Reduced memory allocations when rendering to a texture asset (e.g. capturing thumbnails, photos and similar)
- Reduced memory allocations and CPU usage when duplicating objects

Tweaks:

- ToString and Parse nodes now accept IFormatProvider inputs and use invariant culture by default
-- This fixes system culture related issues (e.g. some systems using , instead of . for decimal point) (reported by @Bom "Bitman" bomb (PolyLogiX) and @Coffee)
- Gridspace ground texture now uses anisotropic filtering by default
- Added extra cleanup for duplicated LogiX node visuals which would prevent packing in some cases
- WebP encoding now uses exact mode, which preserves color information in fully transparent regions
-- This fixes texture operations and importing corrupting RGB data in some textures (e.g. splat-maps) (discovered by @Bom "Bitman" bomb (PolyLogiX))

Bugfixes:

- Fixed race condition in fetching permission validators, which could in rare cases cause a world crash or corruption of state (discovered in log from @H3BO3 )
- Fixed state corruption when duplicating element SyncBags (e.g. on objects with ValueUserOverride) causing world to crash or misbehave (also should fix headless crashes found in logs from @Medra )
- Added invalid value filter to LabelPointerMesh to prevent generating corrupt geometry
- Fixed exception when cleaning up registered events in ListEditor (found in log from @guillefix (OneWeirdOtter) )
- Fixed invalid generation of random strings in RandomX
- Fixed exception when rendering a static texture and one of the selectively rendered or excluded objects doesn't have a corresponding implementer instance
- Fixed exception when trying to fire UserReleased event on AvatarAnchor, when the user has been destroyed by another user
- Fixed exception when destroying slot gizmo and the target slot is already gone
- Fixed character parented trying to unparent destroyed user
- Added fatal world exceptions, which will crash the world immediatelly when the state gets corrupted, rather than letting it run and result in secondary errors and exceptions
- Fixed specific controller nodes lingering on the last user when the new user doesn't have particular controller on their system (e.g. Index Controller node is then fed user with Oculus Touch controllers) (reported by @H3BO3 )
- Fixed sync playback not correctly reporting IsPlaying status immediatelly after being instantiated and played
- Fixed repeatedly loading unsynced records for groups and trying to sync them (reported by @Hayden )
-- This should also fix degradation and some crashes with headless & grapahical server experienced by @Medra with Creator Jams
- Fixed WebP encoder not correctly switching to lossless mode. To use lossless mode use any quality higher than 100 (101 will work). This is now default for various in-engine recompressions

0.8.17.37186 - Inspector UI hotfix + dynamic bone grabbing fix

Quick hotfix. Fixing the scaling issue due to dynamic bones and inspector UI glitch. Compatible with previous build.

Tweaks & Optimizations:

- Optimized cloud database indexing policy. This will improve performance of some updates (e.g. syncing/saving worlds/items)
- Changed default filter mode to Anisotropic for Spaceworld and Utlity world ground textures

Bugfixes:

- Fixed incorrectly calculated grabbing distance for dynamic bones, which would interfere with scaling self and grabbing when at small scales (discovered by @Somowo and reported by @Shifty )
- Fixed incorrectly generated UI in the inspector for slots due to the new SyncBag support (found by @Parker )

0.8.17.31742 - Oculus Quest build update small additions, tweaks and fixes

Some more smaller additions, tweaks and bugfixes. Also updated the Oculus Quest / Android builds to the latest version!

New Features:

- Added "Loading..." indicator to the inventory
- Changed ActiveUserRootOnly to ActiveUserFilter on TouchToggle (based on request by @H3BO3 )
- Added inspector support for SyncBags
- Android builds now also include the headless server (requested by @Anomalous )

Tweaks:

- ValueUserOverride and ReferenceUserOverride now use SyncBag instead of SyncList for storing overrides (based on feedback from @Coffee )
-- This allows concurrent changes from multiple users without the changes overriding due to conflict resolution on the list
- Various small procedural mesh generation optimizations
- Various async/background processing optimizations for inventory browsing
- Small memory and CPU optimizations for SyncBags, inspector ListEditors and other elements
- Patreon badge is preserved for users who have already supported the project, but aren't currently pledged
- Spinner, Wiggler and Panners will now reset to a default position when disabled to ensure same state for everyone

Bugfixes:

- Fixed "Parent under world root" undo step not restoring original transform (reported by @H3BO3 )
- Fixed repeated attempts to capture and upload thumbnail when the upload fails, causing performance degradation
-- The upload is attempted several times with a wait period in between
- Fixed exception in TextEditorParser when the TextEditor component is missing
- Fixed inventory items not saving when the folder hasn't loaded yet
- Fixed not being able to save items with users parented under, that have the SimpleAvatarProtection (the user won't be saved)
- Fixed 360 rendering on Android (Quest) resulting on blank textures