Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Option to adjust Horizontal FOV #35

Open
Goldmes opened this issue Dec 8, 2024 · 5 comments
Open

Option to adjust Horizontal FOV #35

Goldmes opened this issue Dec 8, 2024 · 5 comments

Comments

@Goldmes
Copy link

Goldmes commented Dec 8, 2024

So, I tested your app, and honestly it's the best one yet, I don't know why other video players can't even get a fraction of your power 😅.

My situation: I'm trying to play VR video (180 SBS) on an Nreal Air, basically equivalent to VR glasses with low FOV.

The "binocular" or camera view of your app is perfect for watching VR video, because we are not supposed to view the entire FOV of VR content in a smaller screen.

But the issue is that, often times the default viewport is not the best. A lot is getting horizontally "squished" view because it's too wide. Here is an illustration (green is the video, blue is the original viewport, red is the adjusted):

image


Other example, the ability to "zoom-in" like how you can zoom in Google Street view, but instead the horizontal & vertical zoom are adjustable independently.

@ArsenicBismuth
Copy link

This is an interesting feature. I can try my hands on it, I already see there's frustum definition in the code, which I think will be related to this kind of feature.

if (Bino::instance()->assumeSurroundMode() != Surround_Off) {
    float verticalVieldOfView = qDegreesToRadians(50.0f);
    float aspectRatio = float(width) / height;
    float top = qTan(verticalVieldOfView * 0.5f);
    float bottom = -top;
    float right = top * aspectRatio;
    float left = -right;
    projectionMatrix.frustum(left, right, bottom, top, 1.0f, 100.0f);
    QQuaternion orientation = QQuaternion::fromEulerAngles(
            (_surroundVerticalAngleBase + _surroundVerticalAngleCurrent),
            (_surroundHorizontalAngleBase + _surroundHorizontalAngleCurrent), 0.0f);
    orientationMatrix.rotate(orientation.inverted());
}

@marlam
Copy link
Owner

marlam commented Dec 26, 2024

The real solution for glasses like this is to get the appropriate values from a VR middleware.
If the glasses support SteamVR/OpenVR, this should work our of the box if you build Bino with QVR.

@Goldmes
Copy link
Author

Goldmes commented Dec 26, 2024 via email

@marlam
Copy link
Owner

marlam commented Dec 26, 2024

Well, I think it's strange to waste the potential of an expensive piece of hardware like that, but what do I know ;)

Could you please test the lastest version from Git?

Mouse wheel zooms in/out, and Shift+Wheel stretches / squeezes horizontal field of view.

Is this what you wanted?

@Goldmes
Copy link
Author

Goldmes commented Dec 26, 2024 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants