1. Neos VR
  2. News

Neos VR News

0.8.19.37141 - FreeType Oculus SDK library updates, some bugfixes

Smallish build now, a few bugfixes and SDK/library updates. I'm porting the new text rendering to Android now and adding the new Quest hand tracking. Also engineering the new UI system!

[h2]Tweaks:[/h2]
- Upgraded Oculus SDK to 12.0
-- Includes Plugin version 1.44 (from 1.43), Platform SDK 12.0, LipSync kept at older version due to performance issues
- Upgraded FreeType library to 2.11.0 compiled from source (from prebuilt 2.6.0 shipped with SharpFont)
-- This also removes the dependency on Visual C++ Redistributable 2013 (this one uses 2017 which is used for other libraries as well)

[h2]Bugfixes:[/h2]
- Fixed race condition when pinning glyphs for TextRenderer, while new atlas is being added to the font's current set of dynamic atlases
- Fixed world browser breaking when there's a world with an empty name (based on bug report by @KG6LSE)
- Fixed Full Body Calibrator breaking hands on the Windows Mixed Reality headset (reported by @Groxxy)

0.8.19.39601 - Lots of bugfixes and tweaks for Text Rendering, IME mode and more

Happy Holidays everyone! :smile: I've got another pile of text rendering bugfixes and improvements, I believe this should cover pretty much all major issues with it. I've fixed a bunch of rounding errors that caused some characters to be incorrectly sized and rendered (especially dashes, periods, semicolumns, underscores) and did a bunch of other improvements. All text should now render correctly as with the previous system.

[h2]New Features:[/h2]
- Added "Horizontal Autosize" to TextRenderer, which will automatically adjust the text size if the longest word exceeds the bounds (this prevents it from getting force-wrapped)
-- This is automatically enabled for old pre-upgrade TextRenderers, fixing split words after the new system (reported by @Alex from Alaska and @Parker) - if the item/world was re-saved you need to enable it manually
- Added "Line Height" to TextRenderer, allowing ajdustment of default relative line spacing
- Added "Spawn Photo in World" setting to Interactive Camera and the control dialog, which allows disabling spawning of the physical photos (based on request by @kurotori4423)
-- When disabled, the photo is just saved to the Documents folder in Windows and Steam Screenshot library
-- In the interactive camera control dialog, it can be found in the settings panel (the one opened by the gear icon)

[h2]Tweaks:[/h2]
- TextRenderers upgraded from the old system and World Orb names now use line height 0.8, which better approximates the look and sizing of the previous text rendering system
- Original "AutoSize" is now split to Horizontal AutoSize and Vertical AutoSize, allowing more control. Existing instances are auto-converted
- OutlineThickness, FaceDilate and FaceSoftness are now compensated by the MSDF pixel range, preserving the same size regardless of the range setting (assuming the range is sufficient for the given range)
- Neos now enables IME composition mode when typing into text fields, allowing complex input methods being used (e.g. Japanese or using character codes with Alt Gr, based on feedback by @Jack and @Ero)
-- Please let me know if it works correctly for you now, I tested the Alt Gr one, but can't test Japanese input
- Interactive Camera now spawns photos in the user's local space rather than always under root
- Optimized rounding mathematical functions

[h2]Bugfixes:[/h2]
- Reworked computations to fix rounding errors when packing and rendering glyphs, resulting in size deformations (especially noticeable with small glyphs or large ranges for the distance field)
-- This fixes broken punctuation glyphs (periods, dashes...) reported by @ProbablePrime
- Fixed atlas-rotated glyphs (glyphs that are wider than taller like "m") using incorrect quad extension ratio, causing them to to becomes slightly squished

0.8.19.2358 - Small patch fixing more bugs and adding tag

A small patch to fixup some things and add a new tag

[h2]New features:[/h2]
- Added tag which closes all open tags (suggested by @Alex from Alaska)

[h2]Bugfixes:[/h2]
- Fixed default avatars not spawning properly (reported by @Zane)
- Fixed race condition breaking the font glyph generation, when the old atlas is unloaded while another thread is trying to pin glyphs in it
- Fixed tags without parameters being accepted when specifying arbitrary parameter
- Fixed Vive Pro Eye being repeatedly initialized when the SR runtime is not intsalled on the system

0.8.19.42406 - More bugfixes for the new Text Rendering system, tag support

Sorry for smaller build today, was on the road to visit family. But I got more issues with the new TextRendering fixed up, particularly the strange bug resulting in the text randomly becoming blank! More fixes coming soon. Let me know if you find more issues as well.

[h2]New Features:[/h2]
- Added
tag support to the new text rendering system for creating line breaks
-- This should fix the broken items that use this (reported by @Medra and @RezilloRyker)

[h2]Bugfixes:[/h2]
- Fixed font atlas texture changes not propagating correctly in all cases to materials, resulting in the glyphs being blank randomly (reported by @Alex from Alaska, @Nammi, @RezilloRyker and others)
- Fixed TextRenderer throwing exceptionsand breaking when loading in some contexts, due to the local renderer not being initialized yet (found thanks to log from @Nammiand @Yiffster )
- Fixed exception when spawning new user and their root in the world is missing/deleted (found thanks to log from @Nammi)
- Added guards and extra diagnostic information for loading audio clips, when the clip audio type cannot be determined
- Fixed OGG audio files not loading correctly in some cases

New high-performance text rendering system, font file import support and more!

Hello everyone, welcome back to the weekly update!

To all of our new users: Welcome to NEOS, we’re so happy to have you here! We've hit record numbers thanks to you guys, peaking at 82 concurrent users this week! This really helps boost our drive to provide you with the best metaverse experience!

The Neos update this week is no less exciting either! Major progress has been made with the UI overhaul with the release of brand new text rendering system, which serves as a foundational building block for reworking the UI/UX and offers major performance improvements, as well as support for importing your own TrueType font files.

There are some other wonderful features this week, from the Tooltip Multiplexer to the new improvements of our SimpleAvatarProtection.

Medra is also hosting our very own secret Santa in Neos, where our users exchange gifts and guess who has made theirs. We’ll be live streaming this event on our Twitch soon, so join us for some fun Holiday shenanigans!



[h2]New Text Rendering system & support for importing font files[/h2]

The new text rendering system for Neos is finally up and running in the latest builds of Neos! This is a completely custom system created from scratch specifically for Neos, to replace the Unity Text Mesh Pro and serve as a foundational building block for the UI overhaul.



It brings many new benefits. It’s highly performant, running asynchronously and heavily utilizing multi-threading. This reduces lag spikes related to generating and rendering text, reduces overall CPU utilization and makes Neos more responsive.

The new system also offers much more creative freedom and flexibility. Neos now supports import of TrueType/OpenType font files (.ttf, .ttc, .otf and .otc). Simply import them as any other asset, drop over text renderer and your text will be instantly rendered with the new font!

Neos now uses a method called MSDF (multichannel signed distance field) for achieving high visual quality - this offers better preservation of detail and sharp corners than previous method. The generation parameters (glyph resolution, range and padding) are configurable, if you notice visual artifacts with complex or thin fonts, simply increase the resolution.



Another benefit is support for dynamic glyph generation, rather than being restricted to a pre-generated subset. This allows support for languages with a large number of symbols, like Japanese, Korean and Chinese. Currently languages that require complex text shaping aren’t supported yet (like Arabic), but are planned in the future.

Since it’s designed specifically for Neos, it also integrates very well with other Neos’ subsystems. It uses regular materials and meshes, meaning you can technically drop in any material you like (although MSDF fonts won’t display correctly without the special shader) or use the font material outside of the text rendering system.



Currently the new system is used for all instances of TextRenderer in Neos, all existing worlds and items are automatically upgraded. If you notice any issues or things breaking, please make a report, ideally in #bugs-and-feedback channel on the Discord.

Text embedded within a UI canvas (inspectors, friends list, inventory, file browsers and so on) is still using the old system at the moment. We’ll be creating a new UI framework to replace the old one, using this text rendering at its core. There’s a lot more cool stuff to come!

[previewyoutube][/previewyoutube]

[h2]Asset Cache Obfuscation & SimpleAvatarProtection improvements[/h2]

We've made some new improvements to asset security, such as obfuscating the cache. You can no longer see the textures and other assets in your computers cache directory. This should make it much more difficult for users to extract models and textures, so we can help keep your assets safe!

There are also some major improvements with the SimpleAvatarProtection component which now prevents users from easily snagging mesh, materials and textures from the inspector, or with the material tip or mesh tip.

The upcoming license / object ID system will provide much stronger protections in the future and greater flexibility for managing your and other people’s assets.

[h2]Tooltip Multiplexer[/h2]

This one's going to be a big hit with our power-users and creators! This special new tooltip component allows you to have all of your favorite tooltips in one. You simply choose the tooltips you wish to use, put them in the components index list and use a little bit of LogiX to swap between tips by changing a single number.

[h2]Community Highlights[/h2]

First, a warm welcome to all of our new international users! We at NEOS wish to thank you all so much for giving us a try. We're all so very happy and humbled to have you join us in exploring this new frontier into the metaverse!

You can join the conversation about Neos VR here on Twitter and check out all the cool things people are doing!



[h3]Secret Santa Creator Jam event[/h3]

Medra is hosting a very special Creator Jam this Sunday. Users who have joined the secret Santa were given a random name from the list to procure or create a special gift for them. I know we’re gonna have some wacky gift ideas this year! We’ll be livestreaming the event on our Twitch, so come check it out!



[h3]Snowglobe by Turk[/h3]

This beautiful and cozy world features a very interesting ceiling design! Make your way over to the coffee table, pick up the snowglobe and look into it and you'll see a tiny version of the room! What's more, you'll see a tiny version of yourself looking into a little snowglobe. Look up at the ceiling and you'll see a massive version of yourself!

We’re so happy to have you join us again for this weekly update! Thank you to all of our users and patrons! Without you, we could not move forward with the project. You literally make our world go 'round! And again, to all of our wonderful new users, welcome!



[h2]What’s next?[/h2]
With the new text rendering system pretty much done, we’re now more than half-way through the technical phase of the UI overhaul. Next we’ll be working on a brand new UI framework system, using the new text rendering as a basis, that’s going to replace the current Unity system.

Similarly to the new text rendering this will not only offer drastic performance improvements (especially with lots of windows and inspectors open!), but also give us full control over all parts of the system, which will allow for redesigning the UI visuals and interactions to provide the experience we want.

We’ll also continue fixing up any issues with the text rendering as we go and there are some new additions planned, like better text editing (being able to click anywhere in the text to position the cursor) or 3D mesh text generators, so there’s a lot of fun stuff you can look forward to!