第一个场景
- 使用
Stick-util.jar
加载纹理,其中图像大小 = 50x50,纹理大小 =64x64。 - 绑定(bind)纹理并绘制大小为 64x64 的四边形。并给出尺寸50x50的图像。
网格尺寸50x50
第二个场景
- 加载了图像大小 = 180x50 的另一个纹理,但纹理大小 = 256x64
问题
很明显,slick-util
正在将纹理大小转换为 2 的某个幂。并且在绑定(bind)时,绘制其原始大小。 (默认)
但是为什么以及如何?第二个纹理的宽高比不等于图像尺寸。
最佳答案
原因很简单,因为一些较旧的 GPU 仅支持 2 的幂纹理。
如何很难回答,因为它是特定于实现的。它要么使用 texcoords 仅显示来自初始图像的纹理部分,要么使用绘制时被拒绝的 alpha=0 纹理像素填充额外的纹理空间。不过我只是猜测。
关于java - 图像与纹理大小 LWJGL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11064156/