add custom-models in hand support

This commit is contained in:
MihailRis
2024-11-04 18:02:42 +03:00
parent 5ed37d8604
commit 5a431ed898
6 changed files with 180 additions and 7 deletions
+53
View File
@@ -80,3 +80,56 @@ glm::vec4 MainBatch::sampleLight(
glm::max(Lightmap::extract(light, 3), minIntensity) / 15.0f
);
}
inline glm::vec4 do_tint(float value) {
return glm::vec4(value, value, value, 1.0f);
}
void MainBatch::cube(
const glm::vec3& coord,
const glm::vec3& size,
const UVRegion(&texfaces)[6],
const glm::vec4& tint,
bool shading
) {
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);
quad(
coord + glm::vec3(0.0f, 0.0f, 0.0f),
X, Y, glm::vec2(size.x, size.y),
(shading ? do_tint(0.8) * tint : tint),
glm::vec3(1.0f), texfaces[5]
);
quad(
coord + glm::vec3(size.x, 0.0f, -size.z),
-X, Y, glm::vec2(size.x, size.y),
(shading ? do_tint(0.8) * tint : tint),
glm::vec3(1.0f), texfaces[4]
);
quad(
coord + glm::vec3(0.0f, size.y, 0.0f),
X, -Z, glm::vec2(size.x, size.z),
(shading ? do_tint(1.0f) * tint : tint),
glm::vec3(1.0f), texfaces[3]
);
quad(
coord + glm::vec3(0.0f, 0.0f, -size.z),
X, Z, glm::vec2(size.x, size.z),
(shading ? do_tint(0.7f) * tint : tint),
glm::vec3(1.0f), texfaces[2]
);
quad(
coord + glm::vec3(0.0f, 0.0f, -size.z),
Z, Y, glm::vec2(size.z, size.y),
(shading ? do_tint(0.9f) * tint : tint),
glm::vec3(1.0f), texfaces[0]
);
quad(
coord + glm::vec3(size.x, 0.0f, 0.0f),
-Z, Y, glm::vec2(size.z, size.y),
(shading ? do_tint(0.9f) * tint : tint),
glm::vec3(1.0f), texfaces[1]
);
}