1. Neos VR
  2. News

Neos VR News

2020.8.15.474 - LogiX Debuging Visual Nodes, Raycast debug visual, bugfixes

Smaller build again, most of the work goes into the new World UI, it now has proper implementation of filtering, with various filtering options for both worlds and live sessions (and some shared), with a few more to come.

For some new additions that you can use right now, there are now Debug visual nodes and visualizing raycasts! This should make building things with LogiX a fair bit easier!

[h2]New Features:[/h2]
- Added a set of Debug nodes for easily drawing various debug visuals
-- You can draw: Text, Vector, Line, Triangle, Sphere, Box and Axes
-- Each visual supports a "Duration" parameter, which indicates how long it will linger after drawing (default is 0, it's in seconds)
-- These are FOR LOGIX DEBUGGING PURPOSES ONLY. I strongly discourage using them for any graphics and rendering visuals, they're very heavy on network and performance. Remove them from your setup after you're done.
- Added "DebugDuration" input to the RaycastOne node, which will render a debug visuals from the raycast (use 0 to display for a single frame, larger value for it to linger, negative for off) (requested by @Castle)
-- It will draw the raycast line (yellow) and all hits (red sphere for position, blue arrow representing the hit normal and green triangle if mesh collider was hit)
-- Same as above, only for debugging purposes only, using them for actual visuals is very inefficient
- ValueEqualityDriver now has "UseApproximateComparison" toggle, which will use approximate equality comparison for floating point datatypes (based on request by @Rue Shejn | Artist 3D)

[h2]Work in progress features:[/h2]
- World List Manager now has various world and session filtering options, which will filter out both the local list immediatelly for responsiveness and run a new search query on the cloud in the backgrounds to load more records
- Numerous bugfixes and tweaks for the World List Manager to get it closer to ready to use state

[h2]Tweaks:[/h2]
- GridLayout will no longer make items too large when there's not enough of them to fill a whole row (it will act as if the whole row is filled when calculating the adjusted size)
- When creating new empty object, it will automatically be selected in the inspector (requested by @guillefix)

[h2]Bugfixes:[/h2]
- Compiled missing Linux variants of Xiexe Toon shader (based on report by @RoxyBoxxy)
- Fixed Cloud-generated records not being deletable (based on report by @Enkiko)
- Fixed issues when navigating records at particular paths on Linux
-- This would incorrectly parse the records paths, affected some cloud functionality as well, like ensuring that synced records have containing folders generated and don't end up orphaned

2020.8.14.437 - Approximate comparison node, world search refactoring, fixes

Another small build sorry! Most of the work goes into the new World UI. There are a few tweaks and fixes that I don't want to be held up and approximate comparison node! You can play with the new World List UI if you want, but it's still very incomplete and very WIP!

[h2]New Features:[/h2]
- Reworked cloud backend for search to support proper pagination of results for arbitrary queries, rather than using date ranges
-- This means ranges of records can now be queried as well (this is crucial for the new world UI)
- Added approximate comparison node (≈) which returns whether to floating point numbers are approximately the same, with an optional epsilon input (I recommend leaving it default, the approximate comparison auto-adapts with the size of the values) (based on feedback by @Rue Shejn | Artist 3D and @Earthmark)

[h2]Work In Progress Features:[/h2]
- Implemented a new more efficient record (world/item) searching and pagination system with local caching of items for the new World UI
- The WorldListManager now supports toggling different soruces on and off (Local Worlds, Sessions, Published World), limiting how many items are visible and has proper uniform pagination control via "SkipItems"

[h2]Tweaks:[/h2]
- Optimized cloud storage quota update mechanism, to prevent certain operations (e.g. syncing many items or deleting folders in the inventory with many subitems) from starting multiple parallel copies, wasting resources and causing unnecessary cloud server usage

[h2]Bugfixes:[/h2]
- Fixed inventory folder deletion waiting for the cloud storage to be fully updated for each deletion task, making deleting folders with many subfolders and items a very slow process (based on report by @Enkiko)
- Fixed compound RecordId comparison against string always resulting in false, breaking all systems depending on this (e.g. not being able to correctly fetch current sessions for a world with given ID)
- Fixed world announcer incorrectly reporting that all sessions with given WorldID have ended, when only one of them has, in cases where there are multiple sessions running of particular world
- Fixed cloud server not caching world search results properly and throwing internal exceptions, resulting in slow loads of the world browser and increased sever load

2020.8.13.259 - Image & Create New object alignment, Spectator interactions...

Sorry for smaller update, most of work goes into the new World UI now, but here's a few small additions, tweaks and bugfixes on the side!

[h2]New Features:[/h2]
- Added sessionID and copySessionID commands to headless server which will print or copy the Session ID of currently focused world (based on request by @Rue Shejn | Artist 3D)
- Added SessionID to the output of the status command as well (requested by @Enverex)

[h2]Tweaks:[/h2]
- Objects created using the "Create New" dialog will now spawn oriented towards the user along their vertical axis, rather than aligned with the world (based on suggestion by @Blaze)
- Imported images now spawn oriented towards the user at the time of the import, rather than aligned with the world (reported by @ProbablePrime and @Shifty | Quality Control Lead)
- Spectators can now interact with FriendLinks, Hyperlinks and WorldOrbs (based on feedback by @H3BO3)
- Updating discovered sessions from the friends list is now much more efficient and actually tracks which sessions have been added or removed, rather than rebuilding the whole list every time
- Upgraded to Unity 2019.4.8f1 (from 2019.4.7f1)
- Some small tweaks for the Metamovie event functionality

[h2]Bugfixes:[/h2]
- Fixed incorrect quantity compound formatting for negative values (based on report by @Rue Shejn | Artist 3D)
- Fixed Loading Indicator not being correctly associated with world or removed on failed load in cases where it's pre-generated outside of the main loading process (based on report by @ProbablePrime)

2020.8.11.1368 - Freezing UI due to Twitch chat mitigation, small optimizations

Pushing out some tweaks and bugfixes. I've done some deep investigation into the UI freezing issue when Twitch chat is in use, hopefully this build will fix or at least mitigate that significantly. Please let me know!

The build is compatible with the previous one, don't need to update right away if you're not affected by those problems.

[h2]Tweaks:[/h2]
- DynamicBoneChain now sends grabbed and released events and can be used with the Grabbable events node (based on report by @Vigilabo through @Shifty | Quality Control Lead)
- Replaced cloud asset metadata query batching system with a generalized optimized one, reducing some internal complexity and reducing CPU/memory usage spiking (both on client and on the cloud server) by not sending multiple batches at once during heavy asset load
- Rewrote parts of Twitch API library to use proper async patterns instead of blocking waits to help prevent thread pool starving causing UI to become unresponsive (based on feedback from @ProbablePrime and @bobotron)
-- The Twitch Interface now also includes extra logging to help diagnose more issues
-- Parts of UIX update cycle have also been tweaked to be less susceptible to thread scheduling waits
- Fetching session info by session ID from the cloud is now case-insensitive
- Tweaked default Render Queue for the Matcap material to fix ambient occlusion rendering through it (reported by @Robyn (QueenHidi))

[h2]Bugfixes:[/h2]
- Fixed OpenWorld node throwing an exception when the world fails to open, due to the node trying to extract the session URL's (found in log from @Shifty | Quality Control Lead)
- Fixed exception on audio thread in Audio Output Unity connector due to a race condition (found in a log from @Shifty | Quality Control Lead and @Rukio)

2020.8.10.1195 - Bugfixes for UIX, permissions, LAN, CTAA, orphaned slots, etc.

A whole bunch of tweaks and bugfixes! UIX, Permissions, joining sessions on LAN, cameras when using CTAA antialiasing, orphaned slots and bunch of other things should now be fixed. This build now also should have everything ready for the Metamovie Festival Event, so I can focus back more on the World UI again!

[h2]New Features:[/h2]
- Added /requestRecordUsageJSON command that you can send to the Neos account in your friends list, which will email you a JSON of all records on your account that are using storage (based on request by @Earthmark)
-- This can be used with 3rd party tools to generate analysis of your Neos storage usage
-- IMPORTANT!!! Be very careful who you send this report to, as it contains nearly the entire contents of your account and inventory and has enough information to spawn anything from your account
- Added LogiX operator node overloads for the decimal datatype
- Added Metamovie mode to Neos, which will be activated during the Metamovie Festival for participants, automatically load them to the lobby and switch to simplified dash (based on request @jasonmo and @Karel | CEO)
- Added MetamovieAccountInfo component for the Metamovie project, to help build out UI for the event (based on request by @Karel | CEO and @jasonmo)
- Added HTC Vive Ambassador badge (requested by @フリック)

[h2]Tweaks:[/h2]
- Removed old "DebugVisuals" on UIX Canvas component, which would break most canvases when enabled (based on report by @Alex from Alaska)
- When "Allow Swapping Avatars" permission is enabled and the AvatarObjectPermissions has no tags configured in the list, users (e.g. Spectators) will be allowed to swap their avatars in the world (based on feedback by @ProbablePrime, @Turk, @Enverex, @Shifty | Quality Control Lead and @Castle)
- RawDataTootlip will now reset its outputs to default values when dequipped (based on report by @Enkiko)
- Switched neos-session:// URL to a format compatible with the new custom session URLs (this is returned by the WorldSessionURL node for example)
- Joining a session through neos-session:// URL will now try to resolve the session URL from already gathered session information, which will use LAN session address if available (based on feedback by @Gourry)
- Some more security tweaks and improvements
- Some small optimizations in lookups of user controller components

[h2]Bugfixes:[/h2]
- Fixed Neos getting stuck when trying to exit when the Cloud home URL is invalid or not fully loaded
-- This also fixes worlds not focusing automatically when they're ready when the URL is invalid (reported by @Shifty | Quality Control Lead)
- Fixed broken camera renders when using CTAA (e.g. the image being black or significantly offset) (reported by @GONT_3, @Enverex, @Shifty | Quality Control Lead and others)
-- Any in-game cameras and camera renders now use FXAA, due to CTAA corrupting the in-game cameras when used on them
- Fixed custom camera not spawning when its URL is invalid
- Session joiner plate will re-add the world orb root automatically if it's removed to prevent throwing exceptions when updating and breaking (based on report by @Shifty | Quality Control Lead)
- Fixed UIX canvas breaking when externally mapped materials or material property blocks are destroyed after they've been successfully mapped
- Added orphaned slot cleanup mechanism when parent is destroyed, but its children are not (causing slots that separate from the scene hierarchy), which fixes variety of issues caused by those
-- E.g. the dev tooltip selection taking longer and longer due to trying to compute positions of the orphaned slots, reported by @Earthmark, @H3BO3, @Shifty | Quality Control Lead, @Napo and @Enverex)
-- Also users getting respawned when trying to grab such orphaned object (didn't keep list of reports for this one, sorry!)
-- This will also help fix high memory usage in cases of orphaned slots being constantly generated and accumulate over time
- Fixed Mask not working correctly with color datatype (reported by @Earthmark)
- Fixed ButtonEvents node not properly unregistering all events, causing UIX canvas and other behaviors sendint ehe vents to break if the node is deleted (reported by @Earthmark)