Working on encoding

This commit is contained in:
Vladislav Khorev committed 2026-03-06 17:51:46 +03:00
1 parent a8c76dee3c
commit c35e093cc5
23 files changed
+41 -41

No files matched your search

+8 -8
View File
@@ -1,4 +1,4 @@
#include "Perlin.h"
#include "Perlin.h"
#include <cmath>
#include <numeric>
#include <random>
@@ -9,19 +9,19 @@ namespace ZL {
PerlinNoise::PerlinNoise() {
p.resize(256);
std::iota(p.begin(), p.end(), 0);
// Ïåðåìåøèâàåì äëÿ ñëó÷àéíîñòè (ìîæíî çàäàòü seed)
// Перемешиваем для случайности (можно задать seed)
std::default_random_engine engine(77777);
std::shuffle(p.begin(), p.end(), engine);
p.insert(p.end(), p.begin(), p.end()); // Äóáëèðóåì äëÿ ïåðåïîëíåíèÿ
p.insert(p.end(), p.begin(), p.end()); // Дублируем для переполнения
}
PerlinNoise::PerlinNoise(uint64_t seed) {
p.resize(256);
std::iota(p.begin(), p.end(), 0);
// Ïåðåìåøèâàåì äëÿ ñëó÷àéíîñòè (èñïîëüçóåì ïåðåäàííûé seed)
// Перемешиваем для случайности (используем переданный seed)
std::default_random_engine engine(static_cast<unsigned int>(seed));
std::shuffle(p.begin(), p.end(), engine);
p.insert(p.end(), p.begin(), p.end()); // Äóáëèðóåì äëÿ ïåðåïîëíåíèÿ
p.insert(p.end(), p.begin(), p.end()); // Дублируем для переполнения
}
float PerlinNoise::fade(float t) { return t * t * t * (t * (t * 6 - 15) + 10); }
@@ -58,13 +58,13 @@ namespace ZL {
}
float PerlinNoise::getSurfaceHeight(Eigen::Vector3f pos, float noiseCoeff) {
// ×àñòîòà øóìà (÷åì áîëüøå, òåì áîëüøå "õîëìîâ")
// Частота шума (чем больше, тем больше "холмов")
float frequency = 7.0f;
// Ïîëó÷àåì çíà÷åíèå øóìà (îáû÷íî îò -1 äî 1)
// Получаем значение шума (обычно от -1 до 1)
float noiseValue = noise(pos(0) * frequency, pos(1) * frequency, pos(2) * frequency);
// Ìàñøòàáèðóåì: õîòèì îòêëîíåíèå îò 1.0 äî 1.1 (ïðèìåðíî)
// Масштабируем: хотим отклонение от 1.0 до 1.1 (примерно)
float height = 1.0f + (noiseValue * noiseCoeff);
return height;
+1 -1
View File
@@ -1,4 +1,4 @@
#pragma once
#pragma once
#include <vector>
#include <cstdint>
+5 -5
View File
@@ -1,4 +1,4 @@
#include "TaskManager.h"
#include "TaskManager.h"
namespace ZL
@@ -27,8 +27,8 @@ namespace ZL
TaskManager::~TaskManager() {
#ifndef EMSCRIPTEN
workGuard.reset(); // Ðàçðåøàåì ioContext.run() çàâåðøèòüñÿ, êîãäà çàäà÷ íå îñòàíåòñÿ
ioContext.stop(); // Îïöèîíàëüíî: íåìåäëåííàÿ îñòàíîâêà
workGuard.reset(); // Разрешаем ioContext.run() завершиться, когда задач не останется
ioContext.stop(); // Опционально: немедленная остановка
for (auto& t : workers) {
if (t.joinable()) t.join();
}
@@ -51,7 +51,7 @@ namespace ZL
mainThreadTasks.pop();
}
#else
// Èçâëåêàåì òîëüêî îäíó çàäà÷ó, ÷òîáû íå áëîêèðîâàòü update íàäîëãî
// Извлекаем только одну задачу, чтобы не блокировать update надолго
{
std::lock_guard<std::mutex> lock(mainThreadMutex);
if (!mainThreadTasks.empty()) {
@@ -62,7 +62,7 @@ namespace ZL
#endif
if (task) {
task(); // Çäåñü âûïîëíÿåòñÿ RefreshVBO èëè çàãðóçêà òåêñòóðû
task(); // Здесь выполняется RefreshVBO или загрузка текстуры
}
}
}
+3 -3
View File
@@ -1,4 +1,4 @@
#pragma once
#pragma once
#ifndef EMSCRIPTEN
#include <boost/asio.hpp>
@@ -23,7 +23,7 @@ namespace ZL {
public:
TaskManager(size_t threadCount = 2);
// Ìåòîä äëÿ äîáàâëåíèÿ ôîíîâîé çàäà÷è
// ћетод дл¤ добавлени¤ фоновой задачи
void EnqueueBackgroundTask(std::function<void()> task);
// Graceful shutdown
@@ -49,7 +49,7 @@ namespace ZL {
public:
void EnqueueMainThreadTask(std::function<void()> task);
// Âûïîëíåíèå çàäà÷ ïî îäíîé (èëè ïà÷êîé) çà êàäð
// ¬ыполнение задач по одной (или пачкой) за кадр
void processMainThreadTasks();
};
+1 -1
View File
@@ -1,4 +1,4 @@
#pragma once
#pragma once
#include <string>
#include <vector>