-
Notifications
You must be signed in to change notification settings - Fork 5
Description
📝 Is your feature request related to a problem?
The LAC currently only sees texture for choosing texture for compression, the texture is only considered.
Therefore, there is risk of compressing low-UV-density well-reduced texture furthermore, which decrease appearance much.
💡 Describe the solution you'd like
Consider UV density of each texture when choosing textures to compress, and target resolution.
This would prevents over-compressing well-optimized textures.
Describe alternatives you've considered
Manually selecting compression quality for each texture can avoid this issue.
However this requires hard work for users and I think this tool aims almost-zero-config so this tool itself should handle UV density.
Additional context
Actual UV density is extremely hard to compute since shaders can apply arbitrary UV transformations, and it can vary based on material properties.
There are two approach I came up with:
-
To write support code for each shaders.
Existing tools like AAO and TTT does this approach.
However this needs much maintenance cost to follow-up shader updates. -
Use _ST only
This is what unity implemented for estimating UV density om Unity streaming mipmap.
For mip streaming, overestimating density is acceptable since it loads exceeding levels.
However, for our case, overestimating density might decrease appearance.
In both case, for precise estimation, we need feature to track material property manipulation as AAO has.
However, I think we can implement based on 'current' or 'default' material property instead.
For well-optimized/reduced textures, texture will be complex so estimating uv density might not necessary.
For this reason, I think we should test the result of this feature before releasing this feature, or before stabilizing this tool to v1.