It is currently Tue Oct 21, 2014 1:00 am



Reply to topic  [ 136 posts ]  Go to page 1, 2, 3, 4  Next
 Deskope - Work in Windows with the Rift 
Author Message
Cross Eyed!
User avatar

Joined: Wed Jul 06, 2011 9:47 pm
Posts: 102
Deskope is an application which allows you to work in Windows with the Rift. The only requirement is that the Rift be in extended desktop mode. It works on any Windows from XP to 8.

The control panel has changed a bit since I made this video but it should get you going.

Most settings are written to the registry automatically but some can be changed manually at: HKEY_CURRENT_USER\Software\Deskope

I look forward to your feedback.
If you used Deskope before v1.1 (it had an MFC icon instead of the one of the Rift), please delete the entire Deskope registry key (HKEY_CURRENT_USER\Software\Deskope) to make sure v1.1 runs correctly.
Download: http://sourceforge.net/projects/deskope
Source Code: https://github.com/AngelJA/Deskope

Note: Deskope is free! I urge you to download and enjoy it guilt free and free of charge! However, if you really enjoy Deskope and would like to show your gratitude for all the work I've put into it, I would be flattered and super grateful to accept your donations. :D
Image


Last edited by AngelJ on Sun Jul 28, 2013 8:43 pm, edited 25 times in total.



Wed Apr 17, 2013 2:59 am
Profile
Petrif-Eyed
User avatar

Joined: Sat Sep 01, 2012 10:47 pm
Posts: 2652
AngelJ wrote:
This is a very simple and unpolished program which turns your Rift into a scope through which you can view your Windows desktop. Just make sure your Rift is plugged in and in extended desktop mode and launch the exe, then close it through the taskbar or with Alt + F4. It should work on anything from XP to 8.
Your app is dependent on the VC++ version 11 NON-Redistributable Debug Run-Time library MSVCR110D.dll...

The Debug libraries are not included in the downloadable Redistributable Run-Time Library packages, and the Microsoft product license agreement forbids distributing them.

I have VC++ 10 installed, as recommended for the OculusVR SDK, so I have the version 10 debug libraries. However, you app wants version 11 DEBUG, which I do not have.

Please upload a Release version, so we can test it without needing to download and install some humongous compiler package just to get the Debug library your app wants.

Thanks.

EDIT: This time it started up over my right shoulder, due to where my RiftDK was sitting when I started it. It would be nice to rotate my view in all directions, to center the screen where I want it. For now, I need to stop it, and start it with my RiftDK already pointing where I want the screen center, I think... No, still off the the Right. I must have had my RiftDK pointed left the first time I started it...

_________________
“The creative person wants to be a know-it-all. He wants to know about all kinds of things: ancient history, nineteenth century mathematics, current manufacturing techniques, flower arranging, and hog futures. Because he never knows when these ideas might come together to form a new idea. It may happen six minutes later or six years down the road. But he has faith that it will happen.” ―Carl Ally


Last edited by geekmaster on Wed Apr 17, 2013 12:01 pm, edited 3 times in total.



Wed Apr 17, 2013 10:19 am
Profile
Cross Eyed!
User avatar

Joined: Wed Jul 06, 2011 9:47 pm
Posts: 102
Thanks geekmaster. I didn't want people to have to download anything to run this, I didn't know that would happen. I wanted to upload a Release version but I couldn't get it to build because of this error:
Error error C1047: The object or library file 'Lib/Win32/libovr.lib' was created with an older compiler than other objects; rebuild old objects and libraries

Any guidance would be appreciated. And thanks again for trying it out.

Edit: In the meantime I'm installing VS2010 which I think will allow me to build the Release version. I didn't realize Oculus recommended that version.


Wed Apr 17, 2013 10:29 am
Profile
Petrif-Eyed
User avatar

Joined: Sat Sep 01, 2012 10:47 pm
Posts: 2652
I installed VC++ 2010 because that is what the OculusVR SDK recommended. I rebuilt the entire OculusVR library using 2010, just to prove I could.

You should be able to rebuild the OculusVR SDK with your compiler version. There is a solution file for the compiler in the SDK.

_________________
“The creative person wants to be a know-it-all. He wants to know about all kinds of things: ancient history, nineteenth century mathematics, current manufacturing techniques, flower arranging, and hog futures. Because he never knows when these ideas might come together to form a new idea. It may happen six minutes later or six years down the road. But he has faith that it will happen.” ―Carl Ally


Wed Apr 17, 2013 10:46 am
Profile
Petrif-Eyed
User avatar

Joined: Sat Sep 01, 2012 10:47 pm
Posts: 2652
geekmaster wrote:
AngelJ wrote:
Subject: Deskope - A Simple Windows Viewer
geekmaster wrote:
I installed VC++ 2010 because that is what the OculusVR SDK recommended. I rebuilt the entire OculusVR library using 2010, just to prove I could.

You should be able to rebuild the OculusVR SDK with your compiler version. There is a solution file for the compiler in the SDK.
You were right, I was able to rebuild in VS2012 and got my release version to build. Before I upload a new version would you mind seeing if this one works for you? Thanks again for your help.

<download link removed>
Awesome! My 2560x1440 desktop goes from down about 45-degrees (knee level), to almost straight up above my head, and from about 45-degrees to my left and 45-degrees to my right.

When I look to the left beyond my desktop, it weirds out and draws repeating rectangular chunks of the screen over beyond the desktop.

Recommendation: Turn off the SINGLE hardware mouse cursor, and draw your own on both sides of the screen. It is weird seeing it only in one eye. My code does a software mouse cursor...

There is no pre-warp distortion, but that is actually CORRECT in this case, because it is wrapped around me on a sphere (very usable) and not stretched off in the distance on some giant wall in front of me. I like the spherical projection (no warp) MUCH more than a planar projection, because the text is MUCH more readable when not warped.

REQUEST: May I post this PM in your thread?
AngelJ wrote:
Yeah, please post this PM in the thread so we can continue the discussion there. :)
I removed the download link provided in the PM. You can update the download link in your first post above, which you can keep updated with your latest version. (instead of having a stale link here)...

_________________
“The creative person wants to be a know-it-all. He wants to know about all kinds of things: ancient history, nineteenth century mathematics, current manufacturing techniques, flower arranging, and hog futures. Because he never knows when these ideas might come together to form a new idea. It may happen six minutes later or six years down the road. But he has faith that it will happen.” ―Carl Ally


Wed Apr 17, 2013 11:36 am
Profile
Two Eyed Hopeful
User avatar

Joined: Sun Aug 03, 2008 10:17 am
Posts: 68
A premake file instead of a solution would be good for the Oculus SDK.
I am not sure I can do it soon, but I'll do it when I have the time.


Wed Apr 17, 2013 11:38 am
Profile
Petrif-Eyed
User avatar

Joined: Sat Sep 01, 2012 10:47 pm
Posts: 2652
I really LOVE being surrounded by pixels containing my Windows desktop like this! When the source code is available, I would like to downsample the image so I am surrounded by a bunch of virtual display (with very tiny text), so I can zoom into whichever one I want to read. This is amazing! WAY better than other virtual desktops, IMHO!!!

I was planning to do a spherical desktop like this, but now I do not have to. Thanks AngelJ!

P.S. Do you plan to publish source code, or do I still need to keep this on my "To Do" list?

EDIT: For this to work, you cannot duplicate displays. The RiftDK needs to be the primary display, and your other monitor is projected around you in VR space. I wish my other monitors still worked after I upgraded to Win 8 (which freaks out if I plug a monitor into any of my onboard HD 4000 ports while an NVidia board is installed). I would like to see if this spreads my other monitors around me too...

_________________
“The creative person wants to be a know-it-all. He wants to know about all kinds of things: ancient history, nineteenth century mathematics, current manufacturing techniques, flower arranging, and hog futures. Because he never knows when these ideas might come together to form a new idea. It may happen six minutes later or six years down the road. But he has faith that it will happen.” ―Carl Ally


Last edited by geekmaster on Wed Apr 17, 2013 11:47 am, edited 1 time in total.



Wed Apr 17, 2013 11:42 am
Profile
Cross Eyed!
User avatar

Joined: Wed Jul 06, 2011 9:47 pm
Posts: 102
@geekmaster: I’m glad you liked it! :)
I ported this over from something I used to use with my Vuzix HMD in a hurry last night. This was really meant to demo the idea and see how people like it. I plan to fix the things you mentioned and that’s why I called this unpolished.
• When you look over where your Rift is you’re getting a mirror tunnel effect. I’ll just end up blacking it out so that doesn’t happen.
• I do draw my own cursor, and I even used to have the mouse restricted to the visible area. This used to work well with an HMD where you can see the whole screen but it wasn’t working well in the Rift so I disabled the restriction on the mouse. Every now and then you can find my cursor which you can see with both eyes, but I’m not sure where it is half the time, lol.
• Like you said the warping didn’t seem necessary. The distortion isn’t even noticeable to me with the B eyecups.


Wed Apr 17, 2013 11:46 am
Profile
Cross Eyed!
User avatar

Joined: Wed Jul 06, 2011 9:47 pm
Posts: 102
I also meant to mention two things:
- I intend to totally rewrite this using a better API to hopefully improve the framerate.
- The amount you have to look around to see the whole screen is controlled by a 'pixels per degree' variable which is currently hard-coded but should be adjustable.

@geekmaster: Yes, zooming will be possible! And I will gladly release the source code when it's worthy. :P


Wed Apr 17, 2013 11:53 am
Profile
Petrif-Eyed
User avatar

Joined: Sat Sep 01, 2012 10:47 pm
Posts: 2652
I just noticed both cursors near each other. They have different shapes (due to my theme selection). I forgot that I left your app running while doing the above posts. I can rescale the browser text with Sctl-mousewheel, so more of it fits the huge VR desktop SPHERE around that wraps around me. A desktop "wrapper", so to speak.

Do you support hotkeys to vertically rotate my view? I am getting a sore neck from looking up so high above me, when the floor below is all unused...

And again, may I PLEASE have your source code to play with (in whatever its current state)? I *NEED* it! Please send a PM link. It is worthy enough (for me) already! Thanks!

EDIT: This time it started up over my right shoulder, due to where my RiftDK was sitting when I started it. It would be nice to rotate my view in all directions, to center the screen where I want it. For now, I need to stop it, and start it with my RiftDK already pointing where I want the screen center, I think... No, still off the the Right. I must have had my RiftDK pointed left the first time I started it...

EDIT2: Ahh... It *CAN* see multiple displays! That junk off to the left is where my RiftDK is extended on my desktop, and it is doing its "infinite recursion" video feedback thing over there. Other displays should appear relative to this. But if my front dispay goes almost straight above me, where will the display above it go when that is plugged in too?

_________________
“The creative person wants to be a know-it-all. He wants to know about all kinds of things: ancient history, nineteenth century mathematics, current manufacturing techniques, flower arranging, and hog futures. Because he never knows when these ideas might come together to form a new idea. It may happen six minutes later or six years down the road. But he has faith that it will happen.” ―Carl Ally


Last edited by geekmaster on Wed Apr 17, 2013 12:05 pm, edited 1 time in total.



Wed Apr 17, 2013 11:55 am
Profile
Cross Eyed!
User avatar

Joined: Wed Jul 06, 2011 9:47 pm
Posts: 102
geekmaster wrote:
EDIT: For this to work, you cannot duplicate displays. The RiftDK needs to be the primary display, and your other monitor is projected around you in VR space.


You're right, duplicating displays wouldn't work, the Rift needs its own space where my window draws parts of the screen it grabs from elsewhere. It doesn't have to be the primary display though, I actually prefer to have another display as the primary. On pre-Win8 machines this is almost necessary so you can see your taskbar.

geekmaster wrote:
When the source code is available, I would like to downsample the image so I am surrounded by a bunch of virtual display (with very tiny text), so I can zoom into whichever one I want to read.


Speaking of Virtual Displays, you might like this:
http://www.zoneos.com/zonescreen.htm

I used to use it with my Vuzix HMDs to create all sorts of virtual displays in different sizes which I could pan around by moving my head. I think it compliments my app quite well.

The downsides are that it disables aero, and hardware accelerated programs won't work on the virtual displays. Also, I never tried it in 8.


Last edited by AngelJ on Wed Apr 17, 2013 3:06 pm, edited 1 time in total.



Wed Apr 17, 2013 12:02 pm
Profile
Cross Eyed!
User avatar

Joined: Wed Aug 22, 2012 7:12 pm
Posts: 110
Location: California
I set the Rift devkit as the only display. But when I launch deskope.exe, I get a black screen with the cursor in the center with some kind of hall-of-mirrors effect going on, while the cursor gets affected by my head movements.

I'm on Windows 7 x64 with GeForce 640.

edit: My mistake. I set monitors to extended and it works now. I'm typing this message using deskope. Very cool!


Last edited by Jose on Wed Apr 17, 2013 12:10 pm, edited 1 time in total.



Wed Apr 17, 2013 12:06 pm
Profile
Petrif-Eyed
User avatar

Joined: Sat Sep 01, 2012 10:47 pm
Posts: 2652
I used to run zonescreen all the time a few years back, when I had a bunch of different computers to drive all my displays. I kind of like having all my displays driven off one machine though to keep them from overheating my office. But since I installed Win 8, I am down to only two displays working at a time though. It has so many device driver issues for my (recent) hardware that I am tempted to go back to Windows 7...

I also like synergy, along with zonescreen, depending on my applications...

_________________
“The creative person wants to be a know-it-all. He wants to know about all kinds of things: ancient history, nineteenth century mathematics, current manufacturing techniques, flower arranging, and hog futures. Because he never knows when these ideas might come together to form a new idea. It may happen six minutes later or six years down the road. But he has faith that it will happen.” ―Carl Ally


Wed Apr 17, 2013 12:08 pm
Profile
Petrif-Eyed
User avatar

Joined: Sat Sep 01, 2012 10:47 pm
Posts: 2652
Jose wrote:
I set the Rift devkit as the only display. But when I launch deskope.exe, I get a black screen with the cursor in the center with some kind of hall-of-mirrors effect going on, while the cursor gets affected by my head movements.

I'm on Windows 7 x64 with GeForce 640.
When a monitor is displaying its own framebuffer (even using VNC or Remote Desktop), that "hall of mirrors" effect is the result. In your case, the OTHER monitors that you should see over in the "black space" portion of your total desktop area are all black in your case, because you did not extend your desktop to them...

EDIT: I saw your edit. Glad it is working for you now. Great app, isn't it?

_________________
“The creative person wants to be a know-it-all. He wants to know about all kinds of things: ancient history, nineteenth century mathematics, current manufacturing techniques, flower arranging, and hog futures. Because he never knows when these ideas might come together to form a new idea. It may happen six minutes later or six years down the road. But he has faith that it will happen.” ―Carl Ally


Wed Apr 17, 2013 12:12 pm
Profile
Cross Eyed!
User avatar

Joined: Wed Jul 06, 2011 9:47 pm
Posts: 102
Yeah, when that mirror tunnel effect happens I go full riftard.

I'm not sure about your tracking issues. My display always appeared right in front of me in the Rift as I expected so I didn't mess with it.


Wed Apr 17, 2013 12:19 pm
Profile
Cross Eyed!
User avatar

Joined: Wed Sep 12, 2012 6:12 pm
Posts: 171
This is sounding amazing. I know it'd be basically useless to portray the experience but could someone post a screenshot?

Edit: Felt silly realizing I could try this without my Rift, but when I downloaded it I received the same message about MSVCR110D.dll, and then a crash. Still, a video or some images could be cool.


Wed Apr 17, 2013 1:20 pm
Profile WWW
Petrif-Eyed
User avatar

Joined: Sat Sep 01, 2012 10:47 pm
Posts: 2652
unsilentwill wrote:
This is sounding amazing. I know it'd be basically useless to portray the experience but could someone post a screenshot?

Edit: Felt silly realizing I could try this without my Rift, but when I downloaded it I received the same message about DLL, and then a crash.
You cannot screenshot the experience. All that would show is a cropped portion of your overall windows destop (all monitors), duplicated for both eyes (no pre-warp). The cropped portion depends on which direction you are looking.

The VR effect is that you are surrounded by a sphere onto which your desktop is projected, as I described above. Windows EVERYWHERE! Up/Down/Left/Right. Even behind you if you have enough physical (or virtual) monitors to fill the space...

Unfortunately, no one can be told what The Matrix is.

You have to see it for yourself.

You CANNOT experience this without a head-tracked HMD like the RiftDK. You have to see it for yourself. The real deal.

_________________
“The creative person wants to be a know-it-all. He wants to know about all kinds of things: ancient history, nineteenth century mathematics, current manufacturing techniques, flower arranging, and hog futures. Because he never knows when these ideas might come together to form a new idea. It may happen six minutes later or six years down the road. But he has faith that it will happen.” ―Carl Ally


Last edited by geekmaster on Wed Apr 17, 2013 1:43 pm, edited 3 times in total.



Wed Apr 17, 2013 1:34 pm
Profile
Cross Eyed!
User avatar

Joined: Wed Aug 22, 2012 7:12 pm
Posts: 110
Location: California
I like deskope, it's usable. I feel like I can actually do things on this.

If roll tracking was added, I think it would increase comfort for the wearer.

To compensate for the low resolution of the Rift devkit, I think it might be possible to use the built-in Windows accessibility options like the magnifier tool.

Thanks for releasing this demo.

@geekmaster
Any recommendations for virtual monitor software? I only have 2 outputs on my video card, one for monitor and one for Rift.


Wed Apr 17, 2013 1:40 pm
Profile
Petrif-Eyed
User avatar

Joined: Sat Sep 01, 2012 10:47 pm
Posts: 2652
Jose wrote:
I like deskope, it's usable. I feel like I can actually do things on this.

If roll tracking was added, I think it would increase comfort for the wearer.

To compensate for the low resolution of the Rift devkit, I think it might be possible to use the built-in Windows accessibility options like the magnifier tool.

Thanks for releasing this demo.

@geekmaster
Any recommendations for virtual monitor software? I only have 2 outputs on my video card, one for monitor and one for Rift.
Roll tracking would smear the pixels. This is extremely simple software that just blits a cropped portion of the total desktop onto the Rift display (twice). It is as simple as that. Direct pixel mapping with no distorion, so even Windows ClearType subpixel font rendering works correctly. Head roll tracking would not only mess up the readability, but would complicate the simple elegant code to a high degree.

I have used Toby Opferman's virtual display driver, which provides extra virtual displays, and works quite nicely (on Windows XP):
http://www.codeproject.com/Articles/128 ... to-Display
It creates and uses a shared framebuffer file, which is very easy to use (raw pixels, no compression). You can resize and move the virtual monitor around on your Windows desktop just like a real monitor. Good luck with a 64-bit OS though, especially when signed device drivers are needed (unless you want to pay Microsoft $150 per year so you can sign your own code). Or you can reboot into an "allow unsigned drivers" mode...

_________________
“The creative person wants to be a know-it-all. He wants to know about all kinds of things: ancient history, nineteenth century mathematics, current manufacturing techniques, flower arranging, and hog futures. Because he never knows when these ideas might come together to form a new idea. It may happen six minutes later or six years down the road. But he has faith that it will happen.” ―Carl Ally


Wed Apr 17, 2013 1:49 pm
Profile
Cross Eyed!
User avatar

Joined: Wed Jul 06, 2011 9:47 pm
Posts: 102
unsilentwill wrote:
Edit: Felt silly realizing I could try this without my Rift, but when I downloaded it I received the same message about MSVCR110D.dll, and then a crash. Still, a video or some images could be cool.


It specifically looks for a Rift and in my hurry last night I didn't even handle cases where one isn't found. So, this won't work without one (even though it could), but it would be kinda pointless anyway.

@Jose: I was able to create virtual displays with ZoneScreen on a 64-bit system but I remember having to fiddle with it a lot.

Edit: I forgot to mention: I've never messed with roll tracking because I've always worked with devices that can't spare the resolution. Besides, isn't rendering the screen without roll tracking the more comfortable solution?


Wed Apr 17, 2013 2:06 pm
Profile
Cross Eyed!

Joined: Thu Jun 07, 2012 1:36 pm
Posts: 181
Location: France
This seems really cool, but did I read correctly that you still cannot see the corners if you turn far enough? What I mean is if I look down and to the left far enough with the Rift as the sole monitor will it stop panning or will it continue and just show black beyond the boundaries so the start button can be within the center of your vision?

If corners are an issue would adding 8 virtual monitors to surround the Rift help?


Wed Apr 17, 2013 2:18 pm
Profile
Cross Eyed!
User avatar

Joined: Wed Jul 06, 2011 9:47 pm
Posts: 102
Your Windows desktop is like a rectangle floating in black space and you can look as far beyond it as you want, so you can definitely see the corners. This won't work at all if the Rift is the sole monitor though, unless you have some virtual ones.


Wed Apr 17, 2013 2:20 pm
Profile
Petrif-Eyed
User avatar

Joined: Sat Sep 01, 2012 10:47 pm
Posts: 2652
I just got the "bright" idea to try this with the RiftDK set to a higher resolution (1920x1200) so the RiftDK controller could downsize my windows allowing me to see more of my desktop farther away.

Nope, broken! The program assumes the RiftDK is running at 1280x800 resolution. But the code is so simple that it should be a simple change to let it work at other RiftDK video resolutions. I may fix it myself, when I get some free time...

My experience is that the RiftDK controller does a poor job of downsampling anyway, making the text almost unreadable. It is much better to downsample the screen in software (such as in this app). I have old WINAPI code in my personal code collection that dynamically resizes a DIBSSECTION, which I will need to find and add into here. I also have some subpixel wobulation resolution enhancement code I wrote and tested in my Rift. It lets me clearly read tiny text only two pixels wide! But (and a big but) it is very dizzy-making in the Rift (but looks GREAT on a large LCD panel). Still, it may be worth making it a user-selectable option, so I may add it into this too. And perhaps cylinder warping, so you are on an elevator in a cylinder covered in video screens, extending from heaven to hell (or vice versa). It would make an awesome photo and video gallery, with side-to-side text not warped, but text at the vertical extremes would not be readable in small fonts...
:lol:

We could add a VNC client to this program so it can show remote framebuffers on other remote computers. Or we could provide an SDL library so that SDL-based programs can render directly to virtual windows in the Rift VR space...

Imagination is the only real boundary to what we can do, if we can figure out how to overcome or avoid physical limitations of the hardware.

Which reminds me, Doom and Quake will probably work for this without any messing around! Just play them on your main desktop, and view the cropped copy in your RiftDK with head tracking to look around the spherical screen onto which your game is being projected.

EDIT: Okay, I resized my RiftDK display to 1280x800, and positioned it above my main 2560x1440 display. Now the main display starts a little below the horizon, and extends beyond my feet below a little bit behind me. The head tracking messes up trying to look directly at the screen bottom though (RiftDK a little upside-down).

_________________
“The creative person wants to be a know-it-all. He wants to know about all kinds of things: ancient history, nineteenth century mathematics, current manufacturing techniques, flower arranging, and hog futures. Because he never knows when these ideas might come together to form a new idea. It may happen six minutes later or six years down the road. But he has faith that it will happen.” ―Carl Ally


Last edited by geekmaster on Wed Apr 17, 2013 2:30 pm, edited 1 time in total.



Wed Apr 17, 2013 2:24 pm
Profile
Cross Eyed!
User avatar

Joined: Wed Jul 06, 2011 9:47 pm
Posts: 102
I'm away from my Rift so I can't try it again, but I thought I tried a higher resolution and it worked. Did you switch the resolution while the program was running? It doesn't make any assumptions about the Rift, instead it queries it to find out where it is and what the resolution is. But it only does it once at startup.


Wed Apr 17, 2013 2:30 pm
Profile
Petrif-Eyed
User avatar

Joined: Sat Sep 01, 2012 10:47 pm
Posts: 2652
Holy crap! Although not immersive like being inside the game, it was immersive like being in a huge domed theater playing Doom3 BFG on the screen wrapped around me! And even though it was just playing in a window on my desktop, as I redirect my viewing directly, the Doom3 BFG window extended pretty far beyond my immediate view, wrapped around me on the Dome.

I only watched the intro video so far, but here is what suprised me: even though I knew it was only 2D, my brain kept telling me it was 3D. The relative motions between the layers of animation was perceived by me brain as THINKING as though I was watching stereoscopic video (during motion sequences). It all collapsed to flat 2D when there was no motions.

It was AWESOME!

_________________
“The creative person wants to be a know-it-all. He wants to know about all kinds of things: ancient history, nineteenth century mathematics, current manufacturing techniques, flower arranging, and hog futures. Because he never knows when these ideas might come together to form a new idea. It may happen six minutes later or six years down the road. But he has faith that it will happen.” ―Carl Ally


Wed Apr 17, 2013 2:36 pm
Profile
Petrif-Eyed
User avatar

Joined: Sat Sep 01, 2012 10:47 pm
Posts: 2652
AngelJ wrote:
I'm away from my Rift so I can't try it again, but I thought I tried a higher resolution and it worked. Did you switch the resolution while the program was running? It doesn't make any assumptions about the Rift, instead it queries it to find out where it is and what the resolution is. But it only does it once at startup.
I tried different resolutions. It seems to be only blitting 1280x800 to the upper left corner of the larger RiftDK resolution before it gets downsized. I will have to look into the code to eliminate that 1280x800 blit size.

Your source code LOOKS right at first glance, so something else must be going on there. No time now...

The code is so DAMNED simple and elegant. Almost nothing to it. It would be so easy to extend to do amazing things...

Again, many thanks!

_________________
“The creative person wants to be a know-it-all. He wants to know about all kinds of things: ancient history, nineteenth century mathematics, current manufacturing techniques, flower arranging, and hog futures. Because he never knows when these ideas might come together to form a new idea. It may happen six minutes later or six years down the road. But he has faith that it will happen.” ―Carl Ally


Wed Apr 17, 2013 2:42 pm
Profile
Cross Eyed!
User avatar

Joined: Wed Jul 06, 2011 9:47 pm
Posts: 102
No problem.

Yeah, that's something to look into. The problem is that I've heard the blit methods that do stuff to the image are slower than BitBlt, and it's not fast enough as it is.


Wed Apr 17, 2013 2:52 pm
Profile
Petrif-Eyed
User avatar

Joined: Sat Sep 01, 2012 10:47 pm
Posts: 2652
AngelJ wrote:
No problem.

Yeah, that's something to look into. The problem is that I've heard the blit methods that do stuff to the image are slower than BitBlt, and it's not fast enough as it is.
It might be worth blitting onto an OpenGL texture, and letting the GPU resize it for you. But carefully optimized CPU code can do it to. I have code doing stereoscopic spherical projection dewarping (two source images), cropping, and Rift-warping, at 80 FPS, just writing all the pixels directly to an SDL software surface...

It took some careful optimization tricks to go from 24 FPS (unoptimized) to 80 FPS (optimized) though... I ended up using a checkerboard interlace to get the FPS up, but that introduces some "dot crawl" around high contrast edges. But the faster framerate is much more immersive than the barely noticeable (unless you look for it) checkerboard dot crawl (only visible during head motion)...

My framebuffer library is really just code to test hardware limitations. I like bare metal bit bashing and pixel pushing. But I plan to support the Raspberry Pi with my Rift-Rider Virtual Amusement Park app, and even it has OpenGL ES 2.0 support (using a separate GPU). So I will eventually add GPU support, when my CPU code runs out of tricks to keep up the FPS rate.

I *especially* like the method used in this simple window viewer, to add to my "bad of tricks"... Although I would probably have stumbled over this method on my own, it is so simple and inspiring to me, and makes me want to run with it... Thanks for sharing!

_________________
“The creative person wants to be a know-it-all. He wants to know about all kinds of things: ancient history, nineteenth century mathematics, current manufacturing techniques, flower arranging, and hog futures. Because he never knows when these ideas might come together to form a new idea. It may happen six minutes later or six years down the road. But he has faith that it will happen.” ―Carl Ally


Wed Apr 17, 2013 2:56 pm
Profile
Cross Eyed!
User avatar

Joined: Wed Jul 06, 2011 9:47 pm
Posts: 102
No problem geekmaster. And here I thought you were going to recoil at the sight of my code.


Wed Apr 17, 2013 3:10 pm
Profile
One Eyed Hopeful

Joined: Wed Apr 17, 2013 7:05 pm
Posts: 3
Hello!
Geekmaster how did you avoid the dll error?
I recently got my rift and would love to try this but can't seem to avoid this error!
Thanks for any help!


Wed Apr 17, 2013 7:17 pm
Profile
Cross Eyed!
User avatar

Joined: Wed Jul 06, 2011 9:47 pm
Posts: 102
Hoping that it would increase the frame rate, I modified my code to use the Windows Magnification API instead of blitting. It actually seems to have made it worse; it's slower, and less sharp. I've attached the file to the original post for anyone who'd like to try it out.

Modulo wrote:
Hello!
Geekmaster how did you avoid the dll error?
I recently got my rift and would love to try this but can't seem to avoid this error!
Thanks for any help!

Sorry you're having issues. I don't know what's causing it so hopefully geekmaster does.


Wed Apr 17, 2013 7:50 pm
Profile
Cross Eyed!
User avatar

Joined: Wed Jul 06, 2011 9:47 pm
Posts: 102
Actually Modulo, can you try the attached file and let me know if it still gives you the same problem?


Last edited by AngelJ on Wed Apr 17, 2013 9:42 pm, edited 1 time in total.



Wed Apr 17, 2013 7:58 pm
Profile
One Eyed Hopeful

Joined: Thu Aug 02, 2012 4:53 pm
Posts: 18
that one didnt have the dll problem for me.


Wed Apr 17, 2013 8:04 pm
Profile
One Eyed Hopeful
User avatar

Joined: Sun Apr 07, 2013 2:15 am
Posts: 13
This looks amazing i was wondering if someone was gonna design something like this.. really need to get my rift to demo this stuff ... feel so out of loop with out it..


Also from the Post i thought Geekmaster was only having a issue cause the version of Deskope that first was up was using VC++ version 11 when the oculus SDK was set up for the VC++ version 10. Thats what i got from what he wrote.. Geekmaster please correct me if i am wrong lolz


Wed Apr 17, 2013 8:07 pm
Profile
Cross Eyed!
User avatar

Joined: Tue Mar 19, 2013 11:41 am
Posts: 141
Good, that didn't take long.
This sounds like its going the direction I've been hoping for. Low resolution can be made up for with a huge screen giving you your very own imax theater sized desktop. Keep polishing for the next 6 weeks and I'll be all over this when my rift gets here.


Wed Apr 17, 2013 8:13 pm
Profile
Petrif-Eyed
User avatar

Joined: Sat Sep 01, 2012 10:47 pm
Posts: 2652
zinion wrote:
Also from the Post i thought Geekmaster was only having a issue cause the version of Deskope that first was up was using VC++ version 11 when the oculus SDK was set up for the VC++ version 10. Thats what i got from what he wrote.. Geekmaster please correct me if i am wrong lolz
My problem was that first download with a Debug DLL library (*d.dll). I have the Release runtimes installed for all versions from VC 6.0 to VC++ 12, so no problem with Release code.

Programs do not need to be the same version as the compiler you have installed, as long as those programs were not distributed (incorrectly) as Debug versions.

Because I have VC++ 10 installed, a Debug version would have worked for me (but only because I have the required non-redistributable Debug DLL for that version).

_________________
“The creative person wants to be a know-it-all. He wants to know about all kinds of things: ancient history, nineteenth century mathematics, current manufacturing techniques, flower arranging, and hog futures. Because he never knows when these ideas might come together to form a new idea. It may happen six minutes later or six years down the road. But he has faith that it will happen.” ―Carl Ally


Last edited by geekmaster on Wed Apr 17, 2013 8:21 pm, edited 1 time in total.



Wed Apr 17, 2013 8:20 pm
Profile
One Eyed Hopeful

Joined: Tue Aug 28, 2012 6:15 pm
Posts: 31
Watching a movie! its like being in a theater... where you can't see the edges of the screen.

edit-- I resized the movie down a bit so the edges were just at the edge of my vision. The effect where your eye will flick across the screen to see different things is noticeable (like being at a movie). This is friggin sweet!


Last edited by calebkraft on Wed Apr 17, 2013 8:25 pm, edited 1 time in total.



Wed Apr 17, 2013 8:20 pm
Profile
Cross Eyed!
User avatar

Joined: Wed Jul 06, 2011 9:47 pm
Posts: 102
Purgatus wrote:
that one didnt have the dll problem for me.


But you did get the error with the other one?


Wed Apr 17, 2013 8:22 pm
Profile
Petrif-Eyed
User avatar

Joined: Sat Sep 01, 2012 10:47 pm
Posts: 2652
calebkraft wrote:
Watching a movie! its like being in a theater... where you can't see the edges of the screen.
When I go to the theater alone, I always sit front row center (just like when I attended University). Much more immersive that way. But when I am with others, they prefer the center of the room, where the sound is optimized. I prefer sight over sound, when a choice is necessary.

Who needs all the fancy math, when the Rift distortion is already spherical, and you can just equate head rotation with screen coordinates directly? In this case, the simple way is much more immersive than trying to pre-warp the screen for planar projection.

When I stacked my monitors such that the Rift was above my main screen, my 2560x1440 screen actually went down under me, and even behind me a ways. We could be in the center of al sphere full of equal sized undistorted pixels this way.

I am amazed at how truly simple and awesome this approach is. No math, and not warping. Just blit from directly from the desktop to the RiftDK screen (starting desktop coordinates determined by head rotation). And totally coverage. Awesome!

@calebcraft: Are you the "avid wearer of socks" dude sitting in Phillip Torone's chair?

@AngelJ: The slow framerate you complained about may be because you are READING from VRAM (which is horribly slow on modern hardware). Much faster to cache the desktop in RAM, and blit from there.

_________________
“The creative person wants to be a know-it-all. He wants to know about all kinds of things: ancient history, nineteenth century mathematics, current manufacturing techniques, flower arranging, and hog futures. Because he never knows when these ideas might come together to form a new idea. It may happen six minutes later or six years down the road. But he has faith that it will happen.” ―Carl Ally


Last edited by geekmaster on Wed Apr 17, 2013 8:34 pm, edited 1 time in total.



Wed Apr 17, 2013 8:23 pm
Profile
One Eyed Hopeful

Joined: Tue Aug 28, 2012 6:15 pm
Posts: 31
I am, though I think at this point I've had the chair a bit longer than he did.

He's a great guy, we talk often.

edit -- trying different movies, different sizes. My favorite so far is extending just slightly outside the edges of my vision.


I wish I had some kind of control for how far away the screen is (like how big the sphere it projects onto is.)


Wed Apr 17, 2013 8:33 pm
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 136 posts ]  Go to page 1, 2, 3, 4  Next

Who is online

Users browsing this forum: Google [Bot], Yahoo [Bot] and 5 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by STSoftware.