glTFast icon indicating copy to clipboard operation
glTFast copied to clipboard

Textures are flipped by Y-Axis

Open stevan-voste opened this issue 1 year ago • 2 comments

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:

  1. Create empty Unity project with URP
  2. Import provided model
  3. Build project on iOS device
  4. See error

Expected behavior Model textures are not flipped

Screenshots In application image

In editor image

  • 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

stevan-voste avatar Aug 14 '24 15:08 stevan-voste

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?

atteneder avatar Aug 23 '24 20:08 atteneder

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.

atteneder avatar Aug 26 '24 11:08 atteneder

There's two potential problems underneath:

  1. Incorrect texture format (dev host target format instead of generic format). See #552 .
  2. 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.

atteneder avatar Dec 16 '24 12:12 atteneder