game/src/MarchingCubeChunkRenderer.cpp
Warwick 592a9febbd Rendering models based on noise values.
The last step is to do so using marching cubes.
2022-08-11 14:59:27 +01:00

26 lines
837 B
C++

#include "MarchingCubeChunkRenderer.h"
MarchingCubeChunkRenderer::MarchingCubeChunkRenderer(
std::vector<Chunk> &chunks, std::vector<Model *> models) {
this->chunks = &chunks;
this->models = models;
}
void MarchingCubeChunkRenderer::draw(ShaderLoader &shader) {
for (int i = 0; i < chunks->size(); i++) {
Chunk *chunk = &chunks->at(i);
TerrainInfo ti = chunk->getTerrainInfo();
// TerrainInfo ti = this->chunks[i].getTerrainInfo();
// Render Chunk
for (int x = ti.xRange[0]; x < ti.xRange[1]; x++) {
for (int y = ti.yRange[0]; y < ti.yRange[1]; y++) {
for (int z = ti.zRange[0]; z < ti.zRange[1]; z++) {
if (chunk->getNoise(x, y, z) > 0) {
models.at(0)->setPosition(glm::vec3(x, y, z));
models.at(0)->draw(shader);
}
}
}
}
}
}