diff --git a/src/engine/assets/model/Model.cpp b/src/engine/assets/model/Model.cpp index 66f37fb..694aaf1 100644 --- a/src/engine/assets/model/Model.cpp +++ b/src/engine/assets/model/Model.cpp @@ -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() }; diff --git a/src/engine/assets/model/Model.hpp b/src/engine/assets/model/Model.hpp index e89ecb2..bc45ea4 100644 --- a/src/engine/assets/model/Model.hpp +++ b/src/engine/assets/model/Model.hpp @@ -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 diff --git a/src/engine/assets/model/ModelInstanceInfo.hpp b/src/engine/assets/model/ModelInstanceInfo.hpp index ea54fd7..83d0e33 100644 --- a/src/engine/assets/model/ModelInstanceInfo.hpp +++ b/src/engine/assets/model/ModelInstanceInfo.hpp @@ -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; diff --git a/src/engine/assets/model/builders/SceneBuilder.cpp b/src/engine/assets/model/builders/SceneBuilder.cpp index f87e7ad..b341b60 100644 --- a/src/engine/assets/model/builders/SceneBuilder.cpp +++ b/src/engine/assets/model/builders/SceneBuilder.cpp @@ -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() ) diff --git a/src/engine/constants.hpp b/src/engine/constants.hpp index 5fb561f..4f04f9e 100644 --- a/src/engine/constants.hpp +++ b/src/engine/constants.hpp @@ -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