Deskope - Work in Windows with the Rift

geekmaster
Petrif-Eyed
Posts: 2708
Joined: Sat Sep 01, 2012 10:47 pm

Re: Deskope - A Simple Windows Viewer

Post by geekmaster »

calebkraft wrote: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.
I got "hackaday" slashdotted back in the "black and white photo, one hack a day" days, resulting in my web host dropping me for "too much bandwidth consumption". It literally took years for the traffic to die down on that post. These days, the hacks drop off the main page much too fast. But there is a tradeoff between quantity and quality, and this way probably serves a larger audience.
calebkraft
One Eyed Hopeful
Posts: 31
Joined: Tue Aug 28, 2012 6:15 pm

Re: Deskope - A Simple Windows Viewer

Post by calebkraft »

You might be interested to note that there are only 3 posts per day now (for the last two weeks), unless I toss in an extra for some reason. Its a new-old thing (we were at 3 in early 2009). I think I like it. Quality goes up this way.
Purgatus
One Eyed Hopeful
Posts: 18
Joined: Thu Aug 02, 2012 4:53 pm

Re: Deskope - A Simple Windows Viewer

Post by Purgatus »

AngelJ wrote:
Purgatus wrote:that one didnt have the dll problem for me.
But you did get the error with the other one?
Yup. I had the same DLL error until the second upload.
geekmaster
Petrif-Eyed
Posts: 2708
Joined: Sat Sep 01, 2012 10:47 pm

Re: Deskope - A Simple Windows Viewer

Post by geekmaster »

calebkraft wrote:... 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.)
That "screen distance" control would be a simple horizontal offset between the left and right eye blits. I have the source code now, so I can make the arrow keys change percieved distance (x axis offset), when I get some free time. But it is such a simple concept I could kick myself for not having thought of it myself by now. I will probably rewrite it using my own code base though, so I can pull in my other RiftDK stuff.

If you have an eink kindle, you really out to try out these videos:
http://www.mobileread.com/forums/showth ... p?t=177455

KUAL uses some of my eink dithering code base, but twobob is still waiting for me to rewrite the dithering portions for him. My highly compressed coding style that works so well for my frequent coding trances, is often a bit hard for others to "decompress"...
geekmaster
Petrif-Eyed
Posts: 2708
Joined: Sat Sep 01, 2012 10:47 pm

Re: Deskope - A Simple Windows Viewer

Post by geekmaster »

calebkraft wrote:You might be interested to note that there are only 3 posts per day now (for the last two weeks), unless I toss in an extra for some reason. Its a new-old thing (we were at 3 in early 2009). I think I like it. Quality goes up this way.
I am working on many Rift-related projects. Perhaps when I get it ready, my "Rift Pi" project (standalone Rift and Raspberry Pi setup) could go on HaD. If somebody doesn't beat me to it, at least. I prefer the old way of submitting tips anonymously. HaD seems to redirect to e-mail for that now, so I just skipped a number of tips I tried to submit. These days, I do not like my Real Name to leak out any more than absolutely necessary...
:lol:
Last edited by geekmaster on Wed Apr 17, 2013 9:01 pm, edited 1 time in total.
Modulo
One Eyed Hopeful
Posts: 3
Joined: Wed Apr 17, 2013 7:05 pm

Re: Deskope - A Simple Windows Viewer

Post by Modulo »

First off, thank you so much for the reupload, works fine for me!
Secondly, is it supposed to be so zoomed in? I cannot see very much of my screen at all, is this intended?
I am currently using 1920x 1080 for my main desktop.
Thank you so much for this very cool!
geekmaster
Petrif-Eyed
Posts: 2708
Joined: Sat Sep 01, 2012 10:47 pm

Re: Deskope - A Simple Windows Viewer

Post by geekmaster »

Modulo wrote:First off, thank you so much for the reupload, works fine for me!
Secondly, is it supposed to be so zoomed in? I cannot see very much of my screen at all, is this intended?
I am currently using 1920x 1080 for my main desktop.
Thank you so much for this very cool!
This app just maps one pixel of the desktop to one pixel of the Rift display with a simple blit (rectangular area copy). Each eye on the Rift sees only 640-pixels wide (or less, depending on lenses). So what you see is a physical limitation. However, we can upscale or downscale that desktop with software, although that will blur the text and images somewhat.

Remember that you CAN resize your window (whether web browser or video player). And most web browsers (and some text editors) support Ctrl-mousewheel for resizing the content. Try it...
Modulo
One Eyed Hopeful
Posts: 3
Joined: Wed Apr 17, 2013 7:05 pm

Re: Deskope - A Simple Windows Viewer

Post by Modulo »

That makes sense, i just wanted to verify that this was not just my rift bugging out :lol:
I'll defiantly try some of the resizing tricks, i can't wait to watch some movies with my rift!
Thanks for the help geekmaster!
User avatar
Ericshelpdesk
Cross Eyed!
Posts: 141
Joined: Tue Mar 19, 2013 11:41 am

Re: Deskope - A Simple Windows Viewer

Post by Ericshelpdesk »

calebkraft wrote: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.)
This could be adjusted by making the IPD lower.
2EyeGuy
Certif-Eyable!
Posts: 1139
Joined: Tue Sep 18, 2012 10:32 pm

Re: Deskope - A Simple Windows Viewer

Post by 2EyeGuy »

geekmaster wrote: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!
Source code? Where?
User avatar
AngelJ
Cross Eyed!
Posts: 102
Joined: Wed Jul 06, 2011 9:47 pm

Re: Deskope - A Simple Windows Viewer

Post by AngelJ »

Thanks for the feedback guys. I updated the zip file in the original post, so download the new one if you downloaded before this post.
geekmaster wrote:@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.
Thank you, I'll look into that.
User avatar
AngelJ
Cross Eyed!
Posts: 102
Joined: Wed Jul 06, 2011 9:47 pm

Re: Deskope - A Simple Windows Viewer

Post by AngelJ »

Btw geekmaster, I found out why setting the Rift to a different resolution breaks my app. It turns out that HMDInfo.HResolution and HMDInfo.VResolution report 1280 and 800 respectively regardless of the resolution the Rift is set to in Windows. That's not the behavior I expected but maybe I misinterpreted something in the SDK.
geekmaster
Petrif-Eyed
Posts: 2708
Joined: Sat Sep 01, 2012 10:47 pm

Re: Deskope - A Simple Windows Viewer

Post by geekmaster »

AngelJ wrote:Btw geekmaster, I found out why setting the Rift to a different resolution breaks my app. It turns out that HMDInfo.HResolution and HMDInfo.VResolution report 1280 and 800 respectively regardless of the resolution the Rift is set to in Windows. That's not the behavior I expected but maybe I misinterpreted something in the SDK.
Here is a little code snippet from one of my apps that shows my current monitor configuration:

Code: Select all

// application-defined callback function
BOOL CALLBACK EnumMonitorsProc(HMONITOR hMonitor, HDC hdc, 
	LPRECT lpRMonitor, LPARAM dwData)
{
	MONITORINFOEX mix;
	HDC hMonitorDC;
	HWND hListBox;
	DWORD x, y, w, h, c;

	ZeroMemory(&mix, sizeof(MONITORINFOEX));
	mix.cbSize = sizeof(MONITORINFOEX);
 
	if (GetMonitorInfo(hMonitor, (LPMONITORINFO)&mix)) {
		hMonitorDC = CreateDC("DISPLAY", mix.szDevice, NULL, NULL);
		// for Win98:
		// CreateDC(NULL, mix.szDevice, NULL, NULL);
 
		if (hMonitorDC) {
			c = GetDeviceCaps(hMonitorDC, BITSPIXEL) * GetDeviceCaps(hMonitorDC, PLANES);
			DeleteDC(hMonitorDC);

			x = mix.rcMonitor.left;
			y = mix.rcMonitor.top;
			w = mix.rcMonitor.right - x;
			h = mix.rcMonitor.bottom - y;
			hListBox = (HWND)dwData;
			myPrintf(hListBox, "%s = %dx%d %d bpp @ [%d, %d]", mix.szDevice, w, h, c, x, y);
		}
	}

	return TRUE;

	UNREFERENCED_PARAMETER(hdc);
	UNREFERENCED_PARAMETER(lpRMonitor);
}
...
	EnumDisplayMonitors(NULL, NULL, EnumMonitorsProc, (LPARAM)hListBoxName);
...
When executed with my RiftDK plugged in, it displays this text in the scrolling log portion of my form:

Code: Select all

\\.\DISPLAY1 = 2560x1440 32 bpp @ [0, 0]
\\.\DISPLAY2 = 1280x800 32 bpp @ [-1280, 240]
The Rift SDK returns the RiftDK display name, so the code above could be used to find its true size and location on the Windows desktop...

And here it is again with my RiftDK resolution changed to 1920x1200:

Code: Select all

\\.\DISPLAY1 = 2560x1440 32 bpp @ [0, 0]
\\.\DISPLAY2 = 1920x1200 32 bpp @ [-1920, 240]
EDIT: I just modded the code and tried it at 1920x1200. The RiftDK controller does a HORRIBLE job of downscaling (pretty much just discarding entire rows and columns of pixels, which is not surprising for such a small device). So it is far better to keep the RiftDK in its native 1280x800 mode ALWAYS, and do software downsampling on the host PC.
geekmaster
Petrif-Eyed
Posts: 2708
Joined: Sat Sep 01, 2012 10:47 pm

Re: Deskope - A Simple Windows Viewer

Post by geekmaster »

calebkraft wrote:... I wish I had some kind of control for how far away the screen is (like how big the sphere it projects onto is.)
This one is full parallel view (Right eye shift changed from 110 to 80) for my eyes. Something in the center of my view is now centered in both eyes. Now stuff should look huge off at infinity. But it is missing the other depth cues like atmospheric distortion and a foggy look. But it is a parallel (for me).

I will add code for hotkeys later. This was just a quick one-line change. The OP said he wants to wait before releasing the source code, so look to the first post for that...
Deskope-64mm.zip
Here is another one with the "magnification" adjusted. It covers a larger angle of head motion, but the images do not fly past in the opposite direction like looking through binoculars. The previous versions were like looking through binoculars...
Deskope-64mm-1x.zip
And here is a static build (no runtime DLL files needed):
Deskope-64mm-1x-static.zip
You do not have the required permissions to view the files attached to this post.
Last edited by geekmaster on Thu Apr 18, 2013 12:15 am, edited 2 times in total.
User avatar
AngelJ
Cross Eyed!
Posts: 102
Joined: Wed Jul 06, 2011 9:47 pm

Re: Deskope - A Simple Windows Viewer

Post by AngelJ »

Thanks for the code sample geekmaster. I guess I just got excited because I thought I could get resolution information straight from the SDK rather than have to fiddle with the Windows API for that.

I arrived at that 110 pixel shift by adjusting it a pixel at a time until things seemed to be in the exact same place for both eyes. How do you account for the difference? Physical differences between us or between our RiftDK's?
User avatar
AngelJ
Cross Eyed!
Posts: 102
Joined: Wed Jul 06, 2011 9:47 pm

Re: Deskope - A Simple Windows Viewer

Post by AngelJ »

To get rid of the missing dll error I applied fix #1 from here: http://www.rhyous.com/2010/09/16/avoidi ... r100d-dll/

Based on that file size it seems like yours might need the fix too geekmaster.
geekmaster
Petrif-Eyed
Posts: 2708
Joined: Sat Sep 01, 2012 10:47 pm

Re: Deskope - A Simple Windows Viewer

Post by geekmaster »

AngelJ wrote:Thanks for the code sample geekmaster. I guess I just got excited because I thought I could get resolution information straight from the SDK rather than have to fiddle with the Windows API for that.

I arrived at that 110 pixel shift by adjusting it a pixel at a time until things seemed to be in the exact same place for both eyes. How do you account for the difference? Physical differences between us or between our RiftDK's?
For me, the correct pixels shift is 85 instead of 110 (as used in the above two attachments).

That tells us we need hotkeys for user adjustment (which I have in some of my other code).

The second download above changes PPD from 10 to 6, so the images do not move quickly in the direction opposite head movement. I did use a little magnification though, because my 1440-pixel tall display WAS from straight down to straight up, and that would be a problem for 1600-pixel tall displays.

I have some old DIBStretch code I will try to remove from its app, and add to here. It uses WinAPI to do the stretch blits, so they SHOULD be using the GPU as much as possible.

Again, your slowdowns are probably from reading VRAM, but that is where anything created by a GPU exists (such as an Aero desktop). A simple (non Aero) windows desktop may render faster for this.

And my exe files were compiled with VC++ 10, so VC 10 runtime libraries would probably be needed...
geekmaster
Petrif-Eyed
Posts: 2708
Joined: Sat Sep 01, 2012 10:47 pm

Re: Deskope - A Simple Windows Viewer

Post by geekmaster »

AngelJ wrote:To get rid of the missing dll error I applied fix #1 from here: http://www.rhyous.com/2010/09/16/avoidi ... r100d-dll/

Based on that file size it seems like yours might need the fix too geekmaster.
no! No! no! NEVER download DLLS from those sites! Often virus infected. You download and install the full Runtime package from Microsoft!

Microsoft Visual C++ 2010 SP1 Redistributable Package (x86):
http://www.microsoft.com/en-us/download ... px?id=8328

And I added a static build to my post above, so that it will work on computers that have not had the VS 2010 (OFFICIAL) DLLs installed. Again, never install DLL crap download from one of those DLL sites! (Unless no other way). Always download stuff from an authorized site, such as the link I provided above.

EDIT: Oops, false alarm! That link does not have DLLs to download, but it does have good advice. However, please remember to download only from reputable authorized sources whenever possible.

How does my "different" IPD settings version (at my download links above) look when you view it?
Last edited by geekmaster on Thu Apr 18, 2013 12:38 pm, edited 2 times in total.
geekmaster
Petrif-Eyed
Posts: 2708
Joined: Sat Sep 01, 2012 10:47 pm

Re: Deskope - A Simple Windows Viewer

Post by geekmaster »

I see from trying different settings that this is HIGHLY dependent on the total desktop size. There is no set of adjustments that will work for everybody unless we calculate them based on the source code I embedded previously...

To get a specified "pixels per degree", we will need to either stretch or shrink the total desktop (I often use five or more monitors), or crop it to fit.

But even with some automatic settings, we need to let the end user make adjustments...

I was viewing the "belmont park" (left eye) image that mediavr posted, for a full 360-degree horizontal FoV and 180 vertical FoV. It was awesome when I had almost the correct PPD. That is when I discovered the problems with monitor layouts, etc... Although a seamless image, this program does not wrap it around the screen edge. But I had both edges directly behind me (just not at the same time). And vertically was somewhat beyond direct up and direct down. Now I just need to mix this code with my other code that I used for stereoscopically viewing those images.

Even the simple elegant solutions grow hairy complexity when you start trying to add features to them, or when you take hardware variability into account.
lnrrgb
Binocular Vision CONFIRMED!
Posts: 294
Joined: Sat Jun 02, 2007 1:29 pm
Location: Wenatchee, WA.

Re: Deskope - A Simple Windows Viewer

Post by lnrrgb »

Just noticed some "slightly" useless info. I noticed that screensavers (at least the preinstalled W7 basic ones) did not get displayed when running this (at least on my system). But I was playing with this while incorrectly setting my displays to cloned, and the screensavers would then function correctly, being sent to the Rift. I was goofing around with the mirroring effect of the mouse, the infinite regression of mouse pointers, while cloned, and the SS popped up. Might be useful somehow, if a screensaver was designed with the Rift in mind.
User avatar
TheHolyChicken
Diamond Eyed Freakazoid!
Posts: 733
Joined: Thu Oct 18, 2012 3:34 am
Location: Brighton, UK
Contact:

Re: Deskope - A Simple Windows Viewer

Post by TheHolyChicken »

All these posts on such an interesting topic and not a single screenshot? For shame!
Sometimes I sits and thinks, and sometimes I just sits.
geekmaster
Petrif-Eyed
Posts: 2708
Joined: Sat Sep 01, 2012 10:47 pm

Re: Deskope - A Simple Windows Viewer

Post by geekmaster »

TheHolyChicken wrote:All these posts on such an interesting topic and not a single screenshot? For shame!
Umm... screenshot of WHAT, exactly? A rectangle of your Windows desktop? That would depend on which direction you are looking when you make the screenshot, and you cannot view it outside the RiftDK.

The whole point is that we are NOT doing any kind of pre-warp or other distortion, but just blitting a rectangle from somewhere on your (multiple monitor) Windows desktop, onto the left and right half of the RiftDK display. But the EFFECT of viewing that rectangle is surprisingly IMMERSIVE (not immersed in the content, but immersed in the GIGANTIC spherical theater on which your desktop is being projected, perhaps in every direction, in some cases). The sphere you find yourself inside is just a SIDE EFFECT of the spherical (radial) distortion performed by the Rift lenses. No software involved! Of course, the lenses cause some additional unwanted ASPHERICAL (non-spherical) distortion, but it is still a great and highly immersive experience. But the best part, is that there is a one-to-one mapping of pixels, so text copied directly from your desktop is very readable in this VR environment.
:D

Here, read this post from the previous page in this thread:
http://www.mtbs3d.com/phpBB/viewtopic.p ... 91#p119668
Now do you understand? No, of course not! You need to try this in a RiftDK to understand...
:lol:
LuckyLu
One Eyed Hopeful
Posts: 17
Joined: Sun Mar 10, 2013 7:46 pm

Re: Deskope - A Simple Windows Viewer

Post by LuckyLu »

Now add an 3D movie viewer plugin for free IMAX :lol:
Tacklebait
Two Eyed Hopeful
Posts: 68
Joined: Wed Jan 30, 2013 8:23 pm

Re: Deskope - A Simple Windows Viewer

Post by Tacklebait »

Can someone fraps this? I'm very curious how this looks. I picture the desktop of the future we've seen in sci fi movies, where everything is floating around you and it is all controlled by your voice and hand movements will be long perfected in vr before reality.
calebkraft
One Eyed Hopeful
Posts: 31
Joined: Tue Aug 28, 2012 6:15 pm

Re: Deskope - A Simple Windows Viewer

Post by calebkraft »

Ok, I just tried the 64mm one. So much better. I've been sitting here just watching FPV flight movies on youtube full screen.

Being 2d also seems to remove all the motion sickness for me. The camera moving around doesn't bother me at all even though it extends to my peripheral. That's cool.
geekmaster
Petrif-Eyed
Posts: 2708
Joined: Sat Sep 01, 2012 10:47 pm

Re: Deskope - A Simple Windows Viewer

Post by geekmaster »

calebkraft wrote:Ok, I just tried the 64mm one. So much better. I've been sitting here just watching FPV flight movies on youtube full screen.

Being 2d also seems to remove all the motion sickness for me. The camera moving around doesn't bother me at all even though it extends to my peripheral. That's cool.
You must be a trappy fan then, eh?
Regarding motion sickness, yeah, I noticed that too. Even with the HUGE latency, and laggy desktop from slow VRAM transfer to CPU, not motion sickness AT ALL. Not even a hint!

Now, what makes this simple copy of a rectangle of pixels from desktop to RiftDK display so effective and immersive (without any pre-warp or other distortion), is the head tracking. I did something very similar to this, except using the SDL library instead of WINAPI calls, and displaying stereoscopic JPEG content instead of the Windows desktop, but I did not have head tracking, and it did cause some dizzyness when looking around with the mouse. I think is was the mouselook I was using that caused the discomfort, and not the stereoscopic images. I will have to try it again to see.

Again, what is special in this thread is that a simple blit (rectangle area copy) combined with head tracking is far more immersive than you would expect. Like I said, the perceived layer of immersion is not that same as being "in the game". It is more like being in a planetarium, playing the game on the domed screen (which in itself is very immersive just due to the wide FoV). But that layer of indirection provides a buffer, so that when you drop out of "the game", you are still in "VR" (i.e. the domed theater). This quite nicely supports the claims I made in my "PTZ Tweening" thread.
geekmaster
Petrif-Eyed
Posts: 2708
Joined: Sat Sep 01, 2012 10:47 pm

Re: Deskope - A Simple Windows Viewer

Post by geekmaster »

I just tried the 64mm one again. Nice. Now I need to fill all that empty black space beside and behind me with some twinkling stars...

Hmm... I just notice watching YouTube FPV videos that the left and right eyes are getting updated at different times. Copying the desktop to a RAM buffer and then blitting that simultaneously to both eyes would be MUCH smoother (less likely to cause discomfort)...

However, making both eyes NOT match has an interesting side effect: FPV videos really ARE stereoscopic (with looking left actually correct depth, but right inverted). This is very similar to the Pulfrich effect.

The fisheye video sequences are the best, when the Rift lens radial distortion and head tracking automatically wrap it into a sphere around you. You look forward at the horizon, and you look down on the treetops. And no fancy software pre-warp. It is all done in the lenses. Magic!

Be sure to view this fullscreen (and select HD, with the "gear" icon at the bottom):
http://www.youtube.com/watch?v=bkAodEy6BsQ

For me, that video is position vertically just about right (with the bottom of the virtual screen down near my feet) when the RiftDK monitor is positioned above my 2560x1440 desktop screen on the windows desktop layout.
Last edited by geekmaster on Thu Apr 18, 2013 9:49 am, edited 1 time in total.
calebkraft
One Eyed Hopeful
Posts: 31
Joined: Tue Aug 28, 2012 6:15 pm

Re: Deskope - A Simple Windows Viewer

Post by calebkraft »

geekmaster wrote:I just tried the 64mm one again. Nice. Now I need to fill all that empty black space beside and behind me with some twinkling stars...

Hmm... I just notice watching YouTube FPV videos that the left and right eyes are getting updated at different times. Copying the desktop to a RAM buffer and then blitting that simultaneously to both eyes would be MUCH smoother (less likely to cause discomfort)...

However, making both eyes NOT match has an interesting side effect: FPV videos really ARE stereoscopic (with looking left actually correct depth, but right inverted). This is very similar to the Pulfrich effect.
whoa. I didn't do any 3d movies with it, just high def 2d. Man, I've got to say that this is my favorite program for the rift. The games are cool, but I don't know if I could actually play an entire game using the thing (I can't really go for more than 5 min or so without getting ill). I do however use my computer ALL DAY LONG and could see utilizing this frequently.

things I would love to see:
1. the ability to change the "size" of the sphere on the fly, or... at all. I think for some things I would prefer my whole desktop to fit within my field of view, for other things, I would prefer it up close.

2. twinkling stars in the background, or possibly the option to load spherically mapped images found on the internet.

3. a re-calibrate option to re-center the desktop.

4. roll. I know that complicates things immensely and makes fonts not work. But hey, it would be nice.

5. a way to hide the infinity mirror of the 2nd screen that I see when I look up (I've got mine positioned above the normal screen).


out of all of these, 1 and 2 would just make me so very very happy.
User avatar
MrGreen
Diamond Eyed Freakazoid!
Posts: 741
Joined: Mon Sep 03, 2012 1:36 pm
Location: QC, Canada

Re: Deskope - A Simple Windows Viewer

Post by MrGreen »

calebkraft wrote:Being 2d also seems to remove all the motion sickness for me.
Wait what? How does that work and could this also apply to games?

As someone who's stereoblind, unless my hopes of seeing 3D in the Rift with individual eye adjustments materialize, this 2D talk piques my curiosity quite a bit.

Trading off a dimension for performance would at least be a little consolation.
geekmaster
Petrif-Eyed
Posts: 2708
Joined: Sat Sep 01, 2012 10:47 pm

Re: Deskope - A Simple Windows Viewer

Post by geekmaster »

calebkraft wrote:
geekmaster wrote:I just tried the 64mm one again. Nice. Now I need to fill all that empty black space beside and behind me with some twinkling stars...

Hmm... I just notice watching YouTube FPV videos that the left and right eyes are getting updated at different times. Copying the desktop to a RAM buffer and then blitting that simultaneously to both eyes would be MUCH smoother (less likely to cause discomfort)...

However, making both eyes NOT match has an interesting side effect: FPV videos really ARE stereoscopic (with looking left actually correct depth, but right inverted). This is very similar to the Pulfrich effect.
whoa. I didn't do any 3d movies with it, just high def 2d. Man, I've got to say that this is my favorite program for the rift. The games are cool, but I don't know if I could actually play an entire game using the thing (I can't really go for more than 5 min or so without getting ill). I do however use my computer ALL DAY LONG and could see utilizing this frequently.

things I would love to see:
1. the ability to change the "size" of the sphere on the fly, or... at all. I think for some things I would prefer my whole desktop to fit within my field of view, for other things, I would prefer it up close.

2. twinkling stars in the background, or possibly the option to load spherically mapped images found on the internet.

3. a re-calibrate option to re-center the desktop.

4. roll. I know that complicates things immensely and makes fonts not work. But hey, it would be nice.

5. a way to hide the infinity mirror of the 2nd screen that I see when I look up (I've got mine positioned above the normal screen).


out of all of these, 1 and 2 would just make me so very very happy.
I was viewing 2D also, but this program has a little "glitch" where the two eyes seem to be rendered from different points in time. When looking left during forward motion (typical in FPV video), it looks like 3D, because the FPV camera has moved between the left and right eye images. On the left, I see stereoscopic 3D (while moving forward), but on the right it just looks "wrong" (inverted 3D). Really, that "glitch" should be fixed (or perhaps leave it in as a "Pufrich Effect 3D" option).

Your "To Do" list coincides pretty well with mine. I will get on those changes (and more) when I get some free time.

And I want to give a big "THANK YOU!" to AngelJ for giving me a push in this direction (by letting me have his source code, the simplicity of which peaked my interest). Out of common courtesy, I will not share AngelJ's code. However, when I add this simple idea back into my own code base, I will eventually share much of that.
tbowren
One Eyed Hopeful
Posts: 22
Joined: Fri Jan 25, 2013 12:29 pm

Re: Deskope - A Simple Windows Viewer

Post by tbowren »

AngelJ, Geekmaster!!! This is awesome.

I played with it this morning and it works very well. I will be playing with this a lot.
User avatar
AngelJ
Cross Eyed!
Posts: 102
Joined: Wed Jul 06, 2011 9:47 pm

Re: Deskope - A Simple Windows Viewer

Post by AngelJ »

Wow, this has kind of taken off. People are using this in more ways than I expected and enjoying it more than I expected. There's no way I can update this fast enough for you guys (I shouldn't even look at code until the middle of next week because of school). I'm posting my source code in the original post so people can do their own stuff with it which will surely surpass anything I'd be able to do. I'll still work on this though if there's still a need for it.

I'm glad everyone's enjoying this as much as they are. I thought people would find this really boring compared to all the really robust VR desktop ideas on this forum.
geekmaster
Petrif-Eyed
Posts: 2708
Joined: Sat Sep 01, 2012 10:47 pm

Re: Deskope - A Simple Windows Viewer

Post by geekmaster »

tbowren wrote:Geekmaster!!! This is awesome.

I played with it this morning and it works very well. I will be playing with this a lot.
Hey, don't blame me! AngelJ gets the credit for the simple idea. I am just tweaking it (wider IPD for more distant desktop, etc.).

However, the idea is shockingly simple, in that it is just a simple area blit from the desktop to the Rift monitor, with head tracking for the upper-left corner starting postion. Simple and elegant, with very little code to implement it.

I plan to use this idea in my existing code base... You will see some cool demos from me in the future, including some for the Raspberry Pi feeding the RiftDK.
geekmaster
Petrif-Eyed
Posts: 2708
Joined: Sat Sep 01, 2012 10:47 pm

Re: Deskope - A Simple Windows Viewer

Post by geekmaster »

AngelJ wrote:Wow, this has kind of taken off. People are using this in more ways than I expected and enjoying it more than I expected. There's no way I can update this fast enough for you guys (I shouldn't even look at code until the middle of next week because of school). I'm posting my source code in the original post so people can do their own stuff with it which will surely surpass anything I'd be able to do. I'll still work on this though if there's still a need for it.

I'm glad everyone's enjoying this as much as they are. I thought people would find this really boring compared to all the really robust VR desktop ideas on this forum.
Sometimes the simple things are the most awesome. In fact, I think that the closer you get to realistic simulations with the "robust" VR apps, the more you get disturbed by the tiny inconsistencies (i.e. the "uncanny vallley" effect, commonly used to describe annoying human-like robots, but also applicable to NPCs or other ALMOST-but-not-quite-real objects in VR).

EDIT: I think that with the really simple stuff like this, your brain readily suspends disbelief just from an entertainment aspect (like watching animated cartoons), and when that happens all is fair game, and inconsistencies are not jarring like a "not quite right" simulation of reality. Our spherical mapping is imperfect here, with plenty of distortion around the edges, but the sheer simplicity makes us "just not care" and embrace it fully anyway.

I have a large collection of simple little code snippets I wrote over the decades, which perform awesome graphics and animation effects. Some peeps are awe-struck by some of my unexpected demos. I plan to port some of these to the RiftDK (and to the Raspberry Pi). My last set of demo ports were to eink Kindles (where animation effects were completely unexpected by my audience, but now others are using them).

Anyway, this simple head-tracked blit resulting in full spherical wraparound caused by RiftDK radial lens distortion is an unexpected gem that is now part of my collection. You should do cool stuff with it too!

Enjoy! :D
Last edited by geekmaster on Thu Apr 18, 2013 11:58 am, edited 2 times in total.
tbowren
One Eyed Hopeful
Posts: 22
Joined: Fri Jan 25, 2013 12:29 pm

Re: Deskope - A Simple Windows Viewer

Post by tbowren »

geekmaster wrote:
tbowren wrote:Geekmaster!!! This is awesome.

I played with it this morning and it works very well. I will be playing with this a lot.
Hey, don't blame me! AngelJ gets the credit for the simple idea. I am just tweaking it (wider IPD for more distant desktop, etc.).

However, the idea is shockingly simple, in that it is just a simple area blit from the desktop to the Rift monitor, with head tracking for the upper-left corner starting postion. Simple and elegant, with very little code to implement it.

I plan to use this idea in my existing code base... You will see some cool demos from me in the future, including some for the Raspberry Pi feeding the RiftDK.

Oops, yeah sorry AngelJ, updated my thanks. I only saw the 2nd page and grabbed it before reading the entire thread.

I have been wanting to surf the web, do programming, and just generally interact with my computer wearing the rift, its so awkward to continually remove it. The more I can do without having to remove it the better. Obviously this will be much more useful with a higher res display but that will come.

I'm actually interested in laying in bed with it on at night and not getting complaints that the room is too bright from my monitors.
geekmaster
Petrif-Eyed
Posts: 2708
Joined: Sat Sep 01, 2012 10:47 pm

Re: Deskope - A Simple Windows Viewer

Post by geekmaster »

tbowren wrote:... Oops, yeah sorry AngelJ, updated my thanks. I only saw the 2nd page and grabbed it before reading the entire thread. ...
How did you edit your old post (after mutliple replies) without a "Last edited by ..." remark getting inserted at the bottom of it?

http://www.mtbs3d.com/phpBB/viewtopic.p ... 38#p119925
User avatar
AngelJ
Cross Eyed!
Posts: 102
Joined: Wed Jul 06, 2011 9:47 pm

Re: Deskope - A Simple Windows Viewer

Post by AngelJ »

No problem tbowren, and thank you.

I used to use my Vuzix HMD in the way you describe with this app. Like you said though, more resolution is needed before I would call this a practical solution for working on a desktop. I just thought the impracticalities would put people off altogether, which is why I'm so surprised by this reception.
geekmaster
Petrif-Eyed
Posts: 2708
Joined: Sat Sep 01, 2012 10:47 pm

Re: Deskope - A Simple Windows Viewer

Post by geekmaster »

AngelJ wrote:No problem tbowren, and thank you.

I used to use my Vuzix HMD in the way you describe with this app. Like you said though, more resolution is needed before I would call this a practical solution for working on a desktop. I just thought the impracticalities would put people off altogether, which is why I'm so surprised by this reception.
We are just a pack of ravenous VR wolves! We will eat ANYTHING no matter how foul it smells, and we will ENJOY it!
:lol:

The only thing "foul" here is the low framerate, and the pincushion distortion in the corners. But you know what? We do not give a damn! We LOVE it! And some of us programmers love the elegant simplicity of the idea and the code! We don't need no stinkin' pre-warp! Thanks for sharing!
User avatar
AngelJ
Cross Eyed!
Posts: 102
Joined: Wed Jul 06, 2011 9:47 pm

Re: Deskope - A Simple Windows Viewer

Post by AngelJ »

geekmaster wrote:
AngelJ wrote:To get rid of the missing dll error I applied fix #1 from here: http://www.rhyous.com/2010/09/16/avoidi ... r100d-dll/

Based on that file size it seems like yours might need the fix too geekmaster.
no! No! no! NEVER download DLLS from those sites! Often virus infected. You download and install the full Runtime package from Microsoft!
The website I linked didn't offer any dll downloads. Maybe you're responding to an ad you saw on that page?

I just wanted to address this in case anyone got worried that I'm distributing a virus by accident.
geekmaster
Petrif-Eyed
Posts: 2708
Joined: Sat Sep 01, 2012 10:47 pm

Re: Deskope - A Simple Windows Viewer

Post by geekmaster »

AngelJ wrote:The website I linked didn't offer any dll downloads. Maybe you're responding to an ad you saw on that page?

I just wanted to address this in case anyone got worried that I'm distributing a virus by accident.
Oops, sorry... :cry:

I was in a hurry. But that page does contain useful info, and my most recent attachment above was statically linked. The space savings from using DLLs was really only an issue in the days of 640KB of RAM and everything stored on floppy disks. Static linking really should be the default these days. It would save a lot of grief for people who do not have all the redistributable runtime libraries for all the different versions of Microsoft compilers still in use out in the wild out there...

Although I have been static linking all my ARM code for quite some time, I plan to start static linking my Windows proggies now too, just to save everybody all those "missing DLL" error messages...

And I added an "edit" to my warning page, about my accidental "false alarm"...
Post Reply

Return to “Oculus VR”