Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Libgdx纹理映射_Java_Libgdx_Texture Mapping - Fatal编程技术网

Java Libgdx纹理映射

Java Libgdx纹理映射,java,libgdx,texture-mapping,Java,Libgdx,Texture Mapping,我有一个简单的平面Mesh,它是100x100。在libgdx教程之后,我成功地将纹理映射到网格上。然而,它从一开始就看起来很奇怪,当我缩小时甚至更奇怪。我的目标是一个简单的网格模式 这是放大的飞机: 现在缩小: 纹理本身是一个小的64x64正方形,轮廓分明 我的Grid类如下所示(Grid扩展了gdx.graphics.Mesh): 不确定这是否有帮助,但您的半宽与第一个不同 -HALFWIDTH, **-HALFLENGTH**, -2f, Color.toFloatBits(255,

我有一个简单的平面
Mesh
,它是100x100。在libgdx教程之后,我成功地将纹理映射到网格上。然而,它从一开始就看起来很奇怪,当我缩小时甚至更奇怪。我的目标是一个简单的网格模式

这是放大的飞机:

现在缩小:

纹理本身是一个小的64x64正方形,轮廓分明

我的
Grid
类如下所示(Grid扩展了gdx.graphics.Mesh):


不确定这是否有帮助,但您的半宽与第一个不同

 -HALFWIDTH, **-HALFLENGTH**, -2f, Color.toFloatBits(255, 0, 0, 255), -HALFWIDTH, **HALFLENGTH**,
 HALFWIDTH, -HALFLENGTH, -2f, Color.toFloatBits(0, 255, 0, 255), HALFWIDTH, -HALFLENGTH,
 -HALFWIDTH, HALFLENGTH, -2f, Color.toFloatBits(0, 0, 255, 255), -HALFWIDTH, HALFLENGTH,
 HALFWIDTH, HALFLENGTH, -2f, Color.toFloatBits(0, 255, 255, 0), HALFWIDTH, HALFLENGTH

不是负数,就像在第一个坐标中一样。这可能会中断纹理计算。

不确定这是否有帮助,但您的半宽与第一个半宽不同

 -HALFWIDTH, **-HALFLENGTH**, -2f, Color.toFloatBits(255, 0, 0, 255), -HALFWIDTH, **HALFLENGTH**,
 HALFWIDTH, -HALFLENGTH, -2f, Color.toFloatBits(0, 255, 0, 255), HALFWIDTH, -HALFLENGTH,
 -HALFWIDTH, HALFLENGTH, -2f, Color.toFloatBits(0, 0, 255, 255), -HALFWIDTH, HALFLENGTH,
 HALFWIDTH, HALFLENGTH, -2f, Color.toFloatBits(0, 255, 255, 0), HALFWIDTH, HALFLENGTH

不是负数,就像在第一个坐标中一样。这可能会影响纹理计算。

我不是100%确定,但我强烈怀疑这是因为你在纹理上使用线性插值。放大和缩小纹理时,OpenGL必须选择如何以不同分辨率显示纹理。众所周知,使用线性插值会导致屏幕截图显示的效果(有时称为锯齿)。这是由于您使用的纹理中的细线(高信息密度)

尝试更改纹理模式以使用


这将预先计算纹理的缩放版本,并避免锯齿效果。让我知道这是否有效。

我不是100%确定,但我强烈怀疑这是因为你在纹理上使用线性插值。放大和缩小纹理时,OpenGL必须选择如何以不同分辨率显示纹理。众所周知,使用线性插值会导致屏幕截图显示的效果(有时称为锯齿)。这是由于您使用的纹理中的细线(高信息密度)

尝试更改纹理模式以使用


这将预先计算纹理的缩放版本,并避免锯齿效果。让我知道这是否有效。

另外,请参阅,以了解libGDX中可用的纹理模式。很抱歉没有响应。。刚刚建立了一台新的计算机,但尚未恢复此应用程序的工作。到时候我会告诉你一切的!另外,请参阅以了解libGDX中可用的纹理模式。很抱歉没有响应。。刚刚建立了一台新的计算机,但尚未恢复此应用程序的工作。到时候我会告诉你一切的!
this.texture.setFilter(TextureFilter.MipMap, TextureFilter.MipMap);