STEREOSCOPIC FUN

I've been revisiting stereoscopic 3D the past while, and it's been pretty exciting and fun... mainly because I've been doing it so long that I find the visual quality of the realtime 3D getting much better.

One thing that I've finally realized is misleading is the OpenGL fixed pipeline concept of the stereoscopic frustum, or maybe it was just misleading to me. Simply put, visualize an endless cone. Cut off a near end, cut off the far end, and you have a frustum. 

As long as your frustum is set so that there is an eye and target, and moving the eye only moves the relation between the eye and target, and doesn't actually rotate the frustum, you're golden. One of the things that always struck me as odd with the go-to OpenGL stereoscopic asymetric frustum, and some of the other old OpenGL projection modes is that they resize with the output window, or expect the output to be 1:1 (unless this is just a quirk of QC and some Mac OS X scenarios, but I don't believe so). So, I often had to create custom matrix that did the correct thing anyway, since I don't want a stereo, asymetric, ortho, etc., scene being rendered with incorrect aspect ratio.

Working with forward rendered geometry in QC, and the OpenGL fixed function pipeline finally drilled this all in my head, and I've started adding stereoscopic rendering to my modern pipeline OpenGL raymarcher/raytracing system.

All of the pics, and the clip below, should resolve to look "3D" by slightly crossing your eyes enough so that there is an image between the two sides of the image in the pictures. You should bring your eyes in, not out, with these.