com.hidano.opentrackio.receiver
v0.1.0
Published
Receives SMPTE RIS-OSVP OpenTrackIO camera tracking data over UDP and applies it to a Unity Camera, including lens distortion and depth of field for URP.
Maintainers
Readme
OpenTrackIO4Unity Receiver
Receives SMPTE RIS-OSVP OpenTrackIO camera tracking data over UDP and applies it to a Unity Camera on the Universal Render Pipeline.
- Unicast and multicast UDP reception, JSON and CBOR, filtered by source number
- Drives a Camera you place in the scene: local pose under a tracking origin, and physical camera focal length, sensor size and lens shift
- Per-item override flags, so you choose exactly which camera properties are written
- Overscan rendering with integer supersampling (1-4) into an output RenderTexture
- Brown-Conrady lens distortion (OpenLensIO D-U / U-D)
- URP Bokeh Depth of Field driven per camera, corrected for render resolution
- Real lens values (
TrueLensState,TrueProjectionMatrix) for building derived cameras - Receive on / off: stop reception and adjust the camera, depth of field and lens distortion by hand while the output keeps rendering
- Camera snapshots: save what the camera shows (pose and real lens values) as JSON and apply it again, also in Edit Mode with Undo, to the controlled camera or any other camera (FIXCAM, switchers, working without a tracker)
- IMGUI output preview, a UI Toolkit inspector with live status and warnings, and replaceable DOF / distortion / input implementations
Requirements
- Unity 6000.3 or later
- Universal Render Pipeline 17.3 with Render Graph, Linear color space, Render Scale 1.0
com.hidano.opentrackio.core(installed automatically as a dependency)
Installation
From npm (recommended)
Add the scoped registry and the package to your project's Packages/manifest.json. The Core package is resolved automatically.
{
"scopedRegistries": [
{
"name": "npmjs",
"url": "https://registry.npmjs.org",
"scopes": ["com.hidano"]
}
],
"dependencies": {
"com.hidano.opentrackio.receiver": "0.1.0"
}
}From a Git URL
Unity Package Manager cannot resolve Git URL dependencies of a package, so add Core first, then Receiver:
https://github.com/Hidano-Dev/OpenTrackIO4Unity.git?path=OpenTrackIO4Unity/Packages/com.hidano.opentrackio.core
https://github.com/Hidano-Dev/OpenTrackIO4Unity.git?path=OpenTrackIO4Unity/Packages/com.hidano.opentrackio.receiverAppend #v0.1.0 to both URLs to pin a release tag.
Getting started
- Create an empty GameObject as the tracking origin and make your Camera its child.
- Add Add Component > OpenTrackIO4Unity > Camera Controller and assign the camera to Target Camera.
- Set the source number, port and unicast / multicast, then enter Play Mode.
To try it without a tracker, import the Basic Receiver sample from Window > Package Manager > OpenTrackIO4Unity Receiver > Samples. It opens with Receive off: apply the bundled snapshot with Snapshot > Apply... in Edit Mode, then enter Play Mode to see the output. The Spout Output sample shows how to send the output texture with KlakSpout.
See the user manual for setup, receive on / off, URP constraints, derived cameras, camera snapshots, Spout output, extending and troubleshooting.
