Forum Discussion

🚨 This forum is archived and read-only. To submit a forum post, please visit our new Developer Forum. 🚨
enilsen16's avatar
enilsen16
Honored Guest
12 years ago

Software support for rift...

I posted this topic on the oculus reddit page but it didnt get the response i wanted. I wanted to know what people that have used the rift think of using the rift in 2d. i have heard a few videos mention that the rift wasn't the easiest to take off and put on. that made me wonder about using the rift for everyday applications. Being able to rotate your head 180 degrees to view multiple windows of browsers or word documents. the other 180 degrees could display the environment behind you. when you tilted your head down you could see the keyboard/mouse and up would show the ceiling. As soon as switch to either a game or application that directly supports the rift, then it would disable. then enable when you quit it. Please understand this is all hypothetical. I am just curious to know what other developers think of the idea.

I imagine that eventually if the rift sells well then someday eye tracking will be added which would help a bunch in this situation. I realize that the main focus of the rift is for gaming, but i feel that it could be a monitor replacement rather than a accessory.
thank you...

15 Replies

  • Well, it basically the equivalent of the control circuitry in a normal monitor.

    If you were to take a desktop LCD display, and open it up, you'd find a circuit board that converts the inputs (vga, hdmi, DVI, etc), to a format that the display panel actually understands.

    it may surprise you, but an actual LCD panel by itself isn't clever enough to understand the signals a video card puts out.

    The control box therefore, takes the signal from the computer in whatever format it's using (in the case of the rift it expects DVI as input) and converts it to something the LCD panel in the headset actually understands.

    That box exists because all that circuitry (as well as the circuits to do with position tracking) is actually necessary for the device to work, and although it could probably be a little smaller, it's still needed, and would make the headset a lot heavier. (on top of that, you'd then have much thicker and heavier cables attached directly to the headset as well.)

    That box does a lot. You're probably just not used to thinking about what a monitor actually has to do to be able to display a picture.
  • drash's avatar
    drash
    Heroic Explorer
    "KuraIthys" wrote:
    The occulus rift is claimed to have a horizontal field of view of about 90 degrees, and a vertical field of view of about 110 degrees.


    FYI, I believe the Rift has a *vertical* FOV of 90 degrees, making the diagonal FOV 110 (which is generally what is advertised, kind of like HDTV sizes are based on their diagonal measurements).


    But yes, with the Rift on, we'll all have to get used to oversized text and other interactive controls mapped onto 3D planes for now. I grew up with DOS, retro graphics, 320x200 resolution and all that, so I don't mind 640x800 per eye at all. :p
  • If one was to take on the idea, where would be a good starting point? Do you think we are looking at an application or a driver? I understand its probably something that isnt really possible till the consumer version. but any information on how to start would be awesome.
  • enilsen16, if what you're looking for is to have your computer "desktop" brought into a virtual environment, that's not too hard. With Linux, you'd write or modify a window manager to render to a texture... or go a little wilder and have the window manager allow positioning all windows arbitrarily in your virtual space. Windows and Mac, I don't know... I think for both the "window manager" is integral to the OS? Developing on Linux, one could probably import a simple window manager into your own game engine... hmm... that'd be interesting... accessing your desktop through a console in a game. ;)

    An example of a windowmanager rendering windows in 3D: (skip to about 1min) http://youtu.be/4QokOwvPxrE
    A simple virtual environment with head tracking and window management: http://youtu.be/3q3gSh42iKM

    Of course there's no requirement to render windows to flat planes. It would be nice to automatically render 3D scenes (eg. 3D modeler) but that might not be easy... you'd have to intercept draw calls or something? Hmm... I'm not sure what possibility there might be for "hijacking" libGL. I'm sure this would also break a lot of application behavior, especially with mouse input/interaction/selection.
  • "drash" wrote:
    "KuraIthys" wrote:
    The occulus rift is claimed to have a horizontal field of view of about 90 degrees, and a vertical field of view of about 110 degrees.


    FYI, I believe the Rift has a *vertical* FOV of 90 degrees, making the diagonal FOV 110 (which is generally what is advertised, kind of like HDTV sizes are based on their diagonal measurements).


    But yes, with the Rift on, we'll all have to get used to oversized text and other interactive controls mapped onto 3D planes for now. I grew up with DOS, retro graphics, 320x200 resolution and all that, so I don't mind 640x800 per eye at all. :p


    Heh, yes, well, it was a pretty rough calculation, and I was being pretty fast and loose with the field of view of physical displays as well.
    I just wanted to get a sense of the implications of trying to get virtual screens set up

    "atavener" wrote:
    Windows and Mac, I don't know... I think for both the "window manager" is integral to the OS? Developing on Linux, one could probably import a simple window manager into your own game engine... hmm... that'd be interesting... accessing your desktop through a console in a game. ;)



    Well, I've seen things in the windows SDK that (used to at least; - I'm talking windows 98 era) let you manipulate the desktop root, and display it in your application window. By extension, it also meant other windows will end up in the area you've marked as being the desktop.
    This used to be used to create replacement interfaces, but that seems to have gotten harder to do with newer versions of windows.

    (There used to be a command in, I think, windows.sys which was called shell= - Ordinarily it was set to 'explorer.exe', but you could literally set it to any windows program, and that's all that would load when you started windows. I once tested it by using notepad... If you started windows, notepad (and absolutely nothing else, no desktop... Nothing.) would load.
    If you chose to exit notepad, windows would shut down. - The only loophole being that ctrl+alt+delete would still open the task manager, and the task manager can run arbitrary programs.)

    Another point is that in windowed mode, DirectX (or at least, DirectDraw, - not sure about direct3D) warns you that the 'frontbuffer' for your application is the entire screen, not just the area occupied by your application window.
    Usually this is a nuisance, because it meant having to calculate the position and size of your window onscreen to avoid drawing on things you shouldn't, but it has been exploited in the past (by screensavers in particular), to draw on top of other applications.

    The frontbuffer in DirectDraw was a standard directDraw surface, which you could read and write to... So all of this hints at the possibility that once upon a time you could do some rather interesting hacks.

    These days I'm not so sure, because a lot has changed, and the way DirectGraphics (which replaced both Direct3d and DirectDraw) behaves is somewhat different.

    That said, I still suspect there's a method of getting the entire desktop (and all windows on it) in a way that can behave as a texture. (If nothing else, the ability has to exist because windows has built-in screen capture functions.)

    Some things will be broken, certainly. I know for instance that a screenshot containing a hardware video overlay will tend to show up with a blank blue box where you'd expect video...
    I also know of software that can record video of the same, so there is almost certainly a way to do it.

    I'll have to dig into the windows and directX sdk's and see what I can find. (As for macs... I honestly have no idea...)