When I went invoke GetProjectionRaw for my two eyes on SteamVR for the Vive, to try to construct a composite camera for deep scene information past where the stereo separation matters and for use in computing joint shadow casting, I found something a bit odd:
raw frustum 0: left = -1.3975, right = 1.25023, top = -1.47588, bottom = 1.46464
raw frustum 1: left = -1.25107, right = 1.40556, top = -1.48467, bottom = 1.46426
The two eye matrices aren't just offset left to right, but also top to bottom relative to one another.
I'm mostly expressing some concern because I had hoped to try using GL_NV_stereo_view_rendering on Pascal, but that can only deal with outputting a different x coefficient between the eyes, so now I have to fudge my math a bit. (Admittedly, the difference is only about 1%.)
When I went invoke
GetProjectionRaw
for my two eyes on SteamVR for the Vive, to try to construct a composite camera for deep scene information past where the stereo separation matters and for use in computing joint shadow casting, I found something a bit odd:raw frustum 0: left = -1.3975, right = 1.25023, top = -1.47588, bottom = 1.46464 raw frustum 1: left = -1.25107, right = 1.40556, top = -1.48467, bottom = 1.46426
The two eye matrices aren't just offset left to right, but also top to bottom relative to one another.
I'm mostly expressing some concern because I had hoped to try using
GL_NV_stereo_view_rendering
on Pascal, but that can only deal with outputting a different x coefficient between the eyes, so now I have to fudge my math a bit. (Admittedly, the difference is only about 1%.)