0

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

Jeremy Bell
  • 5,253
  • 5
  • 41
  • 63
Tribes
  • 35
  • 1
  • 7

2 Answers2

1

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.

0

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.

When used as an ID/index, it is zero-based,so values range from 0 to (count 1) inclusive, for a given viewer. Use as an ID/index is not meaningful except in conjunction with the ID of the corresponding viewer. (that is, there is no overall "eye 0", but "viewer 0, eye 0" is meaningful.)

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:

Wrapper for a viewer, eye, and surface bound to a display config.

osvr::clientkit::Surface Class Reference

The Surface class contains info like projectionMatrix and distortion.

reden
  • 968
  • 7
  • 14
  • Yeah but in which case will we have more than one surface per eye ? – Tribes Jun 07 '16 at 08:55
  • Well, as the one who designed it :-P You could have multiple surfaces per eye if you have multi-res shading done a particular way, a tiled HMD, or a CAVE. That said, most rendering with OSVR is now done with RenderManager, rather than with that API (sadly, because I was fond of the design), and they haven't fully converged yet - but you'll probably find RenderManager simpler as it does more for you. – Ryan Pavlik Jul 08 '16 at 14:59