diff options
author | DS <vorunbekannt75@web.de> | 2022-09-18 15:28:53 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-18 15:28:53 +0200 |
commit | c9ed059d9170f2f7f662cbb59e6009fd54c8ed3f (patch) | |
tree | 99b6adee12a0e76b3f2a25e2a6e5975bfaeaac28 /src/client/meshgen/collector.cpp | |
parent | a428a0cf37581a35f9c4f81c2e71633e6cc3dbb9 (diff) | |
download | minetest-c9ed059d9170f2f7f662cbb59e6009fd54c8ed3f.tar.xz |
Client map: do frustum culling via planes (#12710)
Diffstat (limited to 'src/client/meshgen/collector.cpp')
-rw-r--r-- | src/client/meshgen/collector.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/client/meshgen/collector.cpp b/src/client/meshgen/collector.cpp index 25457c868..c5f4eb976 100644 --- a/src/client/meshgen/collector.cpp +++ b/src/client/meshgen/collector.cpp @@ -45,9 +45,12 @@ void MeshCollector::append(const TileLayer &layer, const video::S3DVertex *verti scale = 1.0f / layer.scale; u32 vertex_count = p.vertices.size(); - for (u32 i = 0; i < numVertices; i++) + for (u32 i = 0; i < numVertices; i++) { p.vertices.emplace_back(vertices[i].Pos, vertices[i].Normal, vertices[i].Color, scale * vertices[i].TCoords); + m_bounding_radius_sq = std::max(m_bounding_radius_sq, + (vertices[i].Pos - m_center_pos).getLengthSQ()); + } for (u32 i = 0; i < numIndices; i++) p.indices.push_back(indices[i] + vertex_count); @@ -81,8 +84,11 @@ void MeshCollector::append(const TileLayer &layer, const video::S3DVertex *verti video::SColor color = c; if (!light_source) applyFacesShading(color, vertices[i].Normal); - p.vertices.emplace_back(vertices[i].Pos + pos, vertices[i].Normal, color, + auto vpos = vertices[i].Pos + pos; + p.vertices.emplace_back(vpos, vertices[i].Normal, color, scale * vertices[i].TCoords); + m_bounding_radius_sq = std::max(m_bounding_radius_sq, + (vpos - m_center_pos).getLengthSQ()); } for (u32 i = 0; i < numIndices; i++) |