HoloPlay Unity SDK 1.0.0
Release & Update Notes
For the Japanese version, go here.
Hi everyone — my name is Kyle Appelgate, and I’m the primary developer at Looking Glass on our HoloPlay Unity SDK. We have been extremely excited to see what creators have been making with it, and want to take this opportunity to talk a bit about what we’ve been making on our end.
The SDK started as a hacky experiment drafted by Alvin Lee, our Lead Optical R&D Engineer, and was built to accommodate Alvin’s research as he iterated over an incredible number of prototypes. Then, it was important to move quickly, create experimental features on the fly, and generally make a mess in our pursuit of what became the Looking Glass. But now that the Looking Glass is being used by hologram creators across the world, we want to shift the goals of the SDK’s development to reflect that.
Starting with the 1.0.0 release, we’re striving to make the code base more stable, make it easier to maintain and improve, introduce documentation and guides, and make it easier for users to file bug reports and feature requests. To this end, we’ve rewritten the SDK from the ground up, and I’ve had some help this time around: our Unity SDK team now includes Albert Hwang, who is handling higher-level direction of the product as well as making documentation and guides, and Shiyun Liu, who co-wrote the new version and will be handling some feature requests and maintenance.
We have a new documentation site! We will be keeping this reference up to date, as well as keeping archives for previous versions as we make new releases. We’ve also put together 8 example scenes showcasing each of our tools included in the SDK and how to use them. Albert also made a guide video to go along with them here:
Features and Additions
The HoloPlay Capture has been completely redesigned to closely map the properties of a normal Unity camera, so new users who are already familiar with Unity won’t have too much to learn getting started making holograms. It is no longer split into multiple components and game objects, and a user can treat it as they would any other camera — changing all the same settings, adding post-processing, etc.
Internally, it uses a camera component for view rendering which is hidden in the inspector, and a child object, also hidden, with its own camera handling the post-processing of the view quilt into a lightfield image.
We’ve also added handles to the gizmo to allow resizing directly in the scene view.
There is also the option to customize the color of any of these gizmos!
Shiyun and I have spent a lot of time completely reworking how the preview window is handled. It now functions by automatically finding the virtual desktop position of the Looking Glass, so there is no need for the user to manually set any of those values. It also works with components that utilize multiple display outputs, like the Extended UI and Multiplex.
In addition, multiplexing — tiling Looking Glasses together in a mosaic — is now built into the SDK. It doesn’t work with current Looking Glass units right away, however. You’ll need to update the calibration firmware on each Looking Glass individually using our Calibration Update Tool.
We’ve included a prefab that handles arrangement of the HoloPlay Captures, along with a guide scene, to make multiplexing as easy as possible.
The 3D cursor from our Model Importer app (original author Alex Duncan) is now included in the SDK as a generalized feature. It gives the user a mouse position in 3D space as well as a normal, derived from a depth-normals map rendered from the middle view of the scene— no need for raycasting or colliders.
Depth of Field
Unity’s post-processing stack is great, and some well-tuned settings in there will make content in the Looking Glass look incredible, but one effect that proved essential was Depth of Field. As objects get further from the zero-parallax plane in the Looking Glass, we start to see some artifacts caused by the discrepancy between views. Blurring the objects when they start to reach those extremes mitigates that effect greatly and allows for more freedom in composition. So we’ve included our own effect that is specially designed to work with the HoloPlay Capture, along with a guide scene on how (and why) the effect works.
This isn’t a new feature, but we’ve rewritten the Extended UI component and fixed some issues with it. This component will automatically show 2D UI elements on a regular display if it detects one is available, but if not, it will show the 2D UI in the Looking Glass.
It’s been incredibly exciting to see how many hologram creators share their work with each other in our multiview quilt format. I wanted to make it even easier to work with quilts within the SDK, so I’ve allowed you to set every variable for the quilts in code and from within the inspector.
Maintenance and Roadmap
Going forward, we’re going to be providing more regular maintenance for the SDK. We have a GitHub issues page that Shiyun and I will be tending to, and welcome feedback and input from the community.
I’m also working on an experimental LWRP branch, which you can check out here. Currently, it only has the basic functionality of the SDK with the LWRP enabled, but I’ve been hard at work trying to devise ways to optimize rendering by using either geometry shaders or instanced rendering. Some folks in our community and at Unity have been on the same track, which I’ve been extremely excited to see, so we will have some more advanced rendering techniques soon.
We’ll also continue adding more general features and updated to the main HoloPlay Unity SDK, so look forward to more from us in 2019 and beyond!