Creating receiving applications

In a receiving application users can interact with multiple HMI screens, such as a car cockpit.

Creating a receiving application in Kanzi Studio

To create a receiving application in Kanzi Studio:

  1. In Kanzi Studio, create a project where you define the application that receives streaming content.

  2. In the Library, right-click Kanzi Engine Plugins, select Import Kanzi Engine Plugin, and import the plugin from the <KanziWorkspace>/Engine/plugins/kanzi-vr/plugins-streaming/lib/Win64 directory.

    For example, import GL_vs2019_Release_DLL/KanziStreaming.dll.

    The Streaming Plugin adds the Receiver Node nodes and the Streaming Component node component. A Streaming Component creates a stream of the content and a Receiver Node receives that content.

    ../_images/import-kanzi-engine-plugin.png
  3. Create the environment of the receiving application. Scale the environment so that one unit in the environment equals 1 meter.

    For example, you can import a cockpit model from a 3D modelling tool and continue the creation of an environment in Kanzi Studio.

  4. Create a ReceiverNode3D node instances in the Scene on top of the digital HMI screens. For each HMI screen:

    • If the screen visual is available, create a Receiver Node as child of the screen visual. Otherwise create a Receiver Node under the closest visual that is a separate node.

    • Set the size of the Receiver Node by setting in the Properties the Layout Width and Layout Height properties.

    • Position the Receiver Node and resolve Z-fighting, use the Layout Transformation property.

    • To connect to the correct streamer, Set an ID for the receiver with the Stream ID property. See Configuring virtual environments.

    • To set the mesh on which a ReceiverNode3D renders a stream, use the Mesh property. You must set the GPU Memory Type property of the mesh to GPU and RAM. If you do not set the Mesh property, the ReceiverNode3D renders the stream on a rectangle.

    • To set the material that defines the appearance of a Receiver Node when that node is not rendering a stream, use the Inactive Stream Material property. If you do not set the Inactive Stream Material property, the Receiver Node uses a material that renders the texture coordinates of the Receiver Node.

    • To set the material that defines the appearance of a Receiver Node when that node is rendering a stream, use the Active Stream Material property. Use the Stream Texture property to access the contents of the stream. If you do not set the Active Stream Material property, the Receiver Node renders the stream as is.

    • To stop a Receiver Node from rendering a stream, set the Stream Enabled property to false.

    When you want to show all screens at once, create the environment in 2D instead of 3D space. In this case use ReceiverNode2D with Kanzi 2D nodes, such as Image nodes.

  5. To set the spots and angles that you want the viewer of the environment to visit, create Camera nodes in the Scene. For each Camera node add a tag VRViewingLocation. To set the order of the viewing locations, use the VRViewingLocation_<number> instead. You can use numbers up to 20.

Creating a receiving application in third-party software

The interface between Kanzi VR and third-party software is a web browser component.

To create a receiving application in third-party software:

  1. Verify that the streaming works in a browser. See Receiving streams in a browser.

  2. Verify that the third-party software that you want to use can host the web browser component.

  3. Create a web browser component in the third-party software and ensure that it can show the same streams as the browser.

  4. Model the environment in the third-party software.

  5. Place the web browser components to the locations of the HMI screens to be streamed and configure them to receive the correct streams.

See also

Starting stream-enabled virtual environments