Yellow-Dog-Man / Resonite-Issues

Issue repository for Resonite.
https://resonite.com
120 stars 1 forks source link

Add Stereo Convergence to Default Camera #1795

Open lxw404 opened 2 months ago

lxw404 commented 2 months ago

Is your feature request related to a problem? Please describe.

Currently stereo photos are somewhat straining to look at due to the way that they are captured. Both cameras are pointing exactly forward, which captures the scene as if your eyes were staring an infinite distance away. This forces every point in the resulting stereo image to not have a single point of focus.

Describe the solution you'd like

Your eyes are constantly converging on objects within a scene by rotating to point towards them. This allows you to selectively focus on those objects and more accurately judge their distance.

The default camera in stereo mode should therefore also have a way to allow its left/right cameras to pivot to rotate and focus on a single point in space which can be user-defined or also raycast to hit in the scene. This allows for less strain in viewing objects, and adds a lot more artistic customization in the way that people capture stereo images.

Here are some comparisons (best visible in VR):

Default Convergence
Default Convergence
Default Convergence

Convergence is sometimes not exactly what is desired in a scene, or has negligible benefits on scenes where the disparity in depth is not large, however it is an additional level of customization that can substantially improve many stereo images.

Describe alternatives you've considered

Currently one of the few existing cameras that does this is code807's stereo camera: resrec:///U-code807/R-65205883E603F7C1E02C84BBE38558CFBFF614A58B6974634592800C3470C8D1, which is a massive improvement on stereo images. After trying it, I'm sure most will agree it is a huge step up on the quality of stereo images you can capture and experience in VR simply due to its use of convergence.

Additional Context

No response

Requesters

LuxKitty code807 daveheiser

lxw404 commented 2 months ago

Originally mentioned this here. Both stereo separation and convergence options together would add a substantial amount of customization to stereo images.

troyBORG commented 2 months ago

I'm going to add my issue in here also as this is also something I'd like to see!! https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/1787

shiftyscales commented 2 months ago

Because you mentioned user-made cameras, @lxw404 - to clarify, is this request about the platform default camera? In which case this would be a content issue.

Otherwise, if it's about other camera sources, e.g. the finger photo camera, that would require separate development. I'm not certain what the best implementation would be for the finger photo camera- it could raycast out and try to find a nearby object to converge on- but just because something is near to the camera doesn't necessarily mean it would be the intended subject to focus on.

lxw404 commented 2 months ago

@shiftyscales - I am mostly referring more broadly to the InteractiveCamera component which is present in the default camera. This component already has a field for StereoSeparation, however it does not have anything for stereo convergence.

The platform default camera could use these convergence settings in a way that allows the user to specify a point in the scene to focus on by probably clicking on the screen to project a ray from that part of the image outwards (similar to how modern touch screen cameras approach auto-focus). For the finger photo camera this might not be easy to implement as it is harder to get artistic control and nuance in something that already requires both of your hands constrained in space to operate.

The first step though I believe would be to have the InteractiveCamera component itself able to control convergence directly just as it is able to control separation, then having the default platform camera implement this setting in some way that gives users control over it would be ideal.