holoride
Search Results for

    Show / Hide Table of Contents

    Quality Events

    The holoride software stack consists of a variety of software that communicates with each other to provide localization and graph data. Data that is required for a truly elastic experience.
    Knowing how the key components work together helps to understand the system holistically. In case you have not already, make sure to read the System Information page to get an overview of the holoride software stack.

    The ElasticSDK Quality Events are our way to communicate the different states of localization and graph data towards the content creator.

    Quality Events: Generation Events

    The Elastic Scene Generator component has a dedicated Events section, that provides the user with a variety of UnityEvents.
    These events are meant to be hooks where your program flow can execute different behavior based on the different states of the generation process.

    Event Description
    OnGenerationStarted The event which is invoked when the initial generation process has started.
    OnGenerationFinished The event which is invoked when the initial generation process is finished.
    OnEnterGenerationOverdue The event which is invoked when the GenerationOrigin, i.e. the Player, got too close to the latest finished generation context's InnerBounds, based on the given BoundsDistanceThreshold.
    OnLeaveGenerationOverdue The event which is invoked when the current generation left the overdue state.
    OnUpdateStarted The event which is invoked every time a generation process has started, except the first time.
    OnUpdateFinished The event which is invoked every time a generation process has finished, except the first time.
    Important

    The OnEnterGenerationOverdue event is especially important. It will trigger whenever the Player approaches the bounds of the latest finished generation. It can be used to identify and compensate poor content states before they actually happen.
    There are various reasons why a generation can not finish in time and it is likely that there is more than one cause.
    A poor internet connection can cause excessive download times for areas where no cached map data exists in the user's application. This would ultimately stall the generation and the Player would approach the bounds because they cannot be updated.
    Same could happen when the graph is too complex overall, the vehicle drives very fast or the extents of the Elastic Scene Generator are too small. In general it is recommended that there is always a fallback solution, e.g. a separate graph independent scene transition, hooked up to this event.
    The BoundsDistanceThreshold is a user-defined value on the Elastic Scene Generator, that can be used to adjust the distance towards the bounds from where the Player will cause the event invokation.

    Quality Events: Localization Events

    Localization Events are located on a component with the same name in the Holoride Player prefab. These events are meant to be hooks where your program flow can execute different behavior based on the different states of the real-world localization data.

    LocalizationEvents Component

    Setting Description
    DistanceToStreetUntilOffRoad The distance in meters from the street until the player is considered to be too far away from the road and the OnOffRoadMode event is triggered.
    FireModeEventOnStart When enabled this component will fire the localization mode event for the current state when Unity's Start method is called on this component.
    Event Description
    OnLocalizationInitialized The event which is invoked when the localization becomes available and the pivot is set.
    OnLocalizationNormalMode The event which is invoked when the localization is available and we are on the street (up to the road distance threshold).
    OnOffRoadMode This event which is invoked when the localization is available but we are not on the road and the distance to the road is larger than the threshold configured in DistanceToStreetUntilOffRoad.
    OnLocalizationUnavailableMode This event which is invoked when the localization is unavailable and thus the player won't move even though the vehicle in the real world might.
    OnErrorOccured This event which is invoked when any localization error occurs.

    This component handles different localization quality events and reduces them to three distinct states:

    • Normal:
      This state represents good localization where everything works as expected.
    • Off-road:
      This state is active when the localization is available but due to inaccuracies in localization or outdated Map data, the Player might not be on the road which the content should handle accordingly. The distance to the road until the player is considered to be "off-road" is adjustable and should reflect the requirements of the individual content.
    • Unavailable:
      This state means that no localization information is available.

    Provisions should be made for the content of an experience to respond to different localization states:

    Since the Unavailable state does not show any movement at all, even though the vehicle may in fact be moving, it is suggested not to show any indication of false movement that occurs when the Player's localization is not present but the VR headset's IMU interprets a turning car as a head rotation.

    In many scenarios, this means that it is not even recommended to show the player a world . The experience should start in this mode until localization is available and Map data is ready.

    Caution

    Any experience must be designed to reflect this state at any point in time to comfort the user in those situations where valid data is not available to present an elastic environment. One suggestion is to fade out the world when this mode is activated and fade it in once another state becomes active.

    The other interesting state is the Off-road state where there appears to be normal localization but due to limited GPS reception (e.g. in a tunnel) the Player might be off the road. In this case the experience should make sure that the player is not colliding with any objects. How this is handled depends very much on the experience that is built and could range from unloading objects that are too close to loading a different scene. The Distance To Street Until Off Road setting for this mode makes it possible to tighten or loosen the constraints for this mode, depending on the individual content.

    In This Article

    Back to top
    ©   holoride
    Privacy   Imprint