mirror of
https://github.com/johndoe6345789/SDL3CPlusPlus.git
synced 2026-05-01 17:15:03 +00:00
feat: Enhance cube mesh handling with double-sided indices support
This commit is contained in:
@@ -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",
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user