Users can now make changes to their MixCast configuration/parameters in parallel with/while running an SDK 2.4.0+ experience. This greatly reduces the time it takes to lock in settings since there’s no need to switch back to MixCast’s VR configuration app as often (really only to perform alignment calibration).
Tracking Space Alignment Improvements
Updates to SDK tracking/alignment logic have been made so that more project setups could be supported and with less fuss. MixCast can now fully accommodate both Seated and Standing/Room Scale tracking modes, and handles Recentering appropriately. You do not need to run SteamVR with Oculus platform titles any more either. To ensure that your project’s configuration is fully supported, check the compatibility details below.
- If using the Oculus Integration Package and/or the SteamVR Plugin, both Seated and Standing/Room Scale tracking modes are supported from engine version 5.4 up regardless of whether you’re utilizing Unity’s built-in Virtual Reality support, the XR Management System, etc.
- If you can’t include the above plugins, then MixCast’s SDK can support your project in the following circumstances due to engine limitations:
- Legacy Virtual Reality functionality – both Oculus and OpenVR are supported, in Standing/Room Scale tracking mode only, from engine version 2017 up.
- XR Management System – Oculus is supported in Standing/Room Scale tracking mode only. OpenVR is not yet supported as there hasn’t been an official release.
Expanded Backdrop Options
As part of the addition of Physical Backdrop rendering, the MixCast SDK rendering pipeline has been expanded. Developers should flag which backdrop modes their experiences support under the MixCast Project Settings through the new options:
- Can Render Opaque BG (supports Virtual Backdrop style compositing)
- Can Render Transparent BG (supports Physical Backdrop style compositing)
If you’re building a VR application, you should have at least Opaque BG rendering supported, and for AR, Transparent BG, but we encourage you to think about supporting both as well!
XR Management Plugin Support
Unity has shifted to a package-driven approach to XR support and has released Oculus platform support under this new structure (though OpenVR is still forthcoming) and as such the MixCast SDK needed new logic to understand when/how MixCast should run. The 2.3.4 SDK for Unity introduces support for this new architecture.
- Fixed issue with aligning experience and MixCast coordinates when using the Oculus SDK. Have also ensured that Oculus Rift S and Quest Link headsets are correctly handled.
Archived Download: MixCast SDK for Unity (2.3.4)
Re-introducing support for the Lightweight/Universal Render Pipeline package to the MixCast SDK for Unity. Supported versions of the package are LWRP 6.9+ / URP 7.1.9+.
Archived Download: MixCast SDK for Unity (2.3.3)
A long time in the making, this change moves the responsibility of combining mixed reality layers from the MixCast SDK for Unity to the MixCast Client (as was already the setup for the Unreal SDK). This reduces the likelihood of developers encountering friction with project compatibility, decreases the performance impact of mixed reality on the VR user’s experience when MixCast is running, and enables flexibility in our development of future features, among other benefits. The sole feature which needs more time to develop under the new scheme is Subject Lighting, which will make a comeback later in the 2.3 update cycle.
In summary, you should now see fewer scripts and assets in the package and encounter fewer issues in integration, without an impact on nearly any of MixCast’s offered features.
Foreground Clipping Improvements
Until this update, the Unity SDK used the Far Clip Plane value of the engine’s Camera component to discard objects/pixels that are behind the user’s approximate depth (not in the ‘foreground’). This unfortunately produced some artifacts or unwanted behaviour in Unity, such as shadows in the foreground fading away unintentionally as they near the segmentation depth, and occlusion culling hiding objects that should appear.
Starting now, when rendering the foreground layer for a camera, the depth buffer is populated with the desired clipping depth, before all geometry, so Z-Testing will perform the discard instead of the far clip, avoiding the aforementioned issues.
- Resolved a case where high CPU use is seen during an SDK initialization phase.
Archived Download: MixCast SDK for Unity (2.3.2)
Expanding SDK State Control
- The active state of the MixCast SDK GameObject now controls whether MixCast connects to the application, so developers can enable/disable MixCast in their application at runtime (ex: running in non-VR mode).
- The MixCastSdkBehaviour component now exposes a flag to override the default reparenting behaviour of the GameObject. This allows developers to use parenting in conjunction with the GameObject activation feature to manage MixCast state more easily.
- LWRP build errors fixed.
Archived Downloads: MixCast SDK for Unity (2.2.3)
Expanded Rendering Customizability
- Post-processing and other camera effects can be specified for the scene rendering and/or final compositing passes separately.
- Multiple cameras can stack to render the scene by providing a custom Scene Layer Camera prefab with multiple camera components attached.
Lightweight Render Pipeline Support
MixCast supports projects using the Unity Lightweight Render Pipeline (v4.0.0 and up).
Archived Downloads: MixCast SDK for Unity (2.2.2)
- New Video Input library improving compatibility/stability and a small boost to performance.
- Previous MixCast SDK titles can’t be imparted with the new video input library capabilities meaning some now-supported devices won’t function in them.
Archived Downloads: MixCast SDK for Unity (2.2.1)
Setting up MixCast now just requires adding a single prefab to the root of your scene! Existing projects will continue to function as expected.
MixCast now maintains a Project Identifier for each project that the SDK is imported into, in order to better track which VR experience media is being generated from.
Custom Object Tracking Support
Added ability to supply additional transforms to MixCast from the SDK so they can be referenced as transforms to be tracked.
Migrated Output Logic
Displaying to the desktop, taking snapshots, and recording and streaming video are no longer the responsibility of the SDK. Benefits include fewer files to import and forward-compatibility of more MixCast functionality.
- MixCast output is anti-aliased correctly now
- Oculus alignment logic made more robust
Archived Downloads: MixCast SDK for Unity (2.2.0)
- Introduced Alternative UI Input System
- Improved RealSense Connection Logic
- Eliminated Reliance on MainCamera Tag
- Eliminated StreamingAssets Folder from Package
- Moved Remaining Lighting Project Settings to Central Settings Asset
- Added support for the Elgato Cam Link
- Fixed color space conversions in MixCast textures
- Added buffer delay to input feed projection
- Builds including the MixCast SDK on OSX will no longer report errors
- Updated to latest Intel RealSense SDK integration
- Added support for SteamVR SDK 2.0
- Added support for Unreal 4.20
- Optimization for Oculus alignment in different SDKs
- Fixed snapshots/timelapse/video recordings not triggering reliably on Unreal SDK titles
- Added editor window to Unity SDK to debug alpha handling
- Improved error handling and log messaging in SDK when room setup is incorrect
- Fixed gc allocation in SDK caused by RealSense device filtering
- Fixed a potential memory leak with the sensor pose checker
- Centralized Project Settings: Created a central asset for accessing and managing global MixCast project settings.
- Improved Define Symbol Control: Automatic symbol management can now be disabled so developers have more control over their project and build pipelines.
- Antialiasing Support: Customizable antialiasing setting for MixCast cameras.
- Shader Wizard: Implemented a wizard to automate the process of updating shaders and materials to support full MR transparency in minutes.
- Preview Subject in Scene: At runtime, the subject is optionally displayed in the Scene View.
- Added Chromakey Desaturation feature to reduce the visibility of the keying color on the subject after background removal.
- Introducing automatic MixCast Snapshot capture allowing for periodic screenshots to be taken without user input.
- Added optional user-controlled branding feature to add a graphic to the MixCast output automatically.
- Added user option to activate MixCast as soon as a MixCast-ready application opens.
- Fixed issue where certain Camera Clear Flags in Unity 5.6+ break Buffered Mode.
- Added optional Player lighting which allows Unity lights to apply to the player
- Added optional Player-relative camera feed cropping
- Added lightweight localization system
- Added user framerate control
- Greatly improved feed synchronization in low framerate situations
- Improved OpenVR tracking device serialization to match by Serial ID
- Fixed bug involving deserializing the static subtraction textures in a linear color space project
- Fixed Oculus space mismatch bug
- Fixed camera HDR warning in Unity 5.6 and above
- Merged input feed shaders and materials using a multi_compile shader for easier custom effects.
- Added Posterize and HSV Modify (Desaturate, etc) variations on the input feed shader for custom player effects. Apply one of the shaders to the supplied Camera Feed material to activate it.
- Added tracked motion smoothing to reduce tracking and/or hand jitter.
- Improved WebcamFeed/MixCastCamera relationship for separation of concerns.
- Studio has new quick setup for FoV and Alignment.
- Fixed HDR texture allocation.
- Added support for Oculus SDK based projects. Created Oculus and SteamVR specific code branches and an Editor process to activate the appropriate one(s) using define flags MIXCAST_STEAMVR and MIXCAST_OCULUS.
- Added automatic update checking.
- Allowing “None” option for input device for a purely virtual camera that can still be tracked by a controller.
- Created additional isolation modes: “None” and “Static Subtraction”.
- None simply disables background removal while still allowing for foreground-based Mixed Reality.
- Static subtraction provides a rudimentary background removal system for fixed cameras which doesn’t require a greenscreen. The scene setup can influence the resulting quality greatly.
- Added ability for user to separate the In-Scene Display from the Camera location. As a result the visual representations are now in separate sub-groups of the MixCast Camera prefab.
- Expanded tracked camera capabilities to be configurable to any tracked controller.
- Created SetRenderingControllerForMixCast to be attached to the default SteamVR_RenderModel object for the controllers if you don’t want them to appear in the Mixed Reality output
- Arrow buttons can be used while camera is being tracked by a device
- Restructured UI for clarity and expandability.
- Added buffered output mode with configurable game delay for camera latency compensation.
- Added icon on in-scene display to communicate if the camera is tracked.
- Added device resolution selection.
- Added quadrant output mode for recording.
MixCast SDK for Unity now available!