KhronosGroup / KhronosGroup/glTF
KHR_texture_transform and combined texture maps
- Dominant language
- HTML
- Stars
- 7.8k
- Forks
- 1.2k
- Avg merge
- 17h 26m
- Merged PRs (30d)
- 5
Description
We've recently run into an issue with this extension in the Adobe Dimension exporter. We support separate transforms for metal and roughness textures as well as for the base color texture and opacity texture.
Since the texture transform applies to the individual material property, it's currently not possible to specify this in glTF.
What are the solutions?
1. Modify the extension to make it possible to specify multiple transforms per texture, assigned to sets of channels.
2. Require exporters to bake out the texture, taking the different transforms into account.
Since option 2 can obviously result in a severe loss of quality in some situations, we would ideally go with option 1. However, option 1 does feel a bit awkward and is putting more onus on the runtime to handle this situation. It requires potentially sampling the texture multiple times in the shader, etc.
So, my feeling is that option 2 is probably the only real solution. However, I wanted to check with the community and see what others think. If runtimes were willing to take on this additional complexity, it would allow us to export maps without potentially destroying fidelity.
Contributor guide
Research direction
Start by reading the KHR_texture_transform extension discussion and the examples involving combined metalness, roughness, base-color, and opacity maps. Determine whether the project wants multiple channel-specific transforms or requires exporters to bake transformed textures; done means the community agrees on one approach and its runtime/exporter implications.
Written by the indexing model from the issue text.
Assessment
- Domain
- computer-graphics
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100