Can Screen Space Re-Projection Stereo work on Nintendo 3DS?

Nano

Regular
Hi there,

With the explosion in Stereoscopic 3D implementation in games and the unique feature going mainstream with the Nintendo 3DS, this leads me to more questions.

We know there are a few ways to achieve stereoscopic 3D at acceptable frame-rates, but considering Crytek's "2.5%" performance loss implementation, could this transfer to Nintendo 3DS that uses parallax barrier screens?

Could we go about rendering a second image in the same way? 3DS more than any other Stereoscopic 3D platform has performance limitations, and perhaps it could give further graphical potential above the impressive scenes in RE: Revelations.

http://www.crytek.com/cryengine/presentations/aaa-stereo-3d-in-cryengine-3

http://www.gamepro.com/article/news/214520/how-the-nintendo-3ds-3d-works/
 
Last edited by a moderator:
Any 3D rendering strategy would work equally well on any 3D display - the display is a discrete operation for showing independent images to each eye. The problem with 3DS would be how to implemnt it. Crytek uses a pixel shader I believe. If you don't have that available but plenty of CPU grunt, you could maybe go that route. 3DS has neither. What you'd lose in CPU cycles 3D upscaling may not be worth it for what you'd gain in not rendering full dual-camera 3D (unless Nintendo have some clever 3D upscaling system in hardware, which would be news to everyone!).
 
Thank you for the answer.

Hmm, I wonder if there is some way to do it, and practically..

The 3DS doesn't have a completely programmable pipeline, but does have some interesting shader architecture. I wonder the extent to which developers can make use of the depth buffer/frame buffer information and manipulate it.
 
You can do reprojection without shaders. With DX7 compatible (shaderless) T&L hardware you can use projective texture generation (divides texture coordinate xy by texture coordinate w). If you calculate your texture matrix in a certain way, you will get the effect. Naturally you also need to have the ability to render to a texture.

However with this kind of simple approach you would get artifacts in areas that are not visible by the other eye. But if you have for example both the last frame of the eye and the newest image of the other eye, you can do some multitexturing blending tricks and try to hide the issues. Things like these would be much easier to do with proper pixel shaders (encode surface id to alpha and select correct texture sample based on it for example).
 
For information, DMP's PICA 200 (3DS GPU base architecture) supports the Render-to-Texture feature.

With that said, I'm not convinced yet, that a pixel shader-less complex screen-space effect, like that re-projection effect, on a platform like 3DS would look good or convincing. But who knows for sure without testing? It might turn out OK, for all I know.

3DS devs, you've got a new challenge in your hands!
 
With that said, I'm not convinced yet, that a pixel shader-less complex screen-space effect, like that re-projection effect, on a platform like 3DS would look good or convincing.
If you want to do it completely in screen space (no extra geometry) then it's pretty much impossible on fixed function hardware. The solution I described above requires an extra geometry pass, but that pass is really cheap, since you calculate no lighting and do not sample your material textures, etc (flat shaded unlit single textured geometry).
 
Last edited by a moderator:
Back
Top