Beta Release 83

We released Beta Release 83 on Wednesday July 31, 2019.

Note: There is a protocol change in this version.

Note

As of Beta Release 83, we are only testing on Windows 10 machines and macOS High Sierra or above. Therefore, we will no longer be actively supporting older operating systems for High Fidelity Interface and Sandbox. 

New in v0.83.0!

  • Many efforts have been made to improve stability and performance in this release:

    • Over 75 crashes have been identified and fixed.

    • Desktop mode now works on business-class PCs, supporting a wide range of Nvidia, AMD, and Intel graphics cards for Windows PCs.

    • Improved Mac stability and performance, including support for MacBook Air:

      • Throttling the refresh rate to require less power in a desktop.

      • The default screen size is now set to 1/2 scale to decrease the amount of power and improve startup time.

      • The default resolution of High Fidelity is now set at 1/2 the screen resolution to reduce pixel processing bottleneck for the low-end Mac computers. Due to retina screen resolution and combination of integrated or low-end graphics cards, a lot of Macs suffer from processing too many pixels due to the high screen resolution. To change this setting, go to Settings > Graphics.

    • A lot of attention has been made to improving disconnecting and short disconnects/reconnects. This would manifest in pink Orbs never resolving properly and white orbs sticking around; we rarely see any of those these days!

  • Auto-Optimization for Rendering and Graphics: In this release, we add controls for world detail, rendering effects, and refresh rate to optimize your experience. By default, you will be loaded into the recommended settings based on your hardware configuration. You can further refine these settings by going to Settings > Graphics.

  • Welcome back the webcam and microphone access! In a previous release, we completely removed any access to webcams and mics due to security concerns. We've since addressed and fixed those security issues. In addition, if a webcam or microphone need access at any time, you will see an access control dialogue where you can either grant or deny this. (Canny request: https://highfidelity.canny.io/bugs/p/embeded-chromium-browser-are-not-enumerating-camera-and-microphone-inputs).

  • Comfort Mode: Comfort Mode is designed to decrease the effects of motion sickness in VR mode by:

    • Decreasing your field of vision by darkening the edges of the screen.

    • Adding a ground plane and grid.

    • This feature is OFF by default and can be activated and adjusted in Settings > Controls > Calibration.

  • Avatar Theft Protection: Users are no longer able to wear certified avatars that they do not own. If someone attempts to wear a certified avatar that they don't own, they instead will wear a generic avatar and given instructions on how to change to another avatar.

  • Baking of Avatars: Avatars uploaded through our Avatar Packager will now be automatically sent through our Oven process and baked. This provides for better optimization and performance.

  • Simultaneous Editing of Objects: In Create mode, you can now simultaneously edit multiple entities at once. Select the entities you want to change, then modify the properties. For certain properties (such as color and behavioral properties), changing the value will change it for all selected entities. Other properties (such as spatial properties) will offset the original values by the changed value.

  • New User Experience: We've returned to our previous start-up behavior so that new users will start their HiFi journey in a local domain by themselves. The updated content introduces the movement controls and teaches users how to use High Fidelity.

  • Update to QT 5.12.3: This update fixes bugs and errors related to the outdated QT APIs that were in use.

  • New Documentation includes:

Improvements

Avatars

  • Avatar bandwidth is decreased by 13.9%. We achieved this by removing faux joints that are not required unless the user is actively grabbing an object.

  • We're continuing to improve our avatars and make them more lifelike!

    • Added more talks, idles and fidgets, and polish system to hide loops and repetition of animations, and also to reduce glitches as the component animations blend in and out. See this PR for technical details.

    • Reworked the stop and settle animation to be smaller and less bouncy, especially for small adjusts.

    • Reworked all locomotions to match movement speeds that were changed by design to be 2.5 m/s for walk and 5.2 m/s for run. Polish the animations to work for authored height (Artemis) and also the short wolf avatars. See this PR for more details.

    • We added the ability to override animations for the right and left hand. This enables users to create scripts for custom hand poses. See this PR for more information on hooking in your scripts.

  • Improved our safe landing code to properly find local entities when teleporting or entering a domain. This prevents avatars from showing up in undesirable locations when moving around. Many thanks to Oren Hurvitz for the code!

  • Added support for morph Targets in GLTF Avatars so that animations can be used, specifically Walk and Jump!

  • Set different default run speeds between HMD and Desktop mode for the Analog control scheme (Settings > Controls > Control Scheme Selection).

Outils de Création

  • The Independent and Entities views have been removed from the View menu in Create mode.

  • Introduced shadowBias and shadowDistance as zone properties to allow precision when creating realistic shadows in different lighting conditions. NOTE: We tried to match the default values as closely as possible to the previous hard-coded values, but many existing domains that were already using shadows prior to 83 may now need a little additional adjustment to get these new properties set correctly.

  • Added ignorePickIntersection to Create UI.

Rendering

  • Improved CPU usage by optimizing avatars and the _Blender tasks associated with rendering. This dropped CPU 10% on Windows. See this PR for more technical information.

  • Optimized the way we handle switching between different GL contexts in frames. This will remove the stuttering that could occur when loading content.

  • Improve gLTF importer correctness and support for the following features: mesh deformer, unnamed materials and vertex colors, sparse accessors, thin bounding boxes. Many thanks to SaracenOne for your contribution!

  • Added Haze to our forward renderers.

  • Reduced the complexity of managing/editing our common shaders, and made it easier to add more variants in the future by combining shaders variants in SLP defines.

  • Baking FST files with the oven now includes the existing materialMap in a baked FST file.

API Documentation

Other Mentions

  • Now allow users to disable automatic flying (Settings > Controls > Hover When Unsupported). Many thanks SaracenOne for the contribution.

    • When enabled, if you walk off of a tall building (or off the edge of the content so there is only the void below you), you will start to hover.

    • When disabled, when you walk off, you will start to fall. If flying is enabled, you will still be able to start flying while you are falling.

  • We now call leaveEntity before unloading a script if our avatar is inside the entity.

  • Unmuting while away will now remove your away state.

  • Cleaned up some warnings in syntax-error.js that were appearing in Visual Studio. Thanks to Oren Hurvitz!

  • Improved loading by fixing up some race conditions that could trigger waiting for login to complete, even when it already did, edit.js would fail to load as scripts started running before the Keyboard had been initialized. Thanks Oren Hurvitz!

  • Made improvements for Linux users by correctly minimizing (iconizing) Interface. Before this fix, the Interface window would immediately pop back up.

  • Added min-listen-port command line parameter to assignment monitor. This will allow users to specify a port range for assignment client UDP ports, allowing easier port forwarding, etc.

  • Added vhacd-util and Oven to all installers. VHACDUtil is a content optimization tool like our Oven and is an alternative for content creators.

  • Updated our installer icons.

Fixes

Audio

  • The Dynamic Jitter Buffer switch in the Domain Admin UI was inverted, causing audio quality degradation. This has disabled dynamic buffers when it's set to enable them. This now works correctly.

  • Adjusted the adaptive audio threshold value we use when Muted. This fix improved the "MUTED" indicator (which warns when talking while muted) to stop constantly flickering.

  • We now persist the mute settings between sessions.

  • When unmuting with keyboard shortcut (Ctrl + M) in PTT mode, the icons now correctly indicate the current mute state.

  • Plugging and unplugging USB headsets no longer cause Interface to hang or freeze. (Canny request: https://highfidelity.canny.io/bugs/p/unplugging-headphones-with-hifi-open-causes-freeze)

  • Fixed an issue in audio where clicks/pops could be heard when gain is rapidly changing.

Avatars

  • Fixed an issue where the getJointRotation and setJointRotation were not the same values when you use different overloads of the function. Specifically, the MyAvatar.getJointRotation(index,quat) was working but MyAvatar.getJointRotation("jointname", quat) was not.

  • In HMD mode, avatars will no longer sink into the floor (this behavior previously manifested in certain hand/shoulder poses).

  • In cases where avatars have no eye joints, eyes no longer pop out of joint and the camera view no longer appears inside the avatar's head. (Canny request: https://highfidelity.canny.io/bugs/p/head-flashes-into-view-while-in-hmd)

  • User scripts now correctly override the rotations of the eyes using the MyAvatar.setJointRotation() API.

  • Users who change from a GLTF avatar to an FBX avatar now correctly move, rather than floating in the air.

  • Limited the amount of data that can be read from a single binary array in an FBX node. This was potentially causing crashes due to corrupt FBX files.

  • Changes from AvatarBookmarks.updateAvatarEntities() now appear correctly on remote interfaces.

  • Equipping a wearable on a missing joint no longer duplicates the wearable. (Canny request: https://highfidelity.canny.io/bugs/p/clicking-cancel-in-wearable-app-causes-problems)

  • Fixed an issue where Head-mounted avatar entities were visible in first-person after releasing from grab when trying on. This would only manifest in HMD mode.

Outils de Création

  • In the Create app, Copy/Paste now works on grandchildren of entities. Before this fix, only an entity's direct children were copied, but not their children. Thanks to Oren Hurvitz!

  • Fixed a long-standing issue where Undo and Redo were not following the command chain correctly when editing Zones. As a result, some Undo/Redo steps would get skipped.

Rendering

Other Mentions

  • The keyboard now correctly scales to your avatar when you reload content or scripts while your avatar is larger or smaller than a default mannequin.

  • Special characters in your username no longer causes blank inventory and HFC balance.

  • Added size checks for trait packets parsing to ensure we don't read past the end of packet buffers. This can help prevent certain crash cases when sending/receiving Avatar Skeleton Traits.

  • When using the Oven, the materialURL "materialData" is no longer parsed as a URL.

  • New users are no longer asked for a wallet passphrase on login.

  • Fixed potential error in network code, involving congestion control.

  • Fixed an instance where you would upload content to your domain, it would appear to fail but actually succeed. For example, when restoring a content backup, the error message "There was a problem loading your list of automatic and manual content archives, please reload the page to try again" would appear but the content is actually there.

Crash Fixes

  • Fixed crashes in the following scenarios:

    • Accessing Avatar::getJointIndex or  Avatar::getJointNames due to memory corruption in _modelJointIndicesCache

    • Accessing flow collision arrays from different threads when touching flow bones or hair on other avatars

    • Backing to invalid indices in baker::calculateNormals

    • Shutting down while other avatars are rezzing into the domain

    • Incorrect material mapping from FST files

Android

  • Fixed an instance where the Android app would crash on launch

  • Corrected the gamma levels that were set too high and making some content appear washed out.