mirror of
https://github.com/MihailRis/voxelcore.git
synced 2026-10-04 18:41:51 +00:00
feat: naive texture-faces support for blockwraps implementation
This commit is contained in:
parent
c6c23c3c53
commit
561fb0fb58
4 changed files with 63 additions and 55 deletions
|
|
@ -83,50 +83,57 @@ inline glm::vec4 do_tint(float value) {
|
|||
}
|
||||
|
||||
void MainBatch::cube(
|
||||
const glm::vec3 &coord,
|
||||
const glm::vec3 &size,
|
||||
const UVRegion(&texfaces)[6],
|
||||
const glm::vec4 &tint,
|
||||
bool shading
|
||||
const glm::vec3& coord,
|
||||
const glm::vec3& size,
|
||||
const UVRegion(&texfaces)[6],
|
||||
const glm::vec4& tint,
|
||||
bool shading,
|
||||
uint8_t cullingBits
|
||||
) {
|
||||
const glm::vec3 X(1.0f, 0.0f, 0.0f);
|
||||
const glm::vec3 Y(0.0f, 1.0f, 0.0f);
|
||||
const glm::vec3 Z(0.0f, 0.0f, 1.0f);
|
||||
|
||||
if (cullingBits & 0x20)
|
||||
quad(
|
||||
coord + Z * size.z * 0.5f,
|
||||
X, Y, Z, glm::vec2(size.x, size.y),
|
||||
(shading ? do_tint(0.8) * tint : tint),
|
||||
glm::vec3(1.0f), texfaces[5]
|
||||
);
|
||||
if (cullingBits & 0x10)
|
||||
quad(
|
||||
coord - Z * size.z * 0.5f,
|
||||
-X, Y, -Z, glm::vec2(size.x, size.y),
|
||||
(shading ? do_tint(0.9f) * tint : tint),
|
||||
glm::vec3(1.0f), texfaces[4]
|
||||
);
|
||||
if (cullingBits & 0x8)
|
||||
quad(
|
||||
coord + Y * size.y * 0.5f,
|
||||
-X, Z, Y, glm::vec2(size.x, size.z),
|
||||
(shading ? do_tint(1.0f) * tint : tint),
|
||||
glm::vec3(1.0f), texfaces[3]
|
||||
);
|
||||
if (cullingBits & 0x4)
|
||||
quad(
|
||||
coord - Y * size.y * 0.5f,
|
||||
X, Z, -Y, glm::vec2(size.x, size.z),
|
||||
(shading ? do_tint(0.7f) * tint : tint),
|
||||
glm::vec3(1.0f), texfaces[2]
|
||||
);
|
||||
if (cullingBits & 0x2)
|
||||
quad(
|
||||
coord + X * size.x * 0.5f,
|
||||
-Z, Y, X, glm::vec2(size.z, size.y),
|
||||
(shading ? do_tint(0.8f) * tint : tint),
|
||||
glm::vec3(1.0f), texfaces[1]
|
||||
);
|
||||
if (cullingBits & 0x1)
|
||||
quad(
|
||||
coord - X * size.x * 0.5f,
|
||||
Z, Y, -X, glm::vec2(size.z, size.y),
|
||||
(shading ? do_tint(0.9f) * tint : tint),
|
||||
glm::vec3(1.0f), texfaces[1]
|
||||
glm::vec3(1.0f), texfaces[0]
|
||||
);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue