Java OpenGL纹理拉伸
我正在尝试将纹理附加到立方体。当前,纹理正在拉伸 我知道我的纹理坐标有问题,但我不知道是什么 对于所有顶点位置(Java OpenGL纹理拉伸,java,opengl,textures,Java,Opengl,Textures,我正在尝试将纹理附加到立方体。当前,纹理正在拉伸 我知道我的纹理坐标有问题,但我不知道是什么 对于所有顶点位置(x,y,z),我制作了纹理坐标(x,y) 电流输出: gl2.glTexParameteri( GL.GL_TEXTURE_2D, GL.GL_TEXTURE_MIN_FILTER,GL.GL_NEAREST); gl2.glTexParameteri( GL.GL_TEXTURE_2D, GL.GL_TEXTURE_MAG_FILTER,GL.GL_NEAREST); gl2.glT
x,y,z
),我制作了纹理坐标(x,y
)
电流输出:
gl2.glTexParameteri( GL.GL_TEXTURE_2D, GL.GL_TEXTURE_MIN_FILTER,GL.GL_NEAREST);
gl2.glTexParameteri( GL.GL_TEXTURE_2D, GL.GL_TEXTURE_MAG_FILTER,GL.GL_NEAREST);
gl2.glTexParameteri(GL.GL_TEXTURE_2D,GL.GL_TEXTURE_WRAP_S,GL.GL_REPEAT);
gl2.glTexParameteri(GL.GL_TEXTURE_2D,GL.GL_TEXTURE_WRAP_T,GL.GL_REPEAT);
如果您超过该边界,则根据
GL\u REPEAT
的GL\u Texture\u WRAP\S
和GL\u Texture\u WRAP\T
参数,OpenGL中的纹理坐标将缩放为0-1
我不知道allPoints
列表的组织,但对于立方体,每个顶点都有多个唯一的纹理坐标,因此需要复制顶点。如果手动绘制或仔细考虑,相邻面的顶点上1
的纹理坐标也必须为0
每个面应具有以下纹理坐标:
(0, 1)--(1, 1)
| |
| |
| |
(0, 0)--(1, 0)
现在想想立方体上的面,
(1,1)
点就是相邻面的(0,1)
点。复制顶点以解决该问题。这很有意义。我相应地更改了纹理坐标,但它看起来仍然伸展。(). allPoints是立方体细分中的所有点。立方体的顶点从-0.5->0.5重要吗?谢谢纹理坐标与顶点无关。看起来有些纹理坐标与顶点不匹配。与顶面类似,左下角和右下角的坐标看起来是翻转的。只要把这些值弄乱,直到你在正确的地方得到正确的值。
(0, 1)--(1, 1)
| |
| |
| |
(0, 0)--(1, 0)