Working on encoding
This commit is contained in:
parent
a8c76dee3c
commit
c35e093cc5
@ -1,4 +1,4 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
|
||||||
#include "render/Renderer.h"
|
#include "render/Renderer.h"
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
#ifdef AUDIO
|
#ifdef AUDIO
|
||||||
|
|
||||||
#include "AudioPlayerAsync.h"
|
#include "AudioPlayerAsync.h"
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#ifdef AUDIO
|
#ifdef AUDIO
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
#include "BoneAnimatedModel.h"
|
#include "BoneAnimatedModel.h"
|
||||||
#include <regex>
|
#include <regex>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
#include "render/Renderer.h"
|
#include "render/Renderer.h"
|
||||||
#include <unordered_map>
|
#include <unordered_map>
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
#include "Environment.h"
|
#include "Environment.h"
|
||||||
|
|
||||||
#include "utils/Utils.h"
|
#include "utils/Utils.h"
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
#ifdef __linux__
|
#ifdef __linux__
|
||||||
#include <SDL2/SDL.h>
|
#include <SDL2/SDL.h>
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
#include "MenuManager.h"
|
#include "MenuManager.h"
|
||||||
|
|
||||||
|
|
||||||
namespace ZL {
|
namespace ZL {
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
#include "render/Renderer.h"
|
#include "render/Renderer.h"
|
||||||
#include "Environment.h"
|
#include "Environment.h"
|
||||||
#include "render/TextureManager.h"
|
#include "render/TextureManager.h"
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
#include "TextModel.h"
|
#include "TextModel.h"
|
||||||
#include <regex>
|
#include <regex>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "render/Renderer.h"
|
#include "render/Renderer.h"
|
||||||
#include <unordered_map>
|
#include <unordered_map>
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
#include "FrameBuffer.h"
|
#include "FrameBuffer.h"
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include "Environment.h"
|
#include "Environment.h"
|
||||||
|
|
||||||
@ -15,10 +15,10 @@ namespace ZL {
|
|||||||
|
|
||||||
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
|
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
|
||||||
|
|
||||||
// Настраиваем фильтрацию
|
// Настраиваем фильтрацию
|
||||||
if (useMipmaps) {
|
if (useMipmaps) {
|
||||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
|
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
|
||||||
// Сразу генерируем пустые уровни, чтобы текстура считалась "полной"
|
// Сразу генерируем пустые уровни, чтобы текстура считалась "полной"
|
||||||
glGenerateMipmap(GL_TEXTURE_2D);
|
glGenerateMipmap(GL_TEXTURE_2D);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -49,13 +49,13 @@ namespace ZL {
|
|||||||
|
|
||||||
void FrameBuffer::Bind() {
|
void FrameBuffer::Bind() {
|
||||||
glBindFramebuffer(GL_FRAMEBUFFER, fbo);
|
glBindFramebuffer(GL_FRAMEBUFFER, fbo);
|
||||||
glViewport(0, 0, width, height); // Важно: устанавливаем вьюпорт под размер текстуры
|
glViewport(0, 0, width, height); // Важно: устанавливаем вьюпорт под размер текстуры
|
||||||
}
|
}
|
||||||
|
|
||||||
void FrameBuffer::Unbind() {
|
void FrameBuffer::Unbind() {
|
||||||
glBindFramebuffer(GL_FRAMEBUFFER, 0);
|
glBindFramebuffer(GL_FRAMEBUFFER, 0);
|
||||||
// Здесь желательно возвращать вьюпорт к размерам экрана,
|
// Здесь желательно возвращать вьюпорт к размерам экрана,
|
||||||
// например, через Environment::width/height
|
// например, через Environment::width/height
|
||||||
glViewport(0, 0, Environment::width, Environment::height);
|
glViewport(0, 0, Environment::width, Environment::height);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
#include "render/OpenGlExtensions.h"
|
#include "render/OpenGlExtensions.h"
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
#include "OpenGlExtensions.h"
|
#include "OpenGlExtensions.h"
|
||||||
|
|
||||||
#include "utils/Utils.h"
|
#include "utils/Utils.h"
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
|
||||||
#include "SDL.h"
|
#include "SDL.h"
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
#include "render/Renderer.h"
|
#include "render/Renderer.h"
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
|
|
||||||
namespace ZL {
|
namespace ZL {
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "render/OpenGlExtensions.h"
|
#include "render/OpenGlExtensions.h"
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
#include "ShaderManager.h"
|
#include "ShaderManager.h"
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <SDL.h>
|
#include <SDL.h>
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
#include "Perlin.h"
|
#include "Perlin.h"
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
#include <numeric>
|
#include <numeric>
|
||||||
#include <random>
|
#include <random>
|
||||||
@ -9,19 +9,19 @@ namespace ZL {
|
|||||||
PerlinNoise::PerlinNoise() {
|
PerlinNoise::PerlinNoise() {
|
||||||
p.resize(256);
|
p.resize(256);
|
||||||
std::iota(p.begin(), p.end(), 0);
|
std::iota(p.begin(), p.end(), 0);
|
||||||
// Перемешиваем для случайности (можно задать seed)
|
// Перемешиваем для случайности (можно задать seed)
|
||||||
std::default_random_engine engine(77777);
|
std::default_random_engine engine(77777);
|
||||||
std::shuffle(p.begin(), p.end(), engine);
|
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) {
|
PerlinNoise::PerlinNoise(uint64_t seed) {
|
||||||
p.resize(256);
|
p.resize(256);
|
||||||
std::iota(p.begin(), p.end(), 0);
|
std::iota(p.begin(), p.end(), 0);
|
||||||
// Перемешиваем для случайности (используем переданный seed)
|
// Перемешиваем для случайности (используем переданный seed)
|
||||||
std::default_random_engine engine(static_cast<unsigned int>(seed));
|
std::default_random_engine engine(static_cast<unsigned int>(seed));
|
||||||
std::shuffle(p.begin(), p.end(), engine);
|
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); }
|
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 PerlinNoise::getSurfaceHeight(Eigen::Vector3f pos, float noiseCoeff) {
|
||||||
// Частота шума (чем больше, тем больше "холмов")
|
// Частота шума (чем больше, тем больше "холмов")
|
||||||
float frequency = 7.0f;
|
float frequency = 7.0f;
|
||||||
|
|
||||||
// Получаем значение шума (обычно от -1 до 1)
|
// Получаем значение шума (обычно от -1 до 1)
|
||||||
float noiseValue = noise(pos(0) * frequency, pos(1) * frequency, pos(2) * frequency);
|
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);
|
float height = 1.0f + (noiseValue * noiseCoeff);
|
||||||
|
|
||||||
return height;
|
return height;
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
#include "TaskManager.h"
|
#include "TaskManager.h"
|
||||||
|
|
||||||
|
|
||||||
namespace ZL
|
namespace ZL
|
||||||
@ -27,8 +27,8 @@ namespace ZL
|
|||||||
|
|
||||||
TaskManager::~TaskManager() {
|
TaskManager::~TaskManager() {
|
||||||
#ifndef EMSCRIPTEN
|
#ifndef EMSCRIPTEN
|
||||||
workGuard.reset(); // Разрешаем ioContext.run() завершиться, когда задач не останется
|
workGuard.reset(); // Разрешаем ioContext.run() завершиться, когда задач не останется
|
||||||
ioContext.stop(); // Опционально: немедленная остановка
|
ioContext.stop(); // Опционально: немедленная остановка
|
||||||
for (auto& t : workers) {
|
for (auto& t : workers) {
|
||||||
if (t.joinable()) t.join();
|
if (t.joinable()) t.join();
|
||||||
}
|
}
|
||||||
@ -51,7 +51,7 @@ namespace ZL
|
|||||||
mainThreadTasks.pop();
|
mainThreadTasks.pop();
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
// Извлекаем только одну задачу, чтобы не блокировать update надолго
|
// Извлекаем только одну задачу, чтобы не блокировать update надолго
|
||||||
{
|
{
|
||||||
std::lock_guard<std::mutex> lock(mainThreadMutex);
|
std::lock_guard<std::mutex> lock(mainThreadMutex);
|
||||||
if (!mainThreadTasks.empty()) {
|
if (!mainThreadTasks.empty()) {
|
||||||
@ -62,7 +62,7 @@ namespace ZL
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (task) {
|
if (task) {
|
||||||
task(); // Здесь выполняется RefreshVBO или загрузка текстуры
|
task(); // Здесь выполняется RefreshVBO или загрузка текстуры
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1,4 +1,4 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#ifndef EMSCRIPTEN
|
#ifndef EMSCRIPTEN
|
||||||
#include <boost/asio.hpp>
|
#include <boost/asio.hpp>
|
||||||
@ -23,7 +23,7 @@ namespace ZL {
|
|||||||
public:
|
public:
|
||||||
TaskManager(size_t threadCount = 2);
|
TaskManager(size_t threadCount = 2);
|
||||||
|
|
||||||
// Метод для добавления фоновой задачи
|
// ћетод дл¤ добавлени¤ фоновой задачи
|
||||||
void EnqueueBackgroundTask(std::function<void()> task);
|
void EnqueueBackgroundTask(std::function<void()> task);
|
||||||
|
|
||||||
// Graceful shutdown
|
// Graceful shutdown
|
||||||
@ -49,7 +49,7 @@ namespace ZL {
|
|||||||
public:
|
public:
|
||||||
void EnqueueMainThreadTask(std::function<void()> task);
|
void EnqueueMainThreadTask(std::function<void()> task);
|
||||||
|
|
||||||
// Выполнение задач по одной (или пачкой) за кадр
|
// ¬ыполнение задач по одной (или пачкой) за кадр
|
||||||
void processMainThreadTasks();
|
void processMainThreadTasks();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user