gpt4 book ai didi

java - 如何使用 for 循环生成简单地形 [voxel]

转载 作者:行者123 更新时间:2023-11-30 04:20:46 26 4
gpt4 key购买 nike

我正在尝试为我的体素游戏生成 10*10*10 block block ,渲染 1 block 完全没问题,但是当我使用 for 循环时,它会变得困惑,以下正确吗?:

    final int chunk = 10;
final float B_SIZE = 1.0f;

for (int x = 0; x < chunk; x++) {
for (int y = 0; y < chunk; y++) {
for (int z = 0; z < chunk; z++) {
block.render();
GL11.glTranslatef(0.0f, 0.0f, B_SIZE);
}
GL11.glTranslatef(0.0f, B_SIZE, -chunk * B_SIZE);
}
GL11.glTranslatef(B_SIZE, -chunk * B_SIZE, 0.0f);
}

附注:block.render();是一个我渲染 1f*1f*1f 立方体的类,它也有自己的 vector3f,这就是我可以翻译它的原因。

最佳答案

我会从更简单的版本开始。而不是调整每个 block 的矩阵。将当前矩阵压入堆栈。将其翻译为绘制单个 block 。然后,弹出将其重置为原始状态。

final int chunk = 10;
final float B_SIZE = 1.0f;

for (int x = 0; x < chunk; x++) {
for (int y = 0; y < chunk; y++) {
for (int z = 0; z < chunk; z++) {
GL11.glPushMatrix();
GL11.glTranslatef(x*B_SIZE, y*B_SIZE, z*B_SIZE);
block.render();
GL11.glPopMatrix();
}
}
}

关于java - 如何使用 for 循环生成简单地形 [voxel],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17126903/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com