Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.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 高度贴图上两个顶点之间的空间_Java_Opengl_Lwjgl - Fatal编程技术网

Java 高度贴图上两个顶点之间的空间

Java 高度贴图上两个顶点之间的空间,java,opengl,lwjgl,Java,Opengl,Lwjgl,我正在研究一个由柏林噪音、Java和LWJGL生成的无限世界。但我有一个问题,有点难以解释,所以我制作了一个视频:很明显,问题在于所有地面之间的黑色空间 我已经尝试过让所有的值都加倍,而不是浮动,但这并没有解决问题 下面是我正在使用的一段代码: float height2, height = (float)getHeight(x, y); height2 = (float) ((getHeight(x-1, y+1) + height) / 2); vertexhelper.addVertex

我正在研究一个由柏林噪音、Java和LWJGL生成的无限世界。但我有一个问题,有点难以解释,所以我制作了一个视频:很明显,问题在于所有地面之间的黑色空间

我已经尝试过让所有的值都加倍,而不是浮动,但这并没有解决问题

下面是我正在使用的一段代码:

float height2, height = (float)getHeight(x, y);

height2 = (float) ((getHeight(x-1, y+1) + height) / 2);
vertexhelper.addVertexColorAndTexture(x, height2, y+1, r, g, b, a, 0f, 1f);

height2 = (float) ((getHeight(x+1, y+1) + height) / 2);
vertexhelper.addVertexColorAndTexture(x+1, height2, y+1, r, g, b, a, 1f, 1f);

height2 = (float) ((getHeight(x+1, y-1) + height) / 2);
vertexhelper.addVertexColorAndTexture(x+1, height2, y, r, g, b, a, 1f, 0f);

height2 = (float) ((getHeight(x-1, y-1) + height) / 2);
vertexhelper.addVertexColorAndTexture(x, height2, y, r, g, b, a, 0f, 0f);
我用x->16和y->16在块初始化时循环这个
vertexhelper
是我创建的一个类,它将所有内容放在一个数组中


(我在这里使用浮点数,但那是在做了数学运算之后,所以这应该不是问题)

我必须在高度图上占据4个位置,而不是2个位置。所以不是

height2 = (float) ((getHeight(x-1, y-1) + height) / 2);
我不得不使用

height2 = (float) ((getHeight(x, y-1) + getHeight(x-1, y) + getHeight(x-1, y-1) + height) / 4);

这就解决了问题。

我必须在高度图上占据4个位置,而不是2个位置。所以不是

height2 = (float) ((getHeight(x-1, y-1) + height) / 2);
我不得不使用

height2 = (float) ((getHeight(x, y-1) + getHeight(x-1, y) + getHeight(x-1, y-1) + height) / 4);

这就解决了问题。

如果你将瓷砖涂成绿色,但不使用任何纹理,是否也会出现这种情况?@Matthias是的,我在没有纹理的情况下也有同样的问题。如果你将瓷砖涂成绿色,但不使用任何纹理,是否也会出现这种情况?@Matthias是的,我在没有纹理的情况下也有同样的问题。请记住,你可以接受自己的答案(不会为你赢得声誉),将其标记为已回答。@datenwolf我知道,但仅在2天后。感谢您记住您可以接受自己的答案(不会为您赢得声誉),并将其标记为已回答。@datenwolf我知道,但仅在2天后。谢谢