ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java-纹理映射的奇怪问题

2019-11-02 05:59:53  阅读:226  来源: 互联网

标签:lwjgl opengl java


我正在尝试使用通过LWJGL的slick-util扩展加载到Java中的Quads的3d世界上的预生成PNG文件中的纹理坐标.

纹理文件为192×96像素,并且格式正确.它由6×3 32×32瓦片组成.

3d方形块的宽度为1.5f.它们的间距适当.

我在获取正确的纹理坐标时遇到问题.当我将0.0f设置为0.333333f作为y坐标时,我得到的值略大于显示的顶部图块的高度.但是,如果我将0.0f-0.25f放进去,我得到的恰好是1/3的高度,即我瓷砖的高度.我还没有找到X坐标的幻数,但是也许有人可以向我解释,为什么根据纹理坐标,96的1/4是24,还是我做错了?我怀疑这可能是我的四边形尺寸和纹理之间的冲突.

Screenshot http://i52.tinypic.com/2qbafqp.jpg

立方体的顶部使用纹理坐标(0.0,0.0f),(0.0,0.333333f),(0.166666f,0.333333f),(0.166666f,0.0f),该纹理坐标从左上角到右上角.再次,主要纹理文件是32×32瓦片,排列为192×96(96是高度).

请注意,我在其中一个图块的顶部放置了一条白线以查看其边框,在其底部放置了一条黑线,然后在其下方的下一个放置了一条白线.纹理“出血”太深了.如您所见,其他纹理具有自己甚至更陌生的坐标.

在假设图像的顶部为1.0而不是底部的情况下排列纹理坐标会生成奇数正方形,其中心应有一个四边形的矩形孔.

我正在使用TEX_ENV GL_MODULATE.

解决方法:

纹理大小通常是2的幂.我怀疑有些东西会将您的192×96纹理调整为256×128或256×256纹理.但是,这并不能真正解释您找到的值…但是,我认为,如果将纹理的大小调整为256×256(增大大小,不缩放!)并据此计算纹理坐标,问题就会解决.远.

标签:lwjgl,opengl,java
来源: https://codeday.me/bug/20191102/1989309.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有