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
- ACES Tonemapping causes banding artifacts and negative values in ColorGradingLUT when HDR is enabled and "High Dynamic Range" Grading mode is selected while Android Platform is used
- Android Player freezes when an Audio Source is playing and an incoming call is picked up and then hung up and the Audio Source is started again
- Green success icon is poorly visible in the light Unity theme
- Incorrect input into the Input Field when using Microsoft IME Japanese
- Multiplayer role "ClientAndServer" is displayed without the spaces in the "Play Mode Scenarios" window
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.