update X sprites rendering randomization

This commit is contained in:
MihailRis 2024-10-24 14:03:05 +03:00
parent 4ea4224452
commit 9f70e14a13
2 changed files with 5 additions and 1 deletions

View File

@ -227,7 +227,8 @@ void BlocksRenderer::blockXSprite(
pickSoftLight({x + 1, y + 1, z}, {1, 0, 0}, {0, 1, 0}),
pickSoftLight({x, y + 1, z}, {1, 0, 0}, {0, 1, 0})
};
int rand = ((x * z + y) ^ (z * y - x)) * (z + y);
randomizer.setSeed((x * 52321) ^ (z * 389) ^ y);
short rand = randomizer.rand32();
float xs = ((float)(char)rand / 512) * spread;
float zs = ((float)(char)(rand >> 8) / 512) * spread;

View File

@ -11,6 +11,7 @@
#include "voxels/Chunk.hpp"
#include "voxels/VoxelsVolume.hpp"
#include "graphics/core/MeshData.hpp"
#include "maths/util.hpp"
class Content;
class Mesh;
@ -41,6 +42,8 @@ class BlocksRenderer {
const Block* const* blockDefsCache;
const ContentGfxCache* const cache;
const EngineSettings* settings;
util::PseudoRandom randomizer;
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);