Backlight setting

This commit is contained in:
MihailRis
2023-11-23 14:10:08 +03:00
parent f45fcffaf8
commit 568c612970
9 changed files with 44 additions and 9 deletions
+5 -3
View File
@@ -21,13 +21,15 @@ using glm::vec4;
BlocksRenderer::BlocksRenderer(size_t capacity,
const Content* content,
const ContentGfxCache* cache)
const ContentGfxCache* cache,
const EngineSettings& settings)
: content(content),
vertexOffset(0),
indexOffset(0),
indexSize(0),
capacity(capacity),
cache(cache) {
cache(cache),
settings(settings) {
vertexBuffer = new float[capacity];
indexBuffer = new int[capacity];
voxelsBuffer = new VoxelsVolume(CHUNK_W + 2, CHUNK_H, CHUNK_D + 2);
@@ -353,7 +355,7 @@ void BlocksRenderer::render(const voxel* voxels, int atlas_size) {
Mesh* BlocksRenderer::render(const Chunk* chunk, int atlas_size, const ChunksStorage* chunks) {
this->chunk = chunk;
voxelsBuffer->setPosition(chunk->x * CHUNK_W - 1, 0, chunk->z * CHUNK_D - 1);
chunks->getVoxels(voxelsBuffer, true);
chunks->getVoxels(voxelsBuffer, settings.graphics.backlight);
overflow = false;
vertexOffset = 0;
indexOffset = indexSize = 0;
+3 -1
View File
@@ -6,6 +6,7 @@
#include "UVRegion.h"
#include "../typedefs.h"
#include "../voxels/voxel.h"
#include "../settings.h"
class Content;
class Mesh;
@@ -31,6 +32,7 @@ class BlocksRenderer {
const Block* const* blockDefsCache;
const ContentGfxCache* const cache;
const EngineSettings& settings;
void vertex(const glm::vec3& coord, float u, float v, const glm::vec4& light);
void index(int a, int b, int c, int d, int e, int f);
@@ -70,7 +72,7 @@ class BlocksRenderer {
glm::vec4 pickSoftLight(int x, int y, int z, const glm::ivec3& right, const glm::ivec3& up) const;
void render(const voxel* voxels, int atlas_size);
public:
BlocksRenderer(size_t capacity, const Content* content, const ContentGfxCache* cache);
BlocksRenderer(size_t capacity, const Content* content, const ContentGfxCache* cache, const EngineSettings& settings);
virtual ~BlocksRenderer();
Mesh* render(const Chunk* chunk, int atlas_size, const ChunksStorage* chunks);
+2 -2
View File
@@ -11,9 +11,9 @@
using glm::ivec2;
using std::shared_ptr;
ChunksRenderer::ChunksRenderer(Level* level, const ContentGfxCache* cache) : level(level) {
ChunksRenderer::ChunksRenderer(Level* level, const ContentGfxCache* cache, const EngineSettings& settings) : level(level) {
const int MAX_FULL_CUBES = 3000;
renderer = new BlocksRenderer(9 * 6 * 6 * MAX_FULL_CUBES, level->content, cache);
renderer = new BlocksRenderer(9 * 6 * 6 * MAX_FULL_CUBES, level->content, cache, settings);
}
ChunksRenderer::~ChunksRenderer() {
+4 -1
View File
@@ -6,6 +6,7 @@
#include <glm/glm.hpp>
#include "../voxels/Block.h"
#include "../voxels/ChunksStorage.h"
#include "../settings.h"
class Mesh;
class Chunk;
@@ -18,7 +19,9 @@ class ChunksRenderer {
Level* level;
std::unordered_map<glm::ivec2, std::shared_ptr<Mesh>> meshes;
public:
ChunksRenderer(Level* level, const ContentGfxCache* cache);
ChunksRenderer(Level* level,
const ContentGfxCache* cache,
const EngineSettings& settings);
virtual ~ChunksRenderer();
std::shared_ptr<Mesh> render(Chunk* chunk);