Stereoscopic Dome

I can’t seem to find what I’m looking for here or through several research rabbit holes. Is there currently any means for sterescopic dome setup in gamma? In this case there is an intended ‘north’ and a tilted dome arrangement, so it seems plausible to sort out some parallax stereo camera rig, focused on one point, letting the illusion fall apart at the edges, but does that even hold up with a dome camera? Alternatively I could see a stitched camera array, potentially covering the entire surface, but have doubts such stitching would hold up as well in dome format (vs a flat perspective rig). It seems some packages have this feature built in, but I haven’t been able to find the background details on the techniques used. Any advice (or preferrable pre-canned patch or nuget I missed)?

Hi I think they do that by defining three eye points / cube cameras instead of two and then blend panoramas so on nearest plane you have image from left eye and right eye… However not so sure how to stitch images…

only for reference, not sure how helpful, link to a related older thread: Stereoscopic Panorama?

Looked at that, but doesn’t help too much in this regard. and definitely concerns reg. speed hits matter when I would like (if possible) live interaction.

I found a couple things that might be on the right track:

which gives a good deal of useful information but all hinges on a stereoscopic dome lens shader… fortunately:

Unfortunately, it’s for specific rendering packages, and sadly, the wiki page about maths doesn’t actually explain any – so for this to be useful, I’d need a deep dive into the code which is beyond my skill set (at least without dedicating a tremendous degree more time). I feel like there has to be a shader-code lens shader out in the wild, but maybe not. Or maybe it’s possible to adapt aspects of the c++ (for vray ie) to c#. Maybe some of this helps someone else who knows these things better.

1 Like

i never tried it but there is also vvvv-Dome by @velcrome for beta. maybe a starting point for further endeavours…

Hi, it’s likely almost impossible to do that for real-time, unless you are a shader guru, the problem, that you are going to need one camera per eye or one cube camera per view. It’s already going to be quite computation expensive, e.g. at list 3 - 6 4096x4096 renderers. Then you gonna need to have stitching pass on top, and then mapping and alignment to actual beamers… However you are doing half-sphere so there is stuff you can optimize…

As for camera setup i think, you prolly get inspiration from that:
image

As for known nodes that you can try to play with there is CubeToSphere, CubeToPano in vvvv betta dx11… Those are prolly starting points for such rigs…

I’m guessing the three cube cameras are the way to go…
Then you can get normal or direction by doing doing something like cameraPosition - sphereCenter…
Then using this value you can kinda mask the parts of image you are after

image

I should note that I don’t have any expertise in beta and have on multiple occasions tried to reverse engineer beta patches from myriad posts on this forum when I can’t find a Gamma specific solution only to walk away defeated every time. (along these lines, I’m really trying to spend more time trying to work out the intricacies of gamma, not learn the basics and possible intricacies of beta :)

As per real time stereoscopic, there are other packages that have this apparently solved. And the seemlingly simple code from Paul Bourke from 2007[1] would imply such a lens shader would not be wildly complicated (if I knew the first things about coding a lens shader, and there’s such an incorporation into Gamma[2]). It honestly seems like the shader would just do a per pixel calculation with a per eye shift of camera view point and would be a much simpler operation than a multi-cam mask & stitch job or cube map → domemaster circular pano. Obviously, I don’t know enough of what I’m talking about to make any claim on the right way. Done plenty of monoscopic stitching, but that’s not the game here :)

Anyways, just hoped this was an already solved issue that I just needed to find the right direction for, but seems not. In the meantime will still continue taking suggestions and even if I can’t sort them, perhaps someone more knowledgeable can.

1] Additional cameras, mostly stereoscopic, for PovRay

2] but actually, and probably should be another forum topic, but is there a way to add lens shaders in Gamma beside persp. and ortho? Would be a useful thing to add for a variety of reasons if not… here’s a random houdini article on them, but it’s been a thing for a while since physical 3d rendering: Lens Shaders for GameDev | SideFX