Textures are flipped by Y-Axis
I’m encountering an issue with an imported GLTF model that uses KTX textures on an iOS device. The textures appear to be flipped along the Y-axis, but this only occurs on the device; everything works fine in the editor.
Note: I am using URP, and shaders are imported via shader variants
Files glb file to test Attach or link to .gltf/.glb files that trigger the bug.
To Reproduce Steps to reproduce the behavior:
- Create empty Unity project with URP
- Import provided model
- Build project on iOS device
- See error
Expected behavior Model textures are not flipped
Screenshots
In application
In editor
-
glTFast version 6.7.1
-
ktx: version 3.4.1
-
Unity Editor version 2022.3.41
-
Universal Render Pipeline 14.0.11
-
iOS
-
Device: iPhone14 Pro
-
OS : iOS 17.5.1
Thanks for reporting!
To certify, you're not loading said model at runtime, but you've imported it (placed it in the Assets folder), right?
I assumed that you imported at design-time and tried to reproduce.
TL;DR: Don't use KTX for this use case, but go with regular PNG/JPGs in glTF.
I think you entered unexplored territory there. The KTX for Unity plugin can import those bundled KTX textures, but it just transcodes them to a format your host computer supports (the machine you develop on). So my first attempt to re-produce failed, because on the Intel Mac it was transcoded to DXT, which is not supported on my iPhone. On an ARM Mac, it is transcoded to ETC and I did not see a problem.
You could try to figure out, which format you actually end up with.
But overall, this KTX workflow does not make sense to me at all.
There's two potential problems underneath:
- Incorrect texture format (dev host target format instead of generic format). See #552 .
- Incorrect KTX texture orientation.
I don't assume it's the latter, but in case it is, it's outside the extension spec and won't be fixed anytime soon.
Orientation metadata (KTXorientation) MUST be rd or omitted.
Closing this now. Feel free to re-open if you need further assistance.