Hello, I did another implementation of interlaced 3D, but this one does not require UnityPro to work.
I did some tests and it appeared faster that the render texture implementation (on the device, on PC the render texture is faster), but it could be a dodgy fps counter so I strongly advice you to test it.
As the freevi guys are all in it for collaboration with the community I created a git repo here:
An apk of the demo scene can be found here: https://drive.google.com/file/d/0B2bMrAy-mFHIY29GaVBSVkNVU1k/view?usp=sharing
Don't forget to add the sdeck plugin to the Plugins/Android folder.
To open the scene you will need Unity 4.6 or later because I used the new gui, but the interlacing implementation can work on older versions as well.
It still has some problems:
- The cameras are not set up properly so the overall quality is not the best.
- I also suspect that it could be optimized a lot. This uses my second shader ever so I just can't wait to see some shader guru use texture (instead of geometry) to mask the environment.
- If you reduce the near clipping plane camera distance you might come across some floating point issues.
- You should keep the camera position and rotation centred to the world when you start your app. Once the masking geometry is generated you can rotate and move it around as normal.
If you have a problem using this you can message me on twitter: @grigtod
I just pushed a small change that boosts performance even more (on a device and on pc).
The following results are taken from the editor ( Unity3D built in fps counter) and seem quite promising. The demo scene from the repo was used:
- Original (first) version: 82-83fps
- New version when "Combine filter geometry" is checked for both cameras: 220fps.
This small change even made Zen Build playable on a device.
From 2-3 fps it got to ~20fps :)
All I did was combine all the quads into meshes (one for each eye).
I'm fairly convinced that this implementation beats the render texture performance from the original implementation from INS3D.
Both the eye cameras and the "InterlacedCam" should start in the centre of the world. You can move and rotate them after the geometry is created!!!
So I did some tinkering and may have improved on your solution Grigor.
- You don't have to have the camera in the center of the world now.
- Added side by side for the 3D TVs/monitors.
- Improved accuracy for size and position of the quads
Here is the link of the package:
Hope this helps!