Merge pull request #980 from MihailRis/fix-custom-model-blocks-no-ao-shading

fix custom model blocks with disabled ambient-occlusion
This commit is contained in:
MihailRis 2026-09-19 21:30:05 +03:00 • committed by GitHub
commit 7bbdf67bce
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -357,10 +357,11 @@ void BlocksRenderer::blockCustomModel(
const auto& vcoord = vertex.coord - 0.5f;
glm::vec4 aoColor {1.0f, 1.0f, 1.0f, 1.0f};
if (shading && ao) {
if (shading) {
const float eps = 0.05f;
auto p = coord + vcoord.x * X + vcoord.y * Y + vcoord.z * Z +
r * 0.5f + t * 0.5f + n * eps;
if (ao) {
auto p1 = p + n * eps;
auto p2 = p + n * 0.5f;
aoColor = pickSoftLight(p1.x, p1.y, p1.z, glm::ivec3(r), glm::ivec3(t));
@ -372,6 +373,15 @@ void BlocksRenderer::blockCustomModel(
)
);
}
} else {
aoColor = pickLight(glm::floor(p + 0.5f) + 0.5f);
if (!block.lightPassing) {
aoColor = glm::max(
aoColor,
pickLight(glm::floor(p + n + 0.5f) + 0.5f)
);
}
}
}
this->vertex(
coord + vcoord.x * X + vcoord.y * Y + vcoord.z * Z,