Я пытаюсь создать систему мирового поколения.
У меня есть мировой класс, который содержит карту местности, которую можно увеличить во время программы.
Когда я делаю это в основном потоке, он работает нормально, но они немного замирают, когда он вычисляет вершину и все, поэтому я попытался использовать поток.
Итак, чтобы создать ландшафт, я делаю это:
std::thread newThread(&World::addTerrain, this, xIndex, zIndex, 64, 64);
newThread.detach();
(метод addTerrain)
void World::addTerrain(int x, int z, size_t len, size_t col) {
//allTerrain_[x].emplace(std::make_pair(z, Terrain(x*size_, z*size_, size_ / 2.0f, len, col, &shader_, &heightGenerator_)));
allTerrain_[x].emplace(std::make_pair(z, Terrain(x*size_, z*size_, size_/2.0f, len, col, &shader_, &waterShader_, &heightGenerator_)));
}
но когда я делаю это, новая местность добавляется на карту, но он выглядит пустым (ничего не рисуется).
Я не уверен, что использую правильный подход, поэтому, если вы можете мне помочь, это будет здорово!