1. Neos VR
  2. News

Neos VR News

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)

Physical Fly & Noclip locomotion, CTAA Antialiasing, Xiexe Toon blend modes

Physical Fly, No-Clip, CTAA AntiAliasing, Xiexe toon feature parity with Flat-lit Toon, MetaMovie Additions, bugfixes

Hello, and welcome back to the Neos Weekly Update! We’ve got quite a lineup of new smaller features to talk about this week. We’ve renamed Fly to Noclip and have added in a new physical fly locomotion as the “proper” Fly.

CTAA Antialiasing has been added and Xiexe toon is now up to par with Flat-lit toon with its feature set! We’ve also got some smaller additions for the upcoming Metamovie project to keep things moving along nicely for it’s feature in the Biennale de Venezia film festival.



[h2]Physical Fly and Noclip[/h2]
We’ve got a new locomotion that will be installed automatically in newly created worlds (older worlds will have to upgrade their locomotion modules). Physical Fly works similar to our old Fly locomotion module, except your avatar will physically interact with objects instead of moving right through them. In this new locomotion mode, you have access to climbing, a feature not available in the old Fly locomotion module.

Fly has been renamed to Noclip (short for No Clipping) and has all of the original features of the original Fly locomotion. The new name better represents what it’s intended purpose is, as it’s primarily used for editing and easily moving through terrain and other structures.

[h2]Cinematic Temporal Anti Aliasing (CTAA)[/h2]
After many community requests, we’ve finally added Cinematic Temporal Anti Aliasing (CTAA) to Neos. Currently it’s an optional mode that needs to be enabled through a launch flag, but once all the bugs have been ironed out we can switch to it by default in place of the simpler FXAA.

Shifty, our Quality Control lead, has prepared some notes on CTAA below:

Originally posted by Shift
CTAA, or 'Cinematic Temporal Anti-Aliasing' is a post-processing effect that greatly reduces the amount of aliasing, or 'jaggies' that a user will see.

Aliasing is usually present at the edges of objects where there is a lot of contrast, but can also be seen on the inside surfaces of objects too. Generally speaking, it is a visually distracting 'shimmering'.

Being a temporal anti-aliasing solution, CTAA makes use of motion vectors (information about the positional change of the object each frame) in order to smooth the resulting image the user sees.

Users that wish to try out CTAA can do so by using the command line argument -CTAA. This command can be added to the launch options in Steam by right clicking on Neos VR in their Steam library, selecting properties, then setting launch options, and entering -CTAA.

There are additional command line arguments that allow you to control a few properties of CTAA.
-CTAATemporalEdgePower which has a range from 1.0 to 4.0, and is defaulted to 4.0.
-CTAASharpnessEnabled which can be set to either False, or True, and is defaulted to False.
-CTAAAdaptiveSharpness which has a range from 0.0 to 0.5, and is defaulted to 0.2.

The defaults were tuned to provide the greatest reduction in aliasing without introducing other distracting visual effects.


[h2]Xiexe Toon feature parity with Flat Lit Toon[/h2]
We’ve been working hard over time to bring Xiexe Toon up to par with all of the features that Flat-lit Toon have, so that we will eventually be able to remove Flat Lit and replace it entirely with Xiexe. Xiexe now supports transparency and other blending options, so now it can be fully transitioned to from Flat Lit Toon Toon.

We’re keeping Flat-Lit around just a little longer, so our community can let us know of any bugs they find with converting their Flat lit materials to Xiexe. This is everyone’s LAST CHANCE to let us know of bugs they encounter, so please, if your avatar or world is utilizing Flat Lit Toon, we highly encourage you to convert it to Xiexe toon before the forced conversion, so we can weed out and fix any last-minute bugs. We will fix any remaining bugs after, but you would need to live with the converted bugged materials until they’re ironed out.

[h2]MetaMovie Additions[/h2]
We’ve added some new features for a specific MetaMovie build of Neos, to ensure it’s an easy entry for the viewers of the MetaMovie. These new features won’t be accessible to the general population however, but were important for keeping things moving along nicely during the Venice film festival.

The reason we’re bringing it up here is we’ll be doing a test run of the MetaMovie itself, so keep a look out because we might have a need for testers!

[h2]Physics, UIX and other bugfixes[/h2]
As usual, Neos has also received many bugfixes, tweaks and other small improvements over the week. Notably we have fixed a bug where jumping would send collision end event from triggers, even if the player has remained completely within the trigger volume. This should make behaviors that depend on this (like parenting user to a vehicle) much more stable and reliable.

UIX and text rendering has also received various bugfixes, improving their reliability and ease of use. One of the major changes to text rendering was implementing missing support for tab characters, which would be previously completely ignored and reworked positioning of the text cursor, which previously would ignore the last space at the end of the text.

[h2]Community Highlights[/h2]
[h3]Music Visualizer World, by Orange[/h3]
This world is more like an immersive music video, as all of the objects within pulsate and move to the music! It’s a great place to show someone the potential of how music can affect a world. Great job, Orange!



[h3]Streamer Showcase: Snow SOS[/h3]
Snow has shown Neos off to thousands of viewers! Their sense of humor and comedic timing are amazing! If you watch Snow’s streams, I’m certain you’ll have a few laughs! Thank you, Snow SOS!

[previewyoutube][/previewyoutube]

[h3]Animated Dance Floor, by QueenHidi[/h3]
QueenHidi has made a fantastic dance world where the floor and lighting utilizes the pixels in a video of your choosing! Great for raves and parties! Nice world, QueenHidi!



[h2]What’s Next?[/h2]
We’re continuing to rework and extend the underlying subsystems for world and session management to support the new World UI and design new systems. The individual pieces are slowly coming together, so hopefully there will be much more to show within the upcoming days.

[previewyoutube][/previewyoutube]

Thank you for checking out our Weekly Update. We’d like to wish our new users a happy time with learning Neos and hope they make some great new friends!