Developed by Tibor Goldschwendt, Four Eyes Lab, UCSB.
AlloUnity will enable the full-surround display of Unity3D-rendered scenes in the AlloSphere. Therefore Unity3D renders the scene to a cubemap. The cubemap is then extracted from Unity3D, H.264 encoded and sent over RTSP/RTP. In the AlloSphere the stream is decoded, drawn as the background of a omni-stereo rendering and displayed.
Work in progress.
AlloUnity currently consists of these five modules:
- CubemapRenderingPlugin: C# script for rendering a cubemap in Unity3D.
- CubemapExtractionPlugin: Extracts the cubemap from Unity3D and copies the texture data from the GPU to the CPU.
- AlloServer: Encodes the cubemap as six streams and provides the stream via RTSP/RTP.
- AlloPlayer: Receives the cubemap in the AlloSphere, decodes it and displays it.
- AlloShared: Resources shared between the modules explained above.
Install dependencies:
Then build Unit3D scene and source.
- Create or open a Unity3D scene (placed in
<UnityProjectFolder>
) - Import asset
CubemapRenderingPlugin/RenderCubemap.cs
- Add
RenderCubemap.cs
to the camera that should be the viewpoint of the rendered cubemap. - Build scene for your operating system (named
UnityProject
)
Build source with CMake and your favourite build environment, e.g.:
cmake -G "Unix Makefiles" -DUNITY_PROJECT_PLUGIN_DIR:PATH=<UnityProjectFolder>/Assets/Plugin
make
On success, this places
- CubemapExtractionPlugin in
<UnityProjectFolder>/Assets/Plugins/
- AlloServer and AlloPlayer in
Bin/
- AlloShared in
Lib/
Compilation tested with Visual Studio 2013 Ultimate on Windows, Xcode 6 on OS X and make on Ubuntu.
- Start
<UnityProject>
on rendering machine - Start AlloServer on rendering machine
- Start AlloPlayer on display machine
Order matters!
BSDv3 License.