The Meta 2 SDK provides a video feed containing both the virtual content in the running scene and the real world as seen by the Meta 2’s RGB camera. It also provides a feed with only the RGB camera.
The Meta Webcam system allows external applications to see the live feed. For example, you can select the
Meta2 Webcam + Holographic Overlay for use with Open Broadcaster Software. This functionality is implemented as a DirectShow video source filter.
Enabling or Disabling the Meta Webcam
Warning: Enabling this functionality may adversely affect performance.
Meta Compositor component of the
MetaCameraRig, check the
Enable Webcam checkbox to enable the webcam, or clear the checkbox to disable it.
The Meta 2 exposes two webcam streams. These appear to Windows and to some video applications as webcam devices just like a physical webcam does.
- Meta2 Webcam + Holographic Overlay - This video stream composes both the Meta 2’s RGB camera feed as well as virtual objects which are seen in the headset. This is useful for recording video “through” the Meta 2, particularly while a user is actually wearing it.
- Meta2 Webcam - This video stream contains only the Meta 2’s RGB camera feed without any virtual objects.
Note: Some software, such as Skype, does not support Windows’ DirectShow video filters and thus cannot use the Webcam functionality.
Warning: Viewing more than one of each of these camera streams concurrently is not supported.
Changing the Visibility of GameObjects
You can make a GameObject invisible in the webcam (but still visible in the headset) by setting it on a layer which the
ContentCamera does not render.
- In the scene Hierarchy, select the GameObject you want to make invisible in the webcam.
- In the inspector, under the
Layerdrop-down menu, select Add Layer….
- Add a new user layer and name it
Invisible(you can choose any name as long as it is not already in use).
- Select the GameObject to be made invisible again.
- In the inspector, under the
Layerdrop-down menu, select
- Locate the
ContentCameraGameObject on the
- Under the
Cameracomponent, locate the
Culling Maskfield and click it.
- Click the
Invisibleitem to uncheck it and close the menu.
Culling Maskshould now read
To make the object visible again, simply change its layer to one which is checked in the ContentCamera’s culling mask, or change the ContentCamera’s culling mask to include all relevant layers.
See Unity Layers for more information about layer setup.
Fixing Rendering Issues for Transparent Objects
There have been changes made to the how the Virtual Webcam image is composited. The webcam texture now arrives after the texture containing the rendering of the scene. It is important that the alpha channel of the frame buffer is maintained to be coherent because it will be used to blend the webcam image into it. There are certain shaders (typically additive shaders) that will write alpha to the frame buffer when it is not necessary. To avoid this in Unity shaders, switch to using the four-value variant of the
Blend operation, and do not carry over the alpha value for the object being rendered. For instance,
Blend <a> <b>, Zero One , leaving
<b> as they were.
Read more about blending here.
The image below illustrates how the alpha channel and the webcam composite may look if the correction has not been applied.
In the next image, the correction has been applied.