GodotVR / godot_openxr_vendors

Godot 4 wrapper for OpenXR vendors loaders and extensions
MIT License
92 stars 19 forks source link

Khronos Library on Vive Focus 3 #25

Closed Psychophylaxis2 closed 4 months ago

Psychophylaxis2 commented 1 year ago

Hi. Good news is that I've been able to confirm that the new Khronos library does work on the Vive Focus 3, but only after adding the following line to the android manifest and only with the renderer set to gl_compatibility.

<category android:name="com.htc.intent.category.VRAPP" />

Without the manifest line, the headset starts the application in 2D and upside down. I added the line under the current one for Oculus in the template and it works.

I've noticed a few issues with the current XR Tools Demo such as the skybox not rendering in 3D and the gravity demo going mental, but I'll raise those issues under that project.

Great work getting it going though! Thanks

sprobst76 commented 1 year ago

I still have the problem with upside down. Attached you find my AndroidManifest.xml template and here some lines from the build

    <meta-data
        android:name="org.godotengine.plugin.v1.GodotOpenXRPico"
        android:value="org.godotengine.openxrloaders.pico.GodotOpenXRPico" /> <!-- Enable VR mode on Pico headsets -->

Perhaps you see the error. Unfortunately the Oculus Plugin does not compile for me, as I still get a merge conflict :-) AndroidManifest.template.xml.txt

Psychophylaxis2 commented 1 year ago

Not sure I can help. I only have a Vive Focus 3. For me, since I know Unity works correctly, it was a simple task to unpack a unity apk and diff the manifest for the settings the Vive needs. Since I had similar issues, I'd suspect its just a missing setting. You are selecting the Pico library from the loader?

sprobst76 commented 1 year ago

Perhaps you can post your manifest that I can compare it with yours. I used the Pico loader as the Quest loader did not compile (this problem was solved as I upgraded to the latest Godot beta). You did use the Quest resp Meta loader?

Thanks for the support

Psychophylaxis2 commented 1 year ago

I use the generic Khronos loader that was just merged for the Vive. My working manifest is as follows:

File is attached renamed as a .txt since I can't upload .xml. Only change was to add line 70. AndroidManifest.xml.txt

BastiaanOlij commented 1 year ago

Indeed, make sure you use the correct loader for each platform. As we're bringing more platforms online there are constant tweaks to the manifest as originally the Godot Core would inject items specifically for the Meta Quest only.

@Psychophylaxis2 great to hear things are working on the HTC Vive Focus 3, that is really cool. I think for now the manifest line needs to be a manual addition but we'll be discussing how we could make this easier for users.

BastiaanOlij commented 1 year ago

@sprobst76 double check through the logs whether the Vulkan renderer is being used or whether it is falling back to OpenGL. We recently added some hardware checks as there are a lot of Android devices out there that are a little limited on the Vulkan support side and some of these checks may be a little strict, we're still finetuning this.

Anyway, the sky rendering wasn't implemented for stereo on OpenGL (should be fixed, or atleast the work is ready to merge) so that could explain the breakage on Pico.

BastiaanOlij commented 1 year ago

I don't have an HTC device, it would be nice to get confirmed this worked

seichter commented 8 months ago

So far, I can declare success with Godot 4.2.1 with an HTC XR Elite (latest Firmware) in VR mode using the Khronos Vendor plugin. Development machine is ArchLinux. Some pitfalls like Java OpenJDK 17 apply - however, this seems an issue with the Android export template. Haven't tried pass-through (VST AR as we call it) as it is labeled Meta Quest only.

Update regarding passthrough - following the tutorial in the docs, only a black background is visible.

Instead of waiting: poked around a bit myself godotengine/godot#86407 - however this requires some design decisions.

BastiaanOlij commented 4 months ago

We now have HTC Elite XRs to test on thanks to HTC and are slowly working through any remaining issues (though Godot runs decently on these devices so far).

As far as I am aware the rendering issues mentioned were solved some time ago already thanks to HTCs own involvement.

Passthrough will require Godot 4.3 and is now implemented here: https://github.com/GodotVR/godot_openxr_vendors/pull/151

I will close this issue as resolved.