From 680d9d5b7a61ac955fcec8a5622faa5cf4165c11 Mon Sep 17 00:00:00 2001 From: Mel Date: Sun, 9 Jul 2023 20:51:30 +0200 Subject: Ambient occlusion (without corners) --- src/World/BlockSide.hpp | 46 +++++++++++++++++++++------------------------- 1 file changed, 21 insertions(+), 25 deletions(-) (limited to 'src/World/BlockSide.hpp') diff --git a/src/World/BlockSide.hpp b/src/World/BlockSide.hpp index 69df159..831982a 100644 --- a/src/World/BlockSide.hpp +++ b/src/World/BlockSide.hpp @@ -16,8 +16,8 @@ public: Top, Bottom, - Left, Right, + Left, }; BlockSide() = default; @@ -26,31 +26,27 @@ public: operator Value() const { return m_side; } std::array, 4> face() { + // Winding order: (0, 1, 2) (2, 3, 0) + // Note: OpenGL Coordinate system has a flipped z axis. switch (m_side) { - case Front: - return {{ - {0.0f, 0.0f, 1.0f}, {1.0f, 0.0f, 1.0f}, {1.0f, 1.0f, 1.0f}, {0.0f, 1.0f, 1.0f}, - }}; - case Back: - return {{ - {1.0f, 0.0f, 0.0f}, {0.0f, 0.0f, 0.0f}, {0.0f, 1.0f, 0.0f}, {1.0f, 1.0f, 0.0f}, - }}; - case Top: - return {{ - {0.0f, 1.0f, 1.0f}, {1.0f, 1.0f, 1.0f}, {1.0f, 1.0f, 0.0f}, {0.0f, 1.0f, 0.0f}, - }}; - case Bottom: - return {{ - {0.0f, 0.0f, 0.0f}, {1.0f, 0.0f, 0.0f}, {1.0f, 0.0f, 1.0f}, {0.0f, 0.0f, 1.0f}, - }}; - case Left: - return {{ - {0.0f, 0.0f, 0.0f},{0.0f, 0.0f, 1.0f},{0.0f, 1.0f, 1.0f}, {0.0f, 1.0f, 0.0f}, - }}; - case Right: - return {{ - {1.0f, 0.0f, 1.0f}, {1.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, - }}; + case Front: return {{ + {0, 1, 1}, {0, 0, 1}, {1, 0, 1}, {1, 1, 1} + }}; + case Back: return {{ + {0, 1, 0}, {1, 1, 0}, {1, 0, 0}, {0, 0, 0} + }}; + case Top: return {{ + {0, 1, 1}, {1, 1, 1}, {1, 1, 0}, {0, 1, 0} + }}; + case Bottom: return {{ + {0, 0, 1}, {0, 0, 0}, {1, 0, 0}, {1, 0, 1} + }}; + case Right: return {{ + {1, 1, 0}, {1, 1, 1}, {1, 0, 1}, {1, 0, 0} + }}; + case Left: return {{ + {0, 1, 0}, {0, 0, 0}, {0, 0, 1}, {0, 1, 1} + }}; } } -- cgit 1.4.1