Adjust model initialization: adopt constants::DEFAULT_MODEL_SCALE, increase buffer sizes, and extend GPU buffer initialization with debug names.

This commit is contained in:
2025-07-01 08:53:19 -04:00
parent 51ecb896ce
commit 2ffebbfbca
5 changed files with 14 additions and 7 deletions

View File

@@ -30,7 +30,7 @@ namespace fgl::engine
vk::BufferUsageFlagBits::eStorageBuffer | vk::BufferUsageFlagBits::eTransferDst,
vk::MemoryPropertyFlagBits::eDeviceLocal | vk::MemoryPropertyFlagBits::eHostVisible ),
m_vertex_buffer(
2_MiB,
2_GiB,
vk::BufferUsageFlagBits::eVertexBuffer | vk::BufferUsageFlagBits::eStorageBuffer
| vk::BufferUsageFlagBits::eTransferDst,
vk::MemoryPropertyFlagBits::eDeviceLocal ),
@@ -38,11 +38,14 @@ namespace fgl::engine
1_GiB,
vk::BufferUsageFlagBits::eIndexBuffer | vk::BufferUsageFlagBits::eTransferDst,
vk::MemoryPropertyFlagBits::eDeviceLocal ),
m_generated_instance_info( constructPerFrame< DeviceVector< PerVertexInstanceInfo > >( m_vertex_buffer ) ),
m_primitive_info( m_long_buffer ),
m_primitive_instances( m_short_buffer ),
m_model_instances( m_short_buffer ),
m_generated_instance_info( constructPerFrame< DeviceVector< PerVertexInstanceInfo > >( m_vertex_buffer ) )
m_model_instances( m_short_buffer )
{
m_vertex_buffer->setDebugName( "Vertex buffer" );
m_index_buffer->setDebugName( "Index buffer" );
m_primitives_desc = PRIMITIVE_SET.create();
m_primitives_desc->bindStorageBuffer( 0, m_primitive_info );
m_primitives_desc->update();
@@ -93,7 +96,7 @@ namespace fgl::engine
WorldTransform transform {};
transform.translation = Coordinate< CoordinateSpace::World >( glm::vec3( 0.0, 0.0, 0.0 ) );
transform.scale = glm::vec3( 0.007 );
transform.scale = glm::vec3( constants::DEFAULT_MODEL_SCALE );
transform.rotation = { glm::quat( 1.0, 0.0, 0.0, 0.0 ) };
const ModelInstanceInfo model_info { transform.mat4() };

View File

@@ -87,6 +87,7 @@ namespace fgl::engine
static_assert( offsetof( PerVertexInstanceInfo, material_id ) == 64 );
static_assert( sizeof( MaterialID ) == 4 );
// Padding check
static_assert( sizeof( PerVertexInstanceInfo ) == 64 + ( 4 * 4 ) );
struct ModelGPUBuffers

View File

@@ -9,7 +9,7 @@ namespace fgl::engine
struct ModelInstanceInfo
{
glm::mat4 m_matrix { glm::mat4( 0.007 ) };
glm::mat4 m_matrix { glm::mat4( constants::DEFAULT_MODEL_SCALE ) };
};
using ModelInstanceInfoIndex = IndexedVector< ModelInstanceInfo >::Index;

View File

@@ -602,12 +602,13 @@ namespace fgl::engine
std::make_unique< components::ModelComponent >( std::move( model ) )
};
const auto transform { loadTransform( node_idx, root ) };
// component->updateTransform( transform );
obj.addComponent( std::move( component ) );
obj.addFlag( IsVisible | IsEntity );
const auto transform { loadTransform( node_idx, root ) };
// obj.getTransform() = transform;
if ( node.name.empty() )

View File

@@ -17,6 +17,8 @@ namespace fgl::engine::constants
constexpr glm::vec3 DEFAULT_VEC3 { std::numeric_limits< float >::signaling_NaN() };
constexpr float DEFAULT_MODEL_SCALE { 0.07f };
constexpr glm::vec3 WORLD_CENTER { 0.0f, 0.0f, 0.0f };
// X RIGHT