2021.5.19.1273 - HP Omnicept Eye Tracking, latest Opus & Freetype, tweaks, fixes
Hello everyone! I got another build for you with a bunch of goodies, including HP Omnicept Eye Tracking support! I don't have the headset, so it's untested, but it should generally work, let me know if you run into any issues!
There's also some important improvements for local database robustness, which should fix some other common(ish) cases of Neos not starting up for some users due to corruption.
I've also been moving more of our native dependencies to Azure Pipelines and bumping up their versions, we now have the latest versions of Opus (audio encoding/decoding library) and Freetype (font decoding)! For Opus it's a pretty big bump, almost 4 years ahead and the new version should have improvements for quality of both voice and music. Thanks to the CI/CD we'll also be able to keep with latest version much more easily now.
There's a bunch of other small bugfixes and improvements as well, like ability to do per-pixel processing for Cubemaps, read below for more!
[h2]New Features:[/h2]
- Added HP Omnicept Eye Tracking support (requested by @Groxxy but Face Tracking lul)
-- Currently this is not fully tested, as the official emulator is missing some functionality (controlling the eye openness)
- Added MotionVectorMode property to ParticleStyle which allows adjusting how are motion vectors generated for particles (requested by @Robyn (QueenHidi))
-- Note that per-particle motion vectors aren't supported
- Added "UserRecordingVoiceMessage" LogiX node, that indicates when the user is recording a voice message (based on request by @dfgHiatus)
- Neos now automatically cleans up old (more than 2 weeks) database backup files before upgrade or repair (suggested by Iforgotwhosorry ;_;)
- Per-pixel texture processing options (Inverting Colors, Swapping channels, Shifting Hue and so on) are now available for all generalized textures types (both Texture 2D and Cubemaps)
- Added support for WOFF font format
-- Note that newer WOFF2 isn't fully supported yet
- Added scalar (1D) overloads for the Distance node (requested by @Honzackcz)
[h2]Tweaks:[/h2]
- Upgraded Opus codec to latest version 1.3.1 from source (previously 1.1.3)
-- This includes numerous improvents to audio quality for both voice and music, especially at lower bitrates
-- See libopus changelog here: https://opus-codec.org/news/
- Upgraded Freetype library to latest version 2.10.4 from the source (previously 2.10.0)
-- This includes various bugfixes as well as a security vulnerability fix in the library
- Texture pixel processing from the inspector now processes all mipmap levels, which fixes only the top mipmap being processed when they're explicitly defined
- InventoryLink Enabled property is now respected (based on feedback by @Epsilion and @art0007i)
- UserInterfacePositioner is now based on user's view position by default rather than the head (based on feedback by @seif1)
-- You can check "UseHead" to restore old behavior if needed
- Merged missing MTC Streaming room string by @Rue Shejn | Artist 3D
- Merged Japanease locale additions (including MTC Streamer room) by @Aesc
- Merged Russian locale additions (including MTC Streamer room) by @Shadow Panther [RU/EN, UTC+3]
- Merged Czech locale additions for MTC Streamer room by @rampa_3 (UTC +1, DST UTC +2)
- Merged Korean locale additions for MTC Streamer room by @Guide
[h2]Bugfixes:[/h2]
- Fixed mouse scroll wheel being blocked by the Freeform Camera mode at all times, preventing UI's to be scrolled in this mode (reported by @AshtonSparx)
- Fixed Squeeze value for the Left eye being combined eye squeeze, instead of the left
- Fixed incorrect formula for Inverse of 2x2 matrix (e.g. float2x2) (reported by @Aetoriz and @かず (kazu / GitHub: kazu0617))
- Improved robustness of local database system to avoid random corruptions from resulting in Neos not starting up (based on logs collected by @H3BO3)
-- Neos now creates Setting.bak file in case the main Setting.json becomes corrupted (e.g. due to unclean exit)
-- Neos avoids overwriting Setting.json file when nothing has changed (which is in most cases)
- Fixed internal method for processing all pixels of specific mipmap only processing a single face for cubemaps (based on report by @Geenz | Graphics Programmer)

There's also some important improvements for local database robustness, which should fix some other common(ish) cases of Neos not starting up for some users due to corruption.
I've also been moving more of our native dependencies to Azure Pipelines and bumping up their versions, we now have the latest versions of Opus (audio encoding/decoding library) and Freetype (font decoding)! For Opus it's a pretty big bump, almost 4 years ahead and the new version should have improvements for quality of both voice and music. Thanks to the CI/CD we'll also be able to keep with latest version much more easily now.
There's a bunch of other small bugfixes and improvements as well, like ability to do per-pixel processing for Cubemaps, read below for more!
[h2]New Features:[/h2]
- Added HP Omnicept Eye Tracking support (requested by @Groxxy but Face Tracking lul)
-- Currently this is not fully tested, as the official emulator is missing some functionality (controlling the eye openness)
- Added MotionVectorMode property to ParticleStyle which allows adjusting how are motion vectors generated for particles (requested by @Robyn (QueenHidi))
-- Note that per-particle motion vectors aren't supported
- Added "UserRecordingVoiceMessage" LogiX node, that indicates when the user is recording a voice message (based on request by @dfgHiatus)
- Neos now automatically cleans up old (more than 2 weeks) database backup files before upgrade or repair (suggested by Iforgotwhosorry ;_;)
- Per-pixel texture processing options (Inverting Colors, Swapping channels, Shifting Hue and so on) are now available for all generalized textures types (both Texture 2D and Cubemaps)
- Added support for WOFF font format
-- Note that newer WOFF2 isn't fully supported yet
- Added scalar (1D) overloads for the Distance node (requested by @Honzackcz)
[h2]Tweaks:[/h2]
- Upgraded Opus codec to latest version 1.3.1 from source (previously 1.1.3)
-- This includes numerous improvents to audio quality for both voice and music, especially at lower bitrates
-- See libopus changelog here: https://opus-codec.org/news/
- Upgraded Freetype library to latest version 2.10.4 from the source (previously 2.10.0)
-- This includes various bugfixes as well as a security vulnerability fix in the library
- Texture pixel processing from the inspector now processes all mipmap levels, which fixes only the top mipmap being processed when they're explicitly defined
- InventoryLink Enabled property is now respected (based on feedback by @Epsilion and @art0007i)
- UserInterfacePositioner is now based on user's view position by default rather than the head (based on feedback by @seif1)
-- You can check "UseHead" to restore old behavior if needed
- Merged missing MTC Streaming room string by @Rue Shejn | Artist 3D
- Merged Japanease locale additions (including MTC Streamer room) by @Aesc
- Merged Russian locale additions (including MTC Streamer room) by @Shadow Panther [RU/EN, UTC+3]
- Merged Czech locale additions for MTC Streamer room by @rampa_3 (UTC +1, DST UTC +2)
- Merged Korean locale additions for MTC Streamer room by @Guide
[h2]Bugfixes:[/h2]
- Fixed mouse scroll wheel being blocked by the Freeform Camera mode at all times, preventing UI's to be scrolled in this mode (reported by @AshtonSparx)
- Fixed Squeeze value for the Left eye being combined eye squeeze, instead of the left
- Fixed incorrect formula for Inverse of 2x2 matrix (e.g. float2x2) (reported by @Aetoriz and @かず (kazu / GitHub: kazu0617))
- Improved robustness of local database system to avoid random corruptions from resulting in Neos not starting up (based on logs collected by @H3BO3)
-- Neos now creates Setting.bak file in case the main Setting.json becomes corrupted (e.g. due to unclean exit)
-- Neos avoids overwriting Setting.json file when nothing has changed (which is in most cases)
- Fixed internal method for processing all pixels of specific mipmap only processing a single face for cubemaps (based on report by @Geenz | Graphics Programmer)


