1. Neos VR
  2. News
  3. 0.8.18.9403 - Asset Variant System for Oculus Quest/Go Android (+ loads more)

0.8.18.9403 - Asset Variant System for Oculus Quest/Go Android (+ loads more)

The asset variant system for Oculus Quest & Android is here! :D Sorry this one took a while, there was a lot of work involved with native code and raw OpenGL, both of which can be pretty tedious to work with. There are many bugfixes as well and some general optimizations and improvements!

New Features:

- Asset Variant System support for Android/Oculus Quest!
-- Uses ETC2 RGB (4-bits per pixel) and RGBA (8-bits per pixel) compression algorithms
-- Both formats are also additional crunch compressed for smaller download and storage size
-- Android doesn't use hybrid system due to memory constraints. It will wait for all textures to be computed. This can result in longer initial loads
-- The desktop version will seed Android variants, but only if you don't have them loaded yet either (clean your profile if you want to help seed them)
-- Ported crunch library (used for texture block & crunch compression and decompression) to Android, which allows compressing the textures on the device if necessary too
- Implemented native async OpenGL texture uploads on Android
-- Uploads textures by mipmaps and chunks directly from Neos, reducing memory and CPU overhead and stalls when uploading large textures
-- Shows already loaded mip levels immediatelly, resulting in the same progressive loading as on PC (textures start blurry and get sharper and sharper as more gets loaded)

- Added "Background Jobs" diagnostics to the Debug dialog to help diagnose any problems with background processing
-- If you notice it getting stuck on some same jobs (or things generally getting stuck) send me a screenshot
-- Alternatively you can copy the text to clipboard if you go to Special tab and click "Copy background thread processing snapshot to clipboard"

Tweaks:

- Added upwards offset for the default position of the chest tracker calibration reference
-- This should fix the chest/shoulders twitching with default calibration (reported by @Reactant )
- Avatar Creator will now create pivots when setting up eyes. This should fix eyes rotating around the wrong axis for certain avatars (based on issue by @Coffee)
- Upgraded to Unity 2019.3.0b10 (from 2019.2.11)
- Updated to SteamVR Plugin to 2.5.0 (from 2.4.5)
-- Includes SDK 1.8.19 (previously 1.7.15)
- Updated Oculus SDK to 1.42 (from 1.41)

Optimizations:

- When saving an open bitmap into the asset database, the metadata are generated in parallel from the open bitmap
- World Orb thumbnails are now using direct load without going through the variant system, removing unecessary local variant computations
-- This speeds up loading of virtual photos and imported images, as they don't need to be re-loaded for metadata generation
-- This could also potentially fix the very slow loading of things reported by @Zane , @DeliriousJax , @ChrisWarner103 and others
- Scheduled some UI mesh updates on the high priority queue to prevent them from getting stalled by heavy processing on the background threads
- Changed render thread callback mechanism to go through native library. This was necessary for OpenGL implementation and hopefully should get rid of some of the crashes with DirectX on desktop (reported by @Somowo, @Shifty, @Nexulan and others)
- Asset Variant worker is now pipelined, uploading variants as soon as they're computed. This lowers the loading latency when the client is waiting for the variant (most important on mobile/Quest which doesn't use the hybrid mode)
- Asset Variant worker now queries active jobs more efficiently, using a single job fetching thread, rather than having each thread check independently
-- This also improves parallelization by not stealing too many jobs on a single client when there's a sudden burst of them
- Tweaked Asset Variant worker multi-threading to avoid stealing too many jobs, resulting in better parallelization

Bugfixes:

- Fixed minimum texture LOD not being immediately update when uploading the texture to the GPU in some cases
- Fixed RGBA variants not being requested from the cloud properly, causing them to be generated locally every time
- Fixed procedural texture mip-map flickering
- Fixed temporary files for thumbnail compression getting downloaded to the main Neos folder rather than temp (this also fixes access violation on Android, breaking the function)
- Fixed asset variant compute tasks getting stuck when there's an exception (should help with the asset loading issue reported by @Hayden (PolyLogiX - ZyroDesign) )
- Fixed exception when updating really old MaterialGuns
- Fixed exception when trying to load components that are of invalid type
- Fixed exception when trying to generate variants and the file has gone missing in the meanwhile
- Removed old Simple360PhotoCamera component
- Fixed broken logout process (reported by @pek )
- Fixed default star sky skybox having two transparent pixels, increasing its video memory requirements
- Fixed waiting for cloud variants to be generated not working correctly
- Fixed "Install Locomotion Modules" node installing the modules to the root of the user (reported by @Shifty )
- Fixed "Install Locomotion Modules" node not firing OnInstalled impulse when done (reported by @Shifty )
- Fixed Glue Tool force dry not working in screen mode
- Baking meshes will now fill default tangent (1, 0, 0, 0) for meshes that don't have them, when some of the meshes have tangents
-- This fixes certain meshes with materials becoming black after baking (e.g. convex hull mesh with PBS triplanar, reported by @Anomalous )
- Fixed exceptions when trying to access a missing Gizmo (found in a log from @Anomalous )
- Fixed full body calibrator headset not being setup with the proper material
- Fixed interactive camera littering the scene with "Holder" objects (reported by @Hayden (PolyLogiX - ZyroDesign) )
- Fixed eye manager being positioned incorrectly when setting up new avatar with the avatar creator (based on issue by @Coffee)
- Added extra debugging diagnostics for asset uploads (for @Robyn (QueenHidi) )
- Fixed broken audio spatializer offset due to changes in SteamVR Runtime (reported by @Hayden (PolyLogiX - ZyroDesign) and @Shifty)
- Fixed record syncing breaking when there are multiple copies of the same asset in the source manifest (reported by @Lewi-bean )
- Fixed asset variant worker continually re-fetching jobs for deleted assets (reported by @Shifty and @Anomalous )
- Fixed thumbnail update system sometimes download users's own thumbnails