Can someone enlighten me about the osvr architecture ?
Why would we have more than two eyes ?
Is surfaces concept is made if there is multiple screens on the headset ?
Thanks for your answers
Can someone enlighten me about the osvr architecture ?
Why would we have more than two eyes ?
Is surfaces concept is made if there is multiple screens on the headset ?
Thanks for your answers
2 eyes are there to enable future expansion without code changes. In a two-user game, you would have 4 eyes. If you want a preview window from head space (between the two eyes) this would result in 3 eyes. When eye tracking is used for foveated rendering with layers, the background layers may be rendered from a canonical eye view and the high-resolution inserts from specific eye orientations (the projection actually goes through the nodal point of the eye, which is in front of the center of the eye, so shifts as the eye rotates).
Multiple surfaces per eye will also enable foveated rendering and support rendering to HMDs that have highly non-rectangular viewing areas before distortion correction is applied.
I think that it's mostly for convention purposes that the number is arbitrary. It will not happen IRL. If you have multiple Viewers, each will have a "0" eye and a "1" eye.
svr::clientkit::Eye Class Reference
If you would have several screens it would more likely be multiple Viewers as Surface is a concept that is bound to a Viewer and an Eye:
osvr::clientkit::Surface Class Reference
The Surface class contains info like projectionMatrix and distortion.