godotengine / godot

Godot Engine – Multi-platform 2D and 3D game engine
https://godotengine.org
MIT License
89.04k stars 20.19k forks source link

Reflections from a probe look correct in scene editor but break / look scrambled in VR #53457

Open TheConceptBoy opened 2 years ago

TheConceptBoy commented 2 years ago

Godot version

3.3.4

System information

Win 10, RX570, i5 4590

Issue description

The reflections are not visible in VR while they are visible and accurate in Scene Editor:

Demonstration: https://youtu.be/az9a_lbEIO0

Screenshots: In Editor: image image

In VR: image image

Steps to reproduce

Well I don't know how to reproduce what seems like a scrambled Reflection Probe Image.

Minimal reproduction project

No response

akien-mga commented 2 years ago

Which VR platform is it?

If it's Quest/Android, check the .mobile graphical setting overrides in the Project Settings. Several of them have more limited features enabled by default compared to desktop for performance purposes. You can change them to match desktop at the cost of performance.

TheConceptBoy commented 2 years ago

It is using the godot 3.3.4 Xr in conjunction with Steam VR and Oculus Quest 2 via oculus link. The game, i beleive, still runs on desktop and simply renders to the headset, so I don't beleive it's android. I didnt have to set up any apks or java sdks / ndks to get vr to run. It also requires oculus link enabled via cable.

On Wed, Oct 6, 2021, 2:43 AM Rémi Verschelde, @.***> wrote:

Which VR platform is it?

If it's Quest/Android, check the .mobile graphical setting overrides in the Project Settings. Several of them have more limited features enabled by default compared to desktop for performance purposes. You can change them to match desktop at the cost of performance.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/godotengine/godot/issues/53457#issuecomment-935587033, or unsubscribe https://github.com/notifications/unsubscribe-auth/AMRFHH5W2TOLKYH6HWM5WALUFPV2DANCNFSM5FNQS3GA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

BastiaanOlij commented 2 years ago

Quest over link means that as far as Godot is concerned you're rendering to a PCVR headset, it just runs on your PC and it's Oculus handling the display on the headset.

I've run into this problem before a long time ago but can't recollect what the fix was, are you rendering VR content to a separate viewport or just setting the main viewport's ARVR property?

TheConceptBoy commented 2 years ago

Rendering to the default viewport that comes with any new project. No new viewports have been created.

BastiaanOlij commented 2 years ago

It's working for me in the OpenVR plugin but failing on the OpenXR plugin so there is definitely a problem here. As best as I can tell the reflection probes buffer remain blank and aren't being rendered to. I'll investigate further over the weekend.

edit, note that in the OpenVR plugin I am rendering to a separate viewport so that could possibly have something to do with it working.

BastiaanOlij commented 2 years ago

I didn't have much time over the weekend unfortunately but it does seem to be related to rendering to the main viewport. Not sure why, there must be some global setting shared between it and reflection probes that is effected by the VR interface.

As a workaround you could try and render to a separate viewport as the demo project does: https://github.com/GodotVR/godot_openvr/blob/master/demo

When you look at construct.tscn you'll see it contains all the logic to use a separate viewport and just embeds the main scene as a child node.

TheConceptBoy commented 2 years ago

What would be the hit to performance with a solution of nested viewpoer something like this?

On Sun, Oct 10, 2021, 7:45 PM Bastiaan Olij, @.***> wrote:

I didn't have much time over the weekend unfortunately but it does seem to be related to rendering to the main viewport. Not sure why, there must be some global setting shared between it and reflection probes that is effected by the VR interface.

As a workaround you could try and render to a separate viewport as the demo project does: https://github.com/GodotVR/godot_openvr/blob/master/demo

When you look at construct.tscn you'll see it contains all the logic to use a separate viewport and just embeds the main scene as a child node.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/godotengine/godot/issues/53457#issuecomment-939574993, or unsubscribe https://github.com/notifications/unsubscribe-auth/AMRFHH2SDISWBB76FUD5Y23UGIQQVANCNFSM5FNQS3GA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

BastiaanOlij commented 2 years ago

It shouldn't, when using the main viewport the way the 3D content is copied on screen is fairly similar to this approach. That said, I see this more as a temporary work around so we can verify that we're on the right track and you have a working solution until we fix the bug. I just need to round off a few things before I can sink my teeth into it proper :)

TheConceptBoy commented 2 years ago

Ah, alrighty then. I'll see about setting up nested viewports. Done it before.