1. Neos VR
  2. News
  3. 0.8.18.18354 - Local Import P2P transfer speedups for the asset variant system

0.8.18.18354 - Local Import P2P transfer speedups for the asset variant system

Improvements to asset variant system to speed up loading and transfers, especially with P2P asset transfers. Also a bunch of other goodies, including new Kiosk mode!

New Features:

- Implemented texture variant computation streaming - variants are computed from smallest mipmap to largest, with each one made available to the system immediatelly after computing
-- This significantly decreases latency when importing local textures - a low resolution version will appear as soon as it's computed, with higher resolution versions appearing as soon as they're computed
- Implemented metadata and variant fetching to the P2P asset transfer protocol
-- This way the variants are only computed on the person who created/imported the asset, rather than everyone computing their own (this reduces workload whe importing or capturing photos)
-- Combined with the new variant streaming, the low resolution version will appear as soon as possible for everyone, even if the owner of the asset is still computing the higher resolution mipmaps. (for example if someone captures photo or imports images, a low resolution version will appear much sooner and progressively gets sharper and sharper)
- Added new Kiosk mode (based on request by @VRxist and @Karel )
-- Can be activated in the Neos Launcher or by passing -Kiosk argument on the commandline. It needs to be activated for each client that should be in Kiosk mode, other users will be unaffected
-- This mode disables the dash, world switcher and radial menus in any worlds that the user joins
- Added "Is User In Kiosk Mode" LogiX node, that allows determining if particular user is running in the kiosk mode for scripting purposes
- Added "Collide" property to individual bones in DynamicBoneChain, which allows disabling collisions per bone segment
- Added Unit formatting (both simple and compound) to DistanceMeter component. This allows custom formatting and changing units for the MeterTip (based on request by @Routb3d)
- Added spawn command to headless client, which allows spawning items in the current world (implemented by @Coffee )
- Added "Get Component Enabled" and "Set Component Enabled" nodes (implemented by @Coffee )
- Added "World User Count" node (implemented by @Coffee )

Optimizations:

- Neos automatically registers local computed variants with global URL's when syncing records, preventing them from having to be downloaded
- When syncing to cloud, Neos also uploads locally computed variants, making them immediatelly available to other users if the item or world is loaded, without needing to be recomputed in the cloud first
-- This is done with lower priority after all records have been synced
- Lowered crnlib (library used to block compress and crunch textures) helper thread priority to idle, which will reduce stutters when localy compressing textures (e.g. imported/generated files)
- Small CPU/memory optimizations for P2P asset transfers

Tweaks:

- Disabled auto-reorientation and set grip rotation to any axis for the Zero-G locomotion preset (based on feedback by @Veer )

Bugfixes:

- Fixed file size not showing up in the File Browser (based on suggestion by @sirkitree )
- Fixed broken loading of DateTime value (e.g. found on captured photos) (discovered thanks to @Veer)
- Fixed DestroyOnUserLeave component not executing correctly (based on report by @ProbablePrime )
- Fixed invalid use of recycled messages in P2P asset transfers, resulting in the P2P asset transfers randomly breaking
- Fixed certain cases where P2P asset transfers would fail to initialize
- Fixed background exception when asset system would fail to load a variant
- Fixed exceptions in asset system when the asset manager fails to fetch or compute metadata (discovered in log from @Veer )
- Fixed exception in AvatarBadgeManager when the badge root is deleted (it will now clean itself up)
- Reduced verbosity of libVLC messages
- Fixed incorrectly loaded Touch and Vive controllers for the NeosAvatarControllerSpawner (based on bug report by @Bom "Bitman" bomb (PolyLogiX) and @Zyro1331 | ZyroDesign )