Rendering at 800x480 2 times should not really bottleneck any recent graphics card though.
Oculus Rift support
|
10-07-2012, 12:43 PM
I'm more worried about the extra draw calls, then again I don't know much about how this stuff works so I'm not sure what kind of performance impact that would have.
"Normally if given a choice between doing something and nothing, I’d choose to do nothing. But I would do something if it helps someone else do nothing. I’d work all night if it meant nothing got done."
-Ron Swanson "I shall be a good politician, even if it kills me. Or if it kills anyone else for that matter. " -Mark Antony 10-07-2012, 05:04 PM
I'll see if I can buy or hire F-Zero GX, it should be cheap these days, then I'll let you know if I can get it to work easily or not with head tracking. Some games that always render everything can be used just by rotating the view/projection matrix. Other games would need the game code or a memory location to be patched to change which geometry is culled or to change where the game thinks the camera is pointing. And other games would need to emulate the controller when you turn your head.
I don't know how hard it would be to find the parts of the game code or memory that need changing, but I made another patch for viewing the assembly in a more x86 style language. It's much more fun seeing "if > RET (unlikely)" instead of "bgtlr-". :-) 10-07-2012, 05:22 PM
There shouldn't be any slowdown from rendering twice.
As you noticed you'll run into various issues across games that are using post processing effects and other issues with the game culling geometry. Patching the games individually is something i'd consider too much of a pain in the ass to bother with, but go ahead Unless you need realtime analysis of the game running, it's probably easier to determine how the games work from IDA (I use both). Also YUCK, x86 :p I don't know how you plan to patch games, but if you aim to just break their culling completely instead of only widening the FoV, you could run into interesting issues like being "out of memory" or other resource exhaustion. No idea but it could be fun. 10-07-2012, 06:07 PM
Interesting, i saw this on GTTV yesterday but so far only 3 games have been announced that will actually support this.
......?????
10-08-2012, 03:16 PM
Looks nice! I'm interested in getting the Rift to work with actual GameCube/Wii hardware since doing so doesn't require a high-end PC. I've already done a project (GeckoTunnel PadSim) which let a PC control the pad inputs (or any other variables in RAM) to a GameCube game; I figure this should be similar (poke player/camera matrices instead of pad variables). That said, I agree with you that Dolphin will produce a better experience than actual GCN/Wii hardware for people who can afford the PC.
(10-02-2012, 08:38 PM)CarlKenner Wrote: It's in 3D, has a 90 degree horizontal FOV, and a 110 degree vertical FOV My understanding from the PR that Oculus has released so far is that the 110 degree FOV is diagonal, not vertical. I don't think it would make sense to have a larger vertical FOV than horizontal, since the natural human FOV is definitely wider than it is tall. Do you know something I don't? 10-09-2012, 03:35 PM
(10-08-2012, 03:16 PM)biolizard89 Wrote: Looks nice! I'm interested in getting the Rift to work with actual GameCube/Wii hardware since doing so doesn't require a high-end PC. I've already done a project (GeckoTunnel PadSim) which let a PC control the pad inputs (or any other variables in RAM) to a GameCube game;Is that a software project, or a hardware project? And was it on a Wii or a GameCube? I'm also interested in getting this to work directly on a real Wii, but it's easier for me to start with Dolphin and then work out how to do it on a real Wii. So far it looks promising, since the Wii uses a standard set of registers for controlling the viewport and the projection matrix. I've written programs for Homebrew channel before, but I haven't looked at the code for USB loaders or disc loaders to see how to inject code into a running game. The Wii is very limited in what output it can produce though. I can't get it to work with a 3D TV for example, because the 3D TV won't do Side By Side 3D with signals over the AV inputs. I don't know exactly what inputs the Rift will accept, but prototypes seem to show component inputs and the Wii can output component signals (I think you need to pay extra for the cable though), so it might be possible. The Wii is limited in what resolutions it can output too. Quote:I figure this should be similar (poke player/camera matrices instead of pad variables). That said, I agree with you that Dolphin will produce a better experience than actual GCN/Wii hardware for people who can afford the PC. I don't know if it would work better on Dolphin or the Wii, Dolphin can be slow because it has to emulate everything rather than doing it natively, and framerates matter a lot for VR because you are turning your head. Quote:My understanding from the PR that Oculus has released so far is that the 110 degree FOV is diagonal, not vertical. I don't think it would make sense to have a larger vertical FOV than horizontal, since the natural human FOV is definitely wider than it is tall. Do you know something I don't?Yes, I do know something you don't. The Oculus Rift uses a normal ~6.5 inch 16:10 screen with 1280x800 resolution, with a wall down the middle and a 5x aspheric lens on each eye. That gives each eye a resolution of 640x800, and an aspect ratio of 16:20 (4:5). That is confirmed for the developer kit that ships in November/December/January. The prototype's FOV was 90 degrees horizontally, more than double all the so-called "widescreen" HMDs, even though this is "tallscreen". But vertically it was 110 degrees, which none of the other HMDs can compare to. The developer kit may be getting an even higher FOV that that. But the aspect ratio probably won't change, unless part of the screen can no longer be seen, which would seem like a waste. So I've been testing Dolphin rendering of tall screens, where the width is the same as a 16:9 screen, but the height is more than twice as tall. It creates some problems with 2D elements though, so I'm currently trying to see if I can get the 2D elements to also use a projection matrix hack. 2D elements are also used for screenspace effects that read the whole screen though, so some of them have to be rendered fullscreen. So it's a bit tricky. I also need to work out how to apply roll to an orthographic projection matrix, which is nowhere near as easy as you might think, and it makes my head hurt trying to work it out. Because sometimes the 2D elements have to line up with the 3D elements. 10-09-2012, 04:35 PM
(10-09-2012, 03:35 PM)CarlKenner Wrote: Is that a software project, or a hardware project? And was it on a Wii or a GameCube? I'm also interested in getting this to work directly on a real Wii, but it's easier for me to start with Dolphin and then work out how to do it on a real Wii. So far it looks promising, since the Wii uses a standard set of registers for controlling the viewport and the projection matrix. I've written programs for Homebrew channel before, but I haven't looked at the code for USB loaders or disc loaders to see how to inject code into a running game.GeckoTunnel is a software project which utilizes the USB Gecko hardware to synchronize data between a GameCube/Wii and a PC. The original goal was enabling online play (it already supports playing Sonic Adventure 2: Battle online), but I also used it to simulate a 5th player's pad data in Super Smash Bros Melee. So far only tested on a Wii in GameCube mode, but it should easily work with a GameCube, or a Wii in native Wii mode. I was tinkering around with F-Zero GX last year; I found where the game stores the camera matrix, and made some ASM hooks to implement stereo 3D. I used field-sequential and frame-sequential 3D modes, since that was easiest. That said, my ASM skills are sucky, so that code is pending a rewrite due to a large number of bugs in my code. (The camera position lags by 1 frame, and I think I may have messed up the matrix math.) I don't have a 3D TV, but I hooked up my Wii's S-Video output to a capture card, and played it in Stereoscopic Player with my Nvidia 3D Vision laptop. Quite playable, and the stereo 3D effects are very immersive (I actually got a sensation of floating/falling from one of the levels). All of this is implemented as GeckoOS codes, so it should be easy to get running. Most Wii loaders support GeckoOS codes, as does the Swiss loader on GameCube. Quote:I don't know if it would work better on Dolphin or the Wii, Dolphin can be slow because it has to emulate everything rather than doing it natively, and framerates matter a lot for VR because you are turning your head.I meant that if one has a PC that can run it full speed, Dolphin will look much better. If the Wii is a better framerate, then definitely that takes precedence. However, my stereo 3D code uses field-sequential/frame-sequential modes, so each eye is only getting 30fps in a 60fps game. I assume that's sufficient for VR, but it's not as good as Dolphin would be if it could deliver 60fps per eye. Quote:Yes, I do know something you don't. The Oculus Rift uses a normal ~6.5 inch 16:10 screen with 1280x800 resolution, with a wall down the middle and a 5x aspheric lens on each eye. That gives each eye a resolution of 640x800, and an aspect ratio of 16:20 (4:5). That is confirmed for the developer kit that ships in November/December/January.Okay, that makes sense. I'm not sure why some of Oculus's PR differs from this, but what you say seems reasonable. Quote:So I've been testing Dolphin rendering of tall screens, where the width is the same as a 16:9 screen, but the height is more than twice as tall. It creates some problems with 2D elements though, so I'm currently trying to see if I can get the 2D elements to also use a projection matrix hack. 2D elements are also used for screenspace effects that read the whole screen though, so some of them have to be rendered fullscreen. So it's a bit tricky. I also need to work out how to apply roll to an orthographic projection matrix, which is nowhere near as easy as you might think, and it makes my head hurt trying to work it out. Because sometimes the 2D elements have to line up with the 3D elements.Matrix math isn't my strong point (I'm a 2nd year CS student, I haven't yet taken linear algebra), so I'm glad someone more competent than myself is working on such issues. 10-10-2012, 02:49 AM
(10-09-2012, 04:35 PM)biolizard89 Wrote: GeckoTunnel is a software project which utilizes the USB Gecko hardware to synchronize data between a GameCube/Wii and a PC. The original goal was enabling online play (it already supports playing Sonic Adventure 2: Battle online), but I also used it to simulate a 5th player's pad data in Super Smash Bros Melee. So far only tested on a Wii in GameCube mode, but it should easily work with a GameCube, or a Wii in native Wii mode.That is really awesome. If we could get a generic 3D driver working on the Wii itself, that would be great. And I'd really like to get a generic Rift driver working on the Wii. Quote:Okay, that makes sense. I'm not sure why some of Oculus's PR differs from this, but what you say seems reasonable.I think the diagonal FOV is also around 110 degrees. But you're probably thinking of the rendered animation in the kickstarter video which shows a wide but not tall screen. Apparently that was a misunderstanding with the company they got to make that animation and they didn't have time to fix it before they released the video. Anyway, the FOV isn't finalised, although the resolution and aspect ratio are. So those FOVs are probably minimum bounds. Quote:Matrix math isn't my strong point (I'm a 2nd year CS student, I haven't yet taken linear algebra), so I'm glad someone more competent than myself is working on such issues.Really? Who? That guy could be really helpful to me. Anyway, here's how it renders at the moment: (except it's supposed to be taller, my screen only goes up to 768, not 800): There's no 3D yet, both sides are the same. It has a barrel distortion to compensate for the lenses, and an increased vertical FOV. |
« Next Oldest | Next Newest »
|
Users browsing this thread: 1 Guest(s)