Yellow-Dog-Man / Resonite-Issues

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

Depth of stereo photos scale with the object which takes the photo #2357

Open paradoxical-autumn opened 1 week ago

paradoxical-autumn commented 1 week ago

Describe the bug?

Currently, any stereo photos taken have the depth be relative to the object which takes it, rather than the global depth. This causes pictures taken with the same depth setting to be taken at different depths at different scales.

To Reproduce

Take some stereo photos with any object, whether this be the quick photo capture or an actual camera component, at different scales. Observe how the depth of the picture is relative to the object size.

Expected behavior

The depth is globalised, not localised, causing consistent picture depths.

Screenshots

Picture taken with the default Resonite Essentials camera at: Default scale (relative to my user, appx 1, 1, 1): 2024-06-18 09 59 54

A much smaller scale: 2024-06-18 10 00 09

A much larger scale: 2024-06-18 10 00 22

I don't have exact scaling numbers as I forgot to collect those. Please see "Additional context" for more testing, with proper values.

Resonite Version Number

2024.6.11.74

What Platforms does this occur on?

Windows

What headset if any do you use?

Quest 2 (w/ steam link)

Log Files

DESKTOP-TGC19W - 2024.6.11.74 - 2024-06-18 10_57_35.log

Additional Context

This was originally reported as a comment by shiftyscales on #1759 without creating a separate issue causing it to go unaddressed: https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/1759#issuecomment-2065419353

I'd assume that some custom made cameras work around this by driving the value with protoflux, which would cause this to be a breaking change, please see below for my alternative solution in the event that this is a blocker.

Alternative solution:

An enum field added to the camera component which toggles between local scale and global scale for stereo separation depth (and that the quick photo capture uses the global scale setting.)

Reporters

paradoxical_autumn (on discord) // paradox19 (IGN)

shiftyscales commented 1 week ago

I'd mentioned this prior in this comment: https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/1759#issuecomment-2065419353

The relative depth of the stereo finger photo appears to scale with the size of the user that takes the photo.

At small user scales, the image is much flatter/closer together, at larger user scales the image is much deeper/more separated.

The following three images were taken at ~0.6x scale, 0.05x scale, and 1.2x scale.

The most separated one is the one that was taken at the largest (1.2x) user scale.

2024-04-18 22 08 27 2024-04-18 22 08 29 2024-04-18 22 08 43

Seeking input from @Frooxius.

But this issue also has some overlap with #1795.

I believe this may technically be correct as it is - when you are physically larger, you have a much wider IPD - and as a consequence- the stereo separation is much further spread out.

Likewise- when you are small, your IPD shrinks towards zero, meaning there is much less depth / difference between the left and right eyes- hence why the images appear so flat.

As highlighted in #1795 - the main reason this is a problem is because the cameras default to aiming straight ahead so your eyes are focused at a point an infinite distance away despite objects in the frame being significantly closer.

paradoxical-autumn commented 1 week ago

I believe this may technically be correct as it is - when you are physically larger, you have a much wider IPD - and as a consequence- the stereo separation is much further spread out.

I'd have to argue that this doesn't seem right, as your physical eyes aren't getting further apart in real life, which is why even as a larger avatar it still hurts to look at images with larger depth. (Additional context: me and a friend actually tried changing our in game IPDs which caused the same pain as seen here with the pictures.)

paradoxical-autumn commented 1 week ago

Oh nevermind I'm incorrect