feat: Enhance cube mesh handling with double-sided indices support

This commit is contained in:
2026-01-06 00:03:53 +00:00
parent 99690e381d
commit 84cd9e4f46

View File

@@ -9,6 +9,8 @@ local cube_mesh_info = {
local cube_vertices = {}
local cube_indices = {}
local cube_indices_double_sided = {}
local cube_indices_active = {}
local use_double_sided_indices = false
local function build_double_sided_indices(indices)
local doubled = {}
@@ -49,6 +51,8 @@ local function load_cube_mesh()
cube_vertices = mesh.vertices
cube_indices = mesh.indices
cube_indices_double_sided = build_double_sided_indices(cube_indices)
use_double_sided_indices = #cube_indices_double_sided > 0
cube_indices_active = use_double_sided_indices and cube_indices_double_sided or cube_indices
cube_mesh_info.loaded = true
cube_mesh_info.vertex_count = #mesh.vertices
cube_mesh_info.index_count = #mesh.indices
@@ -218,8 +222,8 @@ end
if cube_mesh_info.loaded then
log_debug("Loaded cube mesh from %s (%d vertices, %d indices)",
cube_mesh_info.path, cube_mesh_info.vertex_count, cube_mesh_info.index_count)
if #cube_indices_double_sided > 0 then
log_debug("Built double-sided cube indices (%d -> %d)",
if use_double_sided_indices then
log_debug("Using double-sided cube indices (%d -> %d)",
cube_mesh_info.index_count, #cube_indices_double_sided)
end
end
@@ -636,7 +640,7 @@ local function create_static_cube(position, scale, color, shader_key)
return {
vertices = vertices,
indices = cube_indices,
indices = cube_indices_active,
compute_model_matrix = compute_model_matrix,
shader_key = resolved_shader,
}
@@ -653,7 +657,7 @@ local function create_spinning_cube()
return {
vertices = cube_vertices,
indices = (#cube_indices_double_sided > 0) and cube_indices_double_sided or cube_indices,
indices = cube_indices_active,
compute_model_matrix = compute_model_matrix,
shader_key = "default",
}