Implementing an Omni-directional Stereo Camera

Is it possible to implement an omni-directional stereo (ODS) camera in Cheetah3D? ODS is a true VR 3D format now available in YouTube. This is different than VR 360 degree video which is not true 3D. I posted a tutorial on how to easily make and upload a YouTube VR 360 degree video using C3D's Panorama camera in the tutorial section of the forum: https://www.cheetah3d.com/forum/index.php?threads/13590/

The ODS camera is panoramic and stereo everywhere. It has two video streams (one for left eye and one for right eye) stored one above the other in each frame. Having left and right eye information means that objects appear to have depth.

The left and right cameras are different than the Panorama camera in Cheetah3D. The separation between the cameras is the distance between your eyes. The cameras are implemented as if you look straight ahead for the center column of pixels in the center. To get the next column of pixels to the right you rotate the cameras (like your head would rotate) a little to the right as shown in the image below. To get the whole image you rotate 360°.

Untitled.png

Is it possible to write a javascript to do this? Would it be hard to add as new type of camera built into C3D?

Here is a link to a short Google PDF document describing the ODS. download PDF There is pseudocode to implement an ODS camera at the end of the document.

Here is a link to a Google page about ODS video: https://support.google.com/youtube/answer/6316263?hl=en
 
Looks very interesting, you should also post in the script section.

I was unsure where to post since I am not sure whether C3D javascript has access to the camera. I am a programmer but my javascript skills are weak. Worse than my Spanish and I don't speak Spanish :). I was sure though that someone here knows whether it is possible or not.

Long long time ago I made some red/cyan/Dubois renderings with a "stereo-camera" set-up:
https://www.cheetah3d.com/forum/index.php?threads/1229/

Cheers
Frank

The 3D lizard was very cool.

At first glance I thought I could do two panoramic cameras and paste them together myself, but the cameras are not panoramic (see the top post for a description). It may be possible (but not practical) to do one column of pixels in an image, rotate the camera on a circle rig, take another column image until you have a complete image for one eye. Repeat with an offset camera for the other eye. Assemble the thousands of images together to make one composite image. Its probably too tedious and slow to be successful.
 
I'm sorry but something like that can't be implemented via a Javascript. That feature have to be implemented directly into the renderer. It's a new camera projection type. Luckily it's extremely easy to implement so I'm tempted to add it.

Wow that would be awesome! Here is a link to a PDF document that explains the ODS camera. There is even some pseudo-code at the end.

https://developers.google.com/cardboard/jump/rendering-ods-content.pdf

It seems that VR is finally taking off. Facebook bought Occulus VR, Sony is pouring millions into PSVR for the PS4, and Google is always eager to add more content for YouTube. The Google Cardboard VR headset that uses your phone only costs $25 (or less). Even Apple seems to be making inroads as they released Reality Converter a few days ago.
 
You could build a six camera rig, like a cube, one camera for each side plus up and down. Typically they have a 90 degree field of view. Duplicate the rig and move it a small distance (the interocular of the eyes) and you should be good. You'd still need an outside software to convert the 6 rendered images, for each eye, into a 360 panorama.
 
I've added the ODS projection to Cheetah3D but I'm not too happy with it. I'm not sure if rendering both frames (eyes) at the same time is a good decision. It might be better to render the left and right eye independently and composite the final image externally.
Bildschirmfoto 2020-01-20 um 17.42.47.jpg
 
I am so excited about this.

The image looks like I would have expected. Having both eyes in the same image is much more convenient but there needs to be a way to set the inter-eye distance between the left and right eyes. Having two movies would require combining them in Final Cut, Motion, etc. but that is not hard.

Is there a beta version to try out?
 
Back
Top