|
@@ -1,5 +1,4 @@
|
|
|
#include "client/rendering/renderer/WorldRenderer.h"
|
|
|
-#include <iostream>
|
|
|
|
|
|
WorldRenderer::WorldRenderer(const World& world) : world(world), texture("resources/textures.png"),
|
|
|
normalTexture("resources/textures.png") {
|
|
@@ -31,59 +30,45 @@ bool WorldRenderer::isAir(uint x, uint y, uint z) const {
|
|
|
}
|
|
|
|
|
|
void WorldRenderer::addCube(float x, float y, float z, bool bottom, bool top, bool left, bool right, bool front, bool back) {
|
|
|
- const float ERROR = 1.0f / 1024.0f;
|
|
|
- if(bottom) {
|
|
|
- mesh.add({x - ERROR, y - ERROR, z - ERROR, 0.125f, 0.0f, 0, -1, 0});
|
|
|
- mesh.add({x + 1 + ERROR, y - ERROR, z - ERROR, 0.1875f, 0.0f, 0, -1, 0});
|
|
|
- mesh.add({x - ERROR, y - ERROR, z + 1 + ERROR, 0.125f, 0.0625f, 0, -1, 0});
|
|
|
+ Vector3 v000(x, y, z);
|
|
|
+ Vector3 v001(x, y, z + 1);
|
|
|
+ Vector3 v010(x, y + 1, z);
|
|
|
+ Vector3 v011(x, y + 1, z + 1);
|
|
|
+ Vector3 v100(x + 1, y, z);
|
|
|
+ Vector3 v101(x + 1, y, z + 1);
|
|
|
+ Vector3 v110(x + 1, y + 1, z);
|
|
|
+ Vector3 v111(x + 1, y + 1, z + 1);
|
|
|
+
|
|
|
+ Vector2 t1(0.1875f, 0.0f);
|
|
|
+ Vector2 t2(0.25f, 0.0f);
|
|
|
+ Vector2 t3(0.25f, 0.0625f);
|
|
|
+ Vector2 t4(0.1875f, 0.0625f);
|
|
|
|
|
|
- mesh.add({x + 1 + ERROR, y - ERROR, z - ERROR, 0.1875f, 0.0f, 0, -1, 0});
|
|
|
- mesh.add({x + 1 + ERROR, y - ERROR, z + 1 + ERROR, 0.1875f, 0.0625f, 0, -1, 0});
|
|
|
- mesh.add({x - ERROR, y - ERROR, z + 1 + ERROR, 0.125f, 0.0625f, 0, -1, 0});
|
|
|
+ if(bottom) {
|
|
|
+ Vector2 tb(0.125f, 0.0625f);
|
|
|
+ mesh.add(Triangle(Vertex(v000, Vector2(0.125f, 0.0f)), Vertex(v100, t1), Vertex(v001, tb)));
|
|
|
+ mesh.add(Triangle(Vertex(v100, t1), Vertex(v101, t4), Vertex(v001, tb)));
|
|
|
}
|
|
|
if(top) {
|
|
|
- mesh.add({x - ERROR, y + 1 + ERROR, z - ERROR, 0.25f, 0.0f, 0, 1, 0});
|
|
|
- mesh.add({x - ERROR, y + 1 + ERROR, z + 1 + ERROR, 0.25f, 0.0625f, 0, 1, 0});
|
|
|
- mesh.add({x + 1 + ERROR, y + 1 + ERROR, z - ERROR, 0.3125f, 0.0f, 0, 1, 0});
|
|
|
-
|
|
|
- mesh.add({x + 1 + ERROR, y + 1 + ERROR, z - ERROR, 0.3125f, 0.0f, 0, 1, 0});
|
|
|
- mesh.add({x - ERROR, y + 1 + ERROR, z + 1 + ERROR, 0.25f, 0.0625f, 0, 1, 0});
|
|
|
- mesh.add({x + 1 + ERROR, y + 1 + ERROR, z + 1 + ERROR, 0.3125f, 0.0625f, 0, 1, 0});
|
|
|
+ Vector2 tt(0.3125f, 0.0f);
|
|
|
+ mesh.add(Triangle(Vertex(v010, t2), Vertex(v011, t3), Vertex(v110, tt)));
|
|
|
+ mesh.add(Triangle(Vertex(v110, tt), Vertex(v011, t3), Vertex(v111, Vector2(0.3125f, 0.0625f))));
|
|
|
}
|
|
|
if(left) {
|
|
|
- mesh.add({x - ERROR, y - ERROR, z - ERROR, 0.1875f, 0.0625f, -1, 0, 0});
|
|
|
- mesh.add({x - ERROR, y - ERROR, z + 1 + ERROR, 0.25f, 0.0625f, -1, 0, 0});
|
|
|
- mesh.add({x - ERROR, y + 1 + ERROR, z - ERROR, 0.1875f, 0.0f, -1, 0, 0});
|
|
|
-
|
|
|
- mesh.add({x - ERROR, y - ERROR, z + 1 + ERROR, 0.25f, 0.0625f, -1, 0, 0});
|
|
|
- mesh.add({x - ERROR, y + 1 + ERROR, z + 1 + ERROR, 0.25f, 0.0f, -1, 0, 0});
|
|
|
- mesh.add({x - ERROR, y + 1 + ERROR, z - ERROR, 0.1875f, 0.0f, -1, 0, 0});
|
|
|
+ mesh.add(Triangle(Vertex(v000, t4), Vertex(v001, t3), Vertex(v010, t1)));
|
|
|
+ mesh.add(Triangle(Vertex(v001, t3), Vertex(v011, t2), Vertex(v010, t1)));
|
|
|
}
|
|
|
if(right) {
|
|
|
- mesh.add({x + 1 + ERROR, y - ERROR, z - ERROR, 0.25f, 0.0625f, 1, 0, 0});
|
|
|
- mesh.add({x + 1 + ERROR, y + 1 + ERROR, z - ERROR, 0.25f, 0.0f, 1, 0, 0});
|
|
|
- mesh.add({x + 1 + ERROR, y - ERROR, z + 1 + ERROR, 0.1875f, 0.0625f, 1, 0, 0});
|
|
|
-
|
|
|
- mesh.add({x + 1 + ERROR, y - ERROR, z + 1 + ERROR, 0.1875f, 0.0625f, 1, 0, 0});
|
|
|
- mesh.add({x + 1 + ERROR, y + 1 + ERROR, z - ERROR, 0.25f, 0.0f, 1, 0, 0});
|
|
|
- mesh.add({x + 1 + ERROR, y + 1 + ERROR, z + 1 + ERROR, 0.1875f, 0.0f, 1, 0, 0});
|
|
|
+ mesh.add(Triangle(Vertex(v100, t3), Vertex(v110, t2), Vertex(v101, t4)));
|
|
|
+ mesh.add(Triangle(Vertex(v101, t4), Vertex(v110, t2), Vertex(v111, t1)));
|
|
|
}
|
|
|
if(front) {
|
|
|
- mesh.add({x - ERROR, y - ERROR, z + 1 + ERROR, 0.1875f, 0.0625f, 0, 0, 1});
|
|
|
- mesh.add({x + 1 + ERROR, y - ERROR, z + 1 + ERROR, 0.25f, 0.0625f, 0, 0, 1});
|
|
|
- mesh.add({x - ERROR, y + 1 + ERROR, z + 1 + ERROR, 0.1875f, 0.0f, 0, 0, 1});
|
|
|
-
|
|
|
- mesh.add({x + 1 + ERROR, y + 1 + ERROR, z + 1 + ERROR, 0.25f, 0.0f, 0, 0, 1});
|
|
|
- mesh.add({x - ERROR, y + 1 + ERROR, z + 1 + ERROR, 0.1875f, 0.0f, 0, 0, 1});
|
|
|
- mesh.add({x + 1 + ERROR, y - ERROR, z + 1 + ERROR, 0.25f, 0.0625f, 0, 0, 1});
|
|
|
+ mesh.add(Triangle(Vertex(v001, t4), Vertex(v101, t3), Vertex(v011, t1)));
|
|
|
+ mesh.add(Triangle(Vertex(v111, t2), Vertex(v011, t1), Vertex(v101, t3)));
|
|
|
}
|
|
|
if(back) {
|
|
|
- mesh.add({x - ERROR, y - ERROR, z - ERROR, 0.25f, 0.0625f, 0, 0, -1});
|
|
|
- mesh.add({x - ERROR, y + 1 + ERROR, z - ERROR, 0.25f, 0.0f, 0, 0, -1});
|
|
|
- mesh.add({x + 1 + ERROR, y - ERROR, z - ERROR, 0.1875f, 0.0625f, 0, 0, -1});
|
|
|
+ mesh.add(Triangle(Vertex(v000, t3), Vertex(v010, t2), Vertex(v100, t4)));
|
|
|
|
|
|
- mesh.add({x + 1 + ERROR, y + 1 + ERROR, z - ERROR, 0.1875f, 0.0f, 0, 0, -1});
|
|
|
- mesh.add({x + 1 + ERROR, y - ERROR, z - ERROR, 0.1875f, 0.0625f, 0, 0, -1});
|
|
|
- mesh.add({x - ERROR, y + 1 + ERROR, z - ERROR, 0.25f, 0.0f, 0, 0, -1});
|
|
|
+ mesh.add(Triangle(Vertex(v110, t1), Vertex(v100, t4), Vertex(v010, t2)));
|
|
|
}
|
|
|
}
|