-
Notifications
You must be signed in to change notification settings - Fork 246
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
Platforms: does not work on OpenGL ES (Android, WebGL, Quest 2 etc.) #26
Comments
Oh, OpenGL or OpenGL ES is definitely not going to be supported. If Quest supports Vulkan, try using that instead? |
nope, black screen on quest last time I tested with vulkan in URP... |
i was aiming for: sadly with Vulkan and OpenXR it's working at around 20 fps which is great but |
Is that some known issue with Unity or OpenXR Vulkan support? Maybe it's fixed in a more recent Unity version by chance (e.g. latest 2023 alpha/beta)?
I do see this message, yes. I have exactly zero VR devices around, so adding any sort of VR support is quite a bit outside of my reach. |
|
|
i don't know if this is why it's not rendering, i updated to 2023.1.16f1 |
Exactly what I'm getting when I try to run on Quest 2 |
@electrum-bowie I edited your post to make it shorter. And yes, that's exactly the error mentioned at the beginning of this issue. But until either someone contributes a fix, or I get a VR device (which is unlikely to happen), it will stay like that. |
The same issue appears when targeting any Android device. What makes me curious is that by insisting it compiles and export apk but then, of course, just a black screen. When trying to compile version 0.2.0 it works, sort of. It display only some splats with wrong sizes and positions and not all of them and it's very heavy task for android devices, even with powerful ones. By selecting debug points instead of splats it becomes "usable" but again not all points are rendered, only a few of them. Maybe it was partially working because there was also another code for sorting the splats. |
With the latest code v0.7.0, instead of producing the abovementioned error, sorting kernel compatibility check won't pass (here in the code, only Edit: UnityGaussianSplatting/package/Shaders/GaussianSplatting.hlsl Lines 525 to 542 in fc97e07
I tried to dig into the Android logcat and here are the outputs: (click to expand)
It seems to be related to the unsupported texture format on mobile (related to #44? but I'm using the "High" quality). I'm using the Vulkan backend. |
In case it helps in gathering information, I was able to verify that using the Vulkan rendering within Spaces SDK on a VR device is able to render Gaussian Splats on one eye a week or so ago. |
Thanks @jacemiller for the info! Are you referring to native rendering on the VR device or PCVR? Which device are you using? How do you manage to get it run on an Android device? |
I got the project rendering natively on the Android-based VR devices (Lenovo VRX and Motorola edge+/Lenovo A3). I was also using Spaces SDK, though really only for the spatial navigation of virtual camera pose and standard VR camera rig compatible with the devices. One other comment is that the splat content was only visible in one of the two eye views - the other rendered completely black. I only looked into the project briefly, so my comments may not be related to the latest revision. The version I had working was based off a commit that did include the menu option Tools->"Gaussian Splats"->"Create GaussianSplatAsset" before it was removed and subsequently replaced (originally cloned approximately around September 23rd). There seemed to be some issues with rendering using OpenGL. Two items that seemed to be key aspects were:
So, maybe there is some lack of "Wave*" function support on the Android-based devices I tried that is assumed in the computer shader? There is a "#pragma require wavebasic" line at the top of the FfxParallelSort file. |
Even when using Windows as target device and using the standard OpenXR features, the camera is only rendering 1 eye. So this does not seem to be an android issue. Anyone managed to solve this targetting windows? |
Yes, various forms of VR have various issues, that are under #17 |
I fixed this by changing 'Render Mode' to Multi-pass under Project Settings > XR Plug-in Management > OpenXR. |
Ok I got it working on Vulkan.
Except in the sh calculation at the end where you can just skip using asfloat() at the end, for example:: |
@pablodawson while that might work as a workaround, it does read as a very large "oof!". Like, it should not actually work :/ |
Big oof indeed, no idea why it's working now |
Hello, how to run 3d Gauss on unity Android? |
Hi, I might be late, but would you happen to have a repo of this attempt you made at rendering splats on VR devices? I've been trying to get it to work as standalone on a quest 3 but I've been bumping into the same issues you described. So far I couldn't get anything to render even with the fixes, I might be missing something |
Hi, Thanks for the awesome project. I could run it via OpenXR and Quest Link (tethered to my desktop computer with a 3090), but when I try to run it on Quest standalone and build an apk, I get 50 errors regarding the shader files like this:
error in 'Gaussian Splatting/Debug/Render Boxes': 'asfloat': no matching 1 parameter intrinsic function; Possible intrinsic functions are: asfloat(float|half|int|uint) at Assets/GaussianSplatting/Shaders/GaussianSplatting.hlsl(469) (on gles3)
Has anyone succeeded in running Gaussian Splatting on Quest standalone?
Thanks
The text was updated successfully, but these errors were encountered: