fix text 3d position and culling
This commit is contained in:
parent
303346f5e5
commit
2e17c74f91
@ -126,7 +126,15 @@ void Batch3D::sprite(
|
||||
float scale = 1.0f / static_cast<float>(atlasRes);
|
||||
float u = (index % atlasRes) * scale;
|
||||
float v = 1.0f - ((index / atlasRes) * scale) - scale;
|
||||
sprite(pos, up, right, w, h, UVRegion(u, v, u+scale, v+scale), tint);
|
||||
sprite(
|
||||
pos + right * w + up * h, // revert centering
|
||||
up,
|
||||
right,
|
||||
w,
|
||||
h,
|
||||
UVRegion(u, v, u + scale, v + scale),
|
||||
tint
|
||||
);
|
||||
}
|
||||
|
||||
void Batch3D::sprite(
|
||||
|
||||
@ -51,6 +51,7 @@ void TextsRenderer::renderNote(
|
||||
glm::vec3 yvec = note.getAxisY();
|
||||
|
||||
int width = font.calcWidth(text, text.length());
|
||||
int height = font.getLineHeight();
|
||||
if (preset.displayMode == NoteDisplayMode::Y_FREE_BILLBOARD ||
|
||||
preset.displayMode == NoteDisplayMode::XY_FREE_BILLBOARD) {
|
||||
xvec = camera.position - pos;
|
||||
@ -96,8 +97,11 @@ void TextsRenderer::renderNote(
|
||||
|
||||
pos = screenPos / screenPos.w;
|
||||
}
|
||||
} else if (!frustum.isBoxVisible(pos - xvec * (width * 0.5f * preset.scale),
|
||||
pos + xvec * (width * 0.5f * preset.scale))) {
|
||||
} else if (!frustum.isBoxVisible(
|
||||
pos - xvec * (width * 0.5f) * preset.scale,
|
||||
pos + xvec * (width * 0.5f) * preset.scale +
|
||||
yvec * static_cast<float>(height) * preset.scale
|
||||
)) {
|
||||
return;
|
||||
}
|
||||
auto color = preset.color;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user