1. Neos VR
  2. News
  3. 2020.7.1.26 - First Release of new RadiantUI dash - more to come soon!

2020.7.1.26 - First Release of new RadiantUI dash - more to come soon!

The first working version of the new Radiant UI dash is here! The new dash has now replaced the old belt menu dash and window system and as such it's an important milestone for the development of the Radiant UI. The overall UI overhaul is still far from finished, there are many more exciting features to come soon, now that we have this as a foundation to build on!

The new dash currently provides all the functionality of the old dash with some new bits. Over the upcoming days and weeks, more features will be added: Finishing the Facet editing system so you can customize, UIX Styling support for changing the visuals, proper default visual style, avatar Facet anchors, workspaces and more!

The old UI that has been wrapped into the new dash will also be gradually reworked piece by piece, starting with the Voice Switcher, new Session/World joiner, Inventory, Friends, Streaming Camera and many more and proper system for bringing your custom facets into userspace be introduced.

If you need to know where some important buttons were moved in the new dash, check this quick guide: http://wiki.neosvr.com/subdom/wiki/index.php?title=New_RadiantUI_Dash_Transition_Guide

Special thanks to @Danger Tester's for providing bugreports and feedback on the initial release: @Turk, @ohzee, @Hayden (PolyLogiX - ZyroDesign), @Alex from Alaska, @PeterTheThinker, @Cyro, @Waiwu, @Abysmal, @Zyzyl, @Dante, @alex derpy avali 🐦, @CanadianGit, @A Monsoon of Babies, @bobotron, @Electronus, @KierDran, @H3BO3, @Zane, @Lewi-bean | Audio Designer, @JustlyDeclarable, @SmolCookie, @GalexY, @DeliriousJax, @Zevrim (Linkluky) and @ProbablePrime
NeosVR Wiki
Index.php

[h2]New Features:[/h2]
- Added new RadiantUI Dash Screen, replacing the old belt dash!
-- This dash uses screen based system, allowing to have multiple virtual screens that can be switched between using buttons at the bottom of the dash. Those screens use UIX based UI. Typically most of them will be facet containers, allowing fully customizable UI, currently only the Home screen is facet based as the rest of the UI is gradually reworked
-- Created a new Home screen, which contains the essentials in form of facets
-- Created new Exit Neos Screen
-- Wrapped Session, Settings, Friends, Inventory and File Browser dialogs into the new dash
-- This dash also has a top bar for placing small facets in, currently used for Time, FPS and Voice Meter

- Added facet preset system for procedurally constructed facets and implemented following presets
-- Core Worlds (Hub, MTC, Cloud Home)
-- Controller Diagram (shows controller controls and layout, graphics made by @Coffee | Programmer)
-- FPS Facet
-- Online Status Switch
-- Online User Count
-- Cloud Server Status
-- Simple Profile (allows logging in, out and changing profile picture)
-- Storage Indicator
-- Sync Status
-- Time
-- Tokens status (how much NCR, KFC and CDFT you have)
-- Common tools (Avatar Creator, Full Body Calibrator, New World creator, Streaming Camera, NCR Withdraw/Deposit, Debug dialog)
-- Neos Version number
-- Voice Indicator
-- World Close button
Additionally, following indicator/function components were added, which were used to build those facet presets and can be used to build your own versions (once the editing system is finished):

- Added "CurrentDateTimeTextDriver" component, which can drive a text field with the current date/time using a format string (same as .NET DateTime formatting strings)
- Added "CloudServerStatus" component which contains the current cloud server status data (under Cloud/Indicators)
- Added "OnlineUsersCount" component which indicates the current number of online users
- Added "RecordSyncStatus" component which provides basing record syncing information
- Added "StorageUsageStauts" component which provides information about the cloud storage usage
- Added "CreditsStatus" component which provides current value of owned credits (NCR, CDFT, KFC) and their approximate USD value
- Added "AudioDeviceVolume" component which measures the volume and normalized volume of any audio device registered with Neos
- Added "NeosVersion" component which contains current Neos version number/string (under Utility)
- Added "UserOnlineStatusSync" which indicates current online status (Online, Away, Busy, Invisible) and allows it to be changed by changing the value of the field
- Added "PerformanceMetrics" which provides some performance metrics for given user (right now FPS, ImmediateFPS, RenderTime, TotalEngineUpdateTime, more to come later)
- Added "FocusedWorldCloseAction" button event receiver, which will close the currently focused world when it receives button event. It has a few configurable actions, to automatically prompt save, force save, force save as or force discard changes
- Added "FocusedWorldStatus" which indicates if the currently focused world can and/or should be saved and gives its name (more info to come)
- Added AvatarCreatorSpawner which will spawn avatar creator on button press event (under Utility/Tools)
- Added FullBodyCalibratorSpawner which will spawn fully body calibrator on button press event
- Added MainAndMaskTexturePropertyBlock, which allows overriding both the main texture and mask texture efficiently on materials that support it (currently UI_Unlit)

IMPORTANT: Any new components that indicate personal information will only work in userspace
Some other related and unrelated additions:

- Added new nodes for getting information from tooltips (based on request by @H3BO3):
-- IsToolTipEquipped (determines if the tooltip is currently equipped)
-- IsTooltipInUse (determines if the tooltip is currently actively being used)
-- TooltipEquippingSlot (gets the slot of the CommonTool equpping given tooltip)
-- TooltipEquippingNode (gets controller node that's equipping given tooltip)
- Added parameterized version of tag to text rendering system, which allows efficiently skipping parsing of a specific length of the string following the tag
-- Example: Bold and not so bold but now bold again
- Added Mask Texture support to Fresnel Material (requested by @Coffee | Programmer) as well as AlphaClip mode support
- Added GraphicChunkRoot component (under UIX/Layout), which will force a graphic chunk to be created at the point where it's addded
-- This can be used to optimize UIX when there's complex UI that's being translated within the canvas on the slow where the graphic chunk is placed
-- This has also been used to optimize any UI that slides left or right when swapping screens (e.g. Inventory, World Browser, Session and so on)
- Added ValueGradientDriver which can drive a target value field using a gradient defined by individual points (positions on the gradient with associated value) and position on the gradient (e.g. a color gradient)
- Added ProgressBar (under UIX/Interaction) which can drive a RectTransform anchors based a normalized progress (0..1)
- Added new Neos logo to the loading screen (logo design created by @Coffee | Programmer and @Karel)
- Added "pink" and "brown" color constants
- Neos will now try to dump the state of the world when it crashes unexpectedly on the host to a file and write the path in the log (this file can be imported into Neos, restoring any lost data)
- Added "MinScale" and "MaxScale" to Slider, which allows clamping the range of scaling when enabled
- Added "UseTransformScale" to Camera, which will compensate the OrtographicSize, NearClip and FarClip by the scale of the camera in the world
- Added "Direct" tint color mode to InteractionElement (buttons, sliders...), which will ignore the element's base color
- Removed old userspace toggles for Vive and WindowsMR controllers and replaced them with long-press of the App/Menu button (the button that opens context menu)

[h2]Tweaks:[/h2]
- Changed alpha channel blending to One One and Max BlendOp rather than using the same blending set for the RGB data
-- This fixes incorrect alpha behavior when rendering into an offscreen texture and then rendering this render texture with alpha blending (making an opaque region partly transparent when transparent material is rendered on top) or having incorrect transparent regions in captured in-game photos
-- In this build only the UI shaders were recompiled with this change, other shaders will be updated later on when all shaders are recompiled again
- Disabled rich text tag parsing for Twitch chat messages (based on recent livestream shenanigans xP)
- Some internal moderation tools improvements
- Removed redundant TransformMatrix nodes (they will autoconvert to instances of Compose TRS Matrix) (based on report by @orange and @Aetoriz#1794)
- Improved GridContainer Facet placement logic, to automatically use the preferred facet size fitted in the available space, rather than growing to the maximum possible size
- FacetContainer will no longer place facet when it's being custom sized and the cursor leaves the canvas
- Redesigned the facet container placement logic so containers can achieve better facet placement fit (this fixes unstable positioning (jumping around) when free-form placing the facets on the grid container)
- Tweaked grid container placement so facets can be freeform placed from all four corners, without skipping a row/column
- Save, Save As and Save Copy have been relocated to Session screen for the time being
- World Browser now contains "My Worlds" toggle
- Friends list now shows which version of Neos is someone using if it's different from the current one running

[h2]Optimizations:[/h2]
- Changed the friends list profile image to use the new material mask for the circle masking, instead of UIX masking mechanism, greatly improving the performance of the old Friends list
- Small optimizations when evaluating logix nodes
- Small optimizations when constructing UI procedurally

[h2]Bugfixes:[/h2]
- Fixed asset variant system incorrectly requesting old variant alternatives when a new variant wasn't generated yet and the old variant uses older identifier format, causing some textures to not load (appear white) the first few times they're spawned
- Fixed an exception when unloading old cloud settings when logging out (found in a log from @Shifty | Quality Control Lead)
- Tweaked item shelf item rejection logic accepting objects that are too large and non-persistent (like full body calibrator, avatar creator and so on) (based on reports by @Zane, @Zyro1331 (ZyroDesign) and @Shifty | Quality Control Lead)
- Fixed various LogiX nodes breaking or even crashing the world when they're swapped to a different overload/version or deleted (reported by @Ardes, @Hayden (PolyLogiX - ZyroDesign), @Shifty | Quality Control Lead, @Earthmark, @art0007i, @guillefix and @I wont shut up about reflections)
- Fixed Demultiplexer not swapping to a correct overload when the DefaultValue is plugged in
- Tweaked the degenerate transform matrix threshold limits for CameraPortal, to prevent moderate scaling of the portal target (or the camera) from stopping the portal from rendering (reported by ) (it will still stop rendering at extreme scales, but the limit should be significantly higher @Turk)
- Fixed PBS Dual Sided materials not casting correct shadows in the alphaclip mode (reported by @Enverex)
- Fixed "Component" component being attachable component (reported by @Rue Shejn | Artist 3D)
- Fixed UI Circle Segment shader not respecting ColorMask and not properly working as a mask as a result
- Fixed AspectRatioFitter incorrectly offseting height when the fitted width is larger than the current width, causing the visual to be vertically displaced
- Fixed RTF tag changing the parent color to black and tag without alpha overriding the parent alpha
- Fixed GridLayout horizontal alignment not working correctly when the number of actual items is lower than the number of available columns
- Fixed rendering to texture asset (capturing photos) rendering objects under HiddenLayer (reported by @Hayden (PolyLogiX - ZyroDesign))
- Fixed Userspace objects/dialogs being grabbed when a world-space object is grabbed
- Fixed Camera UVToRay returning NaN origin/direction when its associated render texture isn't fully initialized yet or has zero dimensions, causing raycast portals to break/throw exceptions
- Fixed Facet placement breaking and causing incorrect positioning when placed before the associated UIX update cycle has fully completed (reported by @Electronus, @JustlyDeclarable and @Hayden (PolyLogiX - ZyroDesign))
Notes:
- You can still open the legacy inventory (which can be shared into the world) by using the shortcut or by pressing Ctrl+I in the screen mode. This is temporary and will be removed once the inventory is reworked under the Facet system
- Editing of the facets on the dash is disabled by default now, as saving mechanism isn't fully implemented yet and there are some bugs. If you want to play with it, press Ctrl+F2 on your keyboard to toggle editing on and off. THIS IS UNFINISHED FEATURE, please do not report bugs at this stage.
- If you need to use the old dash for the time being, there's a Steam branch called old-dash that you can switch to, which has the last build before switch to the new Radiant dash