Search Issue Tracker
Won't Fix
Votes
1
Found in
2021.3.35f1
2022.3.20f1
2023.2.11f1
2023.3.0b8
6000.0.0b11
Issue ID
UUM-64801
Regression
No
[Android] URP Decal Projector fails to render decals at a shorter distance than the value of Draw Distance when built for Android
Reproduction steps:
1. Open the attached project "ReproProj"
2. Open the “/Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/DemoScene.unity” Scene
3. Switch to Android Platform (File > Build Settings > Android > Switch Platform)
4. Build and Run on Quest
5. Notice that the decal is fully visible
6. Teleport to the far back right corner (use the right controller’s Thumbstick)
7. Observe decal
Expected result: Decal is fully visible
Actual result: The “L” letter of the two lines has been clipped or the decal is not present at all
Reproducible with: 2021.3.35f1, 2022.3.20f1, 2023.2.11f1, 2023.3.0b8
Reproducible with devices:
VLNQA00325, Samsung Galaxy Note10 (SM-N970F), Android 12, CPU: Exynos 9 (9825), GPU: Mali-G76
VLNQA00318, Oneplus OnePlus 7 Pro (GM1913), Android 11, CPU: Snapdragon 855 SM8150, GPU: Adreno (TM) 640
VLNQA00379, Oculus (Quest 2), Android 10, CPU: Snapdragon XR2, GPU: Adreno (TM) 650
Not reproducible with devices:
VLNQA00494 - iPhone 14 Pro Max, 16.3.1 iOS
VLNQA00358 - iPhone 12, 14.1 iOS
VLNQA00392 - iPad (9th generation), 15.0 iOS
VLNQA00310 - iPad Pro 12.9", 13.4.1 iOS
Testing environment: Windows 10 Enterprise 21H2
Not reproducible on: No other environment tested
Notes:
- Does not reproduce with Play Mode, Windows Standalone, and iOS Players
- Reproducible with Oculus XR and OpenXR
- Reproducible with mobile Android devices
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- Search field in UI Builder's Library has no character limit
- Changing the value in UI Builder by dragging increases it by a few thousand points when reaching the borders of the screen
- ARM64 architecture DLL incorrectly copied instead of x64 when building for Windows x64
- Crash on TypeTreeIterator::GetNode when opening a specific folder
- Crash on WriteSerializedAssetsV2 when (re)entering the Play Mode in a specific project when IEnumerator Start() is used
Resolution Note:
Hi there. I've been looking into this issue and identified the cause. Unfortunately I can't fix this for you. What I can suggest you do is to set your camera to use a larger value for the near clip plane as this will mitigate the issue (additionally, consider using a smaller value for your far clip plane as well). Alternatively you can switch to using Vulkan, if that is an option for your project.
The more technical explanation for this is that we simple do not have enough depth precision on OpenGL ES. The screenspace decal projector relies on the depth buffer to reconstruct the local position of itself in the shader, but the amount of error in this process increases the further away from the camera the decal is. The result is that the values end up being so wrong that this reconstruction is completely unreliable, which causes the decal to clip when it shouldn't. More modern APIs like Vulkan don't have the same issues because they handle depth in a better way.