/foundation/graphic/graphic_3d/lume/Lume_3D/src/render/node/ |
H A D | render_node_morph.cpp | 126 for (const auto& submesh : submeshes) { in PreExecuteFrame() 127 structCount += (static_cast<uint32_t>(submesh.activeTargets.size()) + 3u) / 4u; in PreExecuteFrame() 180 for (const RenderDataMorph::Submesh& submesh : submeshes) { in UpdateWeightsAndTargets() 181 const auto& activeTargets = submesh.activeTargets; in UpdateWeightsAndTargets() 212 for (const RenderDataMorph::Submesh& submesh : submeshes) { in ComputeMorphs() 213 const auto blockSize = (static_cast<uint32_t>(submesh.activeTargets.size()) + 3u) / 4u; in ComputeMorphs() 218 const auto indexOffset = submesh.morphTargetBuffer.bufferOffset; in ComputeMorphs() 220 Align((submesh.vertexCount * submesh.morphTargetCount * static_cast<uint32_t>(sizeof(uint32_t))), in ComputeMorphs() 223 inputBinder.BindBuffer(0u, submesh in ComputeMorphs() [all...] |
/foundation/graphic/graphic_3d/lume/Lume_3D/src/util/ |
H A D | mesh_builder.cpp | 571 for (MeshComponent::Submesh& submesh : submeshes) { in FillSubmeshBuffers() 572 submesh.indexBuffer.buffer = bufferEntities.indexBuffer; in FillSubmeshBuffers() 573 submesh.morphTargetBuffer.buffer = bufferEntities.morphBuffer; in FillSubmeshBuffers() 575 submesh.bufferAccess[MeshComponent::Submesh::DM_VB_POS].buffer = bufferEntities.vertexBuffer; in FillSubmeshBuffers() 576 submesh.bufferAccess[MeshComponent::Submesh::DM_VB_NOR].buffer = bufferEntities.vertexBuffer; in FillSubmeshBuffers() 577 submesh.bufferAccess[MeshComponent::Submesh::DM_VB_UV0].buffer = bufferEntities.vertexBuffer; in FillSubmeshBuffers() 579 if (submesh.flags & MeshComponent::Submesh::FlagBits::SECOND_TEXCOORD_BIT) { in FillSubmeshBuffers() 580 submesh.bufferAccess[MeshComponent::Submesh::DM_VB_UV1].buffer = bufferEntities.vertexBuffer; in FillSubmeshBuffers() 583 if (submesh.flags & MeshComponent::Submesh::FlagBits::TANGENTS_BIT) { in FillSubmeshBuffers() 584 submesh in FillSubmeshBuffers() 1103 SubmeshExt& submesh = submeshInfos_[submeshIndex]; SetVertexData() local 1198 SubmeshExt& submesh = submeshInfos_[submeshIndex]; SetIndexData() local 1237 const SubmeshExt& submesh = submeshInfos_[submeshIndex]; SetJointData() local 1281 SubmeshExt& submesh = submeshInfos_[submeshIndex]; SetMorphTargetData() local 1719 GatherDeltasP(SubmeshExt& submesh, uint8_t* dst, uint32_t baseOffset, uint32_t indexOffset, uint32_t targetSize, const MeshBuilder::DataBuffer& targetPositions) GatherDeltasP() argument 1798 GatherDeltasPN(SubmeshExt& submesh, uint8_t* dst, uint32_t baseOffset, uint32_t indexOffset, uint32_t targetSize, const MeshBuilder::DataBuffer& targetPositions, const MeshBuilder::DataBuffer& targetNormals) GatherDeltasPN() argument 1909 GatherDeltasPT(SubmeshExt& submesh, uint8_t* dst, uint32_t baseOffset, uint32_t indexOffset, uint32_t targetSize, const MeshBuilder::DataBuffer& targetPositions, const MeshBuilder::DataBuffer& targetTangents) GatherDeltasPT() argument 1913 GatherDeltasPNT(SubmeshExt& submesh, uint8_t* dst, uint32_t baseOffset, uint32_t indexOffset, uint32_t targetSize, const MeshBuilder::DataBuffer& targetPositions, const MeshBuilder::DataBuffer& targetNormals, const MeshBuilder::DataBuffer& targetTangents) GatherDeltasPNT() argument 2151 WriteData(const DataBuffer& srcData, const SubmeshExt& submesh, uint32_t attributeLocation, uint32_t& byteOffset, uint32_t& byteSize, uint8_t* dst) const WriteData() argument [all...] |
H A D | mesh_util.cpp | 502 IMeshBuilder::Submesh submesh; in GeneratePlaneMesh() local 503 submesh.material = material; in GeneratePlaneMesh() 504 submesh.vertexCount = 6u; in GeneratePlaneMesh() 505 submesh.indexCount = 6u; in GeneratePlaneMesh() 506 submesh.indexType = CORE_INDEX_TYPE_UINT16; in GeneratePlaneMesh() 507 submesh.tangents = true; in GeneratePlaneMesh() 509 auto builder = InitializeBuilder(submesh); in GeneratePlaneMesh() 538 IMeshBuilder::Submesh submesh; in GenerateSphereMesh() local 539 submesh.material = material; in GenerateSphereMesh() 540 submesh in GenerateSphereMesh() 571 IMeshBuilder::Submesh submesh; GenerateConeMesh() local 610 IMeshBuilder::Submesh submesh; GenerateTorusMesh() local 646 IMeshBuilder::Submesh submesh; GenerateCubeMesh() local [all...] |
H A D | mesh_builder.h | 39 void AddSubmesh(const MeshBuilder::Submesh& submesh) override; 101 // Offset to morph target data from submesh's morphTargetOffset. 107 // Extend submesh info with offset-data. 146 static void GatherDeltasP(SubmeshExt& submesh, uint8_t* dst, uint32_t baseOffset, uint32_t indexOffset, 148 static void GatherDeltasPN(SubmeshExt& submesh, uint8_t* dst, uint32_t baseOffset, uint32_t indexOffset, 150 static void GatherDeltasPT(SubmeshExt& submesh, uint8_t* dst, uint32_t baseOffset, uint32_t indexOffset, 152 static void GatherDeltasPNT(SubmeshExt& submesh, uint8_t* dst, uint32_t baseOffset, uint32_t indexOffset, 159 bool WriteData(const DataBuffer& data, const SubmeshExt& submesh, uint32_t attributeLocation, uint32_t& byteOffset,
|
H A D | mesh_util.h | 87 IMeshBuilder::Ptr InitializeBuilder(const IMeshBuilder::Submesh& submesh) const;
|
H A D | picking.cpp | 230 for (auto const& submesh : mesh.submeshes) { in HitTestNode() 231 const MinAndMax submeshMinMax = GetWorldAABB(matrix, submesh.aabbMin, submesh.aabbMax); in HitTestNode()
|
/foundation/graphic/graphic_3d/lume/Lume_3D/src/ecs/systems/ |
H A D | morphing_system.cpp | 67 const MeshComponent& desc, RenderDataMorph::Submesh& submesh, const IRenderHandleComponentManager& bufferManager) in AddMorphSubmesh() 69 submesh.vertexCount = submeshDesc.vertexCount; in AddMorphSubmesh() 71 submesh.vertexBuffers[0U] = GetBuffer(submeshDesc.bufferAccess[MeshComponent::Submesh::DM_VB_POS], bufferManager); in AddMorphSubmesh() 72 submesh.vertexBuffers[1U] = GetBuffer(submeshDesc.bufferAccess[MeshComponent::Submesh::DM_VB_NOR], bufferManager); in AddMorphSubmesh() 73 submesh.vertexBuffers[2U] = GetBuffer(submeshDesc.bufferAccess[MeshComponent::Submesh::DM_VB_TAN], bufferManager); in AddMorphSubmesh() 75 submesh.vertexBufferCount = 3U; // 3: count of vertex buffer in AddMorphSubmesh() 77 submesh.morphTargetBuffer = GetBuffer(submeshDesc.morphTargetBuffer, bufferManager); in AddMorphSubmesh() 79 submesh.morphTargetCount = submeshDesc.morphTargetCount; in AddMorphSubmesh() 81 // don't touch submesh.activeTargets as it's same for each submesh in AddMorphSubmesh() 66 AddMorphSubmesh(IRenderDataStoreMorph& dataStore, const MeshComponent::Submesh& submeshDesc, const MeshComponent& desc, RenderDataMorph::Submesh& submesh, const IRenderHandleComponentManager& bufferManager) AddMorphSubmesh() argument [all...] |
H A D | render_preprocessor_system.cpp | 303 // gather the submesh world aabbs in GatherSortData() 323 for (const auto& submesh : meshData->submeshes) { in GatherSortData() 324 if (EntityUtil::IsValid(submesh.material)) { in GatherSortData() 326 submesh.material, in GatherSortData() 330 (pos != materialProperties_.cend()) && (pos->material == submesh.material)) { in GatherSortData() 340 for (const auto additionalMaterial : submesh.additionalMaterials) { in GatherSortData() 377 for (const auto& submesh : meshData->submeshes) { in GatherSortData() 382 const MinAndMax mam = picking_->GetWorldAABB(world, submesh.aabbMin, submesh.aabbMax); in GatherSortData()
|
H A D | render_system.cpp | 659 // need to check for tangents as well with submesh in RenderMaterialFlagsFromMaterialValues() 780 const MeshComponent::Submesh& submesh, RenderSubmesh& renderSubmesh) in SetupSubmeshBuffers() 790 for (size_t idx = 0; idx < countof(submesh.bufferAccess); ++idx) { in SetupSubmeshBuffers() 791 const auto& acc = submesh.bufferAccess[idx]; in SetupSubmeshBuffers() 813 submesh.bufferAccess[0U].buffer ? static_cast<uint32_t>(countof(submesh.bufferAccess)) : 0U; in SetupSubmeshBuffers() 815 if (submesh.indexBuffer.buffer) { in SetupSubmeshBuffers() 817 renderHandleManager.GetRenderHandleReference(submesh.indexBuffer.buffer); in SetupSubmeshBuffers() 818 renderSubmesh.indexBuffer.bufferOffset = submesh.indexBuffer.offset; in SetupSubmeshBuffers() 819 renderSubmesh.indexBuffer.byteSize = submesh in SetupSubmeshBuffers() 779 SetupSubmeshBuffers(const IRenderHandleComponentManager& renderHandleManager, const MeshComponent& desc, const MeshComponent::Submesh& submesh, RenderSubmesh& renderSubmesh) SetupSubmeshBuffers() argument 1419 ProcessSubmesh(const MeshProcessData& mpd, const MeshComponent::Submesh& submesh, const uint32_t meshIndex, const uint32_t subMeshIndex, const uint32_t skinJointIndex, const MinAndMax& mam, const bool isNegative) ProcessSubmesh() argument 1513 const auto& submesh = mpd.meshComponent.submeshes[subMeshIdx]; ProcessMesh() variable [all...] |
H A D | render_system.h | 178 uint32_t ProcessSubmesh(const MeshProcessData& mpd, const MeshComponent::Submesh& submesh, const uint32_t meshIndex,
|
/foundation/graphic/graphic_3d/lume/scenewidgetplugin/plugin/include/scene_plugin/api/ |
H A D | mesh.h | 40 * @brief Within a render slot, a layer can define a sort layer order for a submesh. 46 * @param index The selected submesh index. 51 if (auto submesh = META_API_CACHED_INTERFACE(SubMesh)) { in SetRenderSortLayerOrder() 52 submesh->SetRenderSortLayerOrder(order); in SetRenderSortLayerOrder() 57 * @brief Set axis aligned bounding box min to the submesh. 61 if (auto submesh = META_API_CACHED_INTERFACE(SubMesh)) { in SetAABBMin() 62 submesh->SetAABBMin(min); in SetAABBMin() 67 * @brief Set axis aligned bounding box max to the submesh. 71 if (auto submesh = META_API_CACHED_INTERFACE(SubMesh)) { in SetAABBMax() 72 submesh in SetAABBMax() 261 CloneSubmesh(ISubMesh::Ptr submesh) CloneSubmesh() argument [all...] |
/foundation/graphic/graphic_3d/lume/scenewidgetplugin/plugin/src/ |
H A D | mesh_impl.cpp | 69 for (auto& submesh : SubMeshes()->GetValue()) { in SyncMaterialOverrideToSubmeshes() 70 auto submeshPrivate = interface_cast<SCENE_NS::ISubMeshPrivate>(submesh); in SyncMaterialOverrideToSubmeshes() 78 for (auto& submesh : SubMeshes()->GetValue()) { in SyncMaterialOverrideToSubmeshes() 79 auto submeshPrivate = interface_cast<SCENE_NS::ISubMeshPrivate>(submesh); in SyncMaterialOverrideToSubmeshes() 99 // Ensure submesh materials are connected to ecs. 102 auto submesh = submeshes.at(i); variable 103 auto material = META_NS::GetValue(submesh->Material()); 132 // Also restore submesh materials. 134 auto submesh = submeshes.at(i); variable 135 auto materialUri = META_NS::GetValue(submesh [all...] |
H A D | submeshhandler.cpp | 131 auto submesh = GetObjectRegistry().Create<SCENE_NS::ISubMesh>(SCENE_NS::ClassId::SubMesh); variable 132 submeshes_->AddValue(submesh); 136 const auto& submesh = componentData.submeshes.at(i); variable 141 META_NS::SetValue(ptr->AABBMin(), submesh.aabbMin); 142 META_NS::SetValue(ptr->AABBMax(), submesh.aabbMax); 143 META_NS::SetValue(ptr->RenderSortLayerOrder(), submesh.renderSortLayerOrder); 147 if (CORE_NS::EntityUtil::IsValid(submesh.material)) { 154 auto material = GetMaterialFromEntity(scene, sceneHolder, submesh.material); 301 for (const auto& submesh : handle->submeshes) { 302 handle->aabbMin = BASE_NS::Math::min(handle->aabbMin, submesh [all...] |
H A D | scene_holder.cpp | 1787 for (auto&& submesh : handle->submeshes) { in SetMaterial() 1788 submesh.material = material; in SetMaterial() 2331 for (const auto& submesh : handle->submeshes) { in RemoveSubmesh() 2332 handle->aabbMin = BASE_NS::Math::min(handle->aabbMin, submesh.aabbMin); in RemoveSubmesh() 2333 handle->aabbMax = BASE_NS::Math::max(handle->aabbMax, submesh.aabbMax); in RemoveSubmesh() 2457 CORE3D_NS::IMeshBuilder::Submesh submesh; in CreateMeshFromArrays() local 2459 submesh.indexType = indexType; in CreateMeshFromArrays() 2460 submesh.vertexCount = static_cast<uint32_t>(geometry->vertices.size()); in CreateMeshFromArrays() 2461 submesh.indexCount = static_cast<uint32_t>(geometry->indices.size()); in CreateMeshFromArrays() 2462 submesh in CreateMeshFromArrays() [all...] |
/foundation/graphic/graphic_3d/lume/Lume_3D/src/render/datastore/ |
H A D | render_data_store_morph.cpp | 45 void RenderDataStoreMorph::AddSubmesh(const RenderDataMorph::Submesh& submesh) in AddSubmesh() argument 47 submeshes_.push_back(submesh); in AddSubmesh()
|
H A D | render_data_store_default_material.cpp | 62 const RenderSubmesh& submesh, const vector<RenderDataDefaultMaterial::CustomResourceData>& customResourceData) in ValidateSubmesh() 64 if (((submesh.submeshFlags & RenderSubmeshFlagBits::RENDER_SUBMESH_SKIN_BIT) == 0) && in ValidateSubmesh() 65 submesh.skinJointIndex != RenderSceneDataConstants::INVALID_INDEX) { in ValidateSubmesh() 66 CORE_LOG_W("CORE3D_VALIDATION: skin bit is not set for submesh flags"); in ValidateSubmesh() 68 if ((submesh.customResourcesIndex != RenderSceneDataConstants::INVALID_INDEX) && in ValidateSubmesh() 69 (submesh.customResourcesIndex >= static_cast<uint32_t>(customResourceData.size()))) { in ValidateSubmesh() 468 void RenderDataStoreDefaultMaterial::AddSubmesh(const RenderSubmesh& submesh) in AddSubmesh() argument 471 if (submesh.materialIndex >= static_cast<uint32_t>(materialData_.size())) { in AddSubmesh() 472 CORE_LOG_W("CORE_VALIDATION: submesh cannot be sent to rendering without a valid materialIndex"); in AddSubmesh() 475 if (submesh in AddSubmesh() 61 ValidateSubmesh( const RenderSubmesh& submesh, const vector<RenderDataDefaultMaterial::CustomResourceData>& customResourceData) ValidateSubmesh() argument 509 AddSubmesh( const RenderSubmesh& submesh, const array_view<const IShaderManager::RenderSlotData> renderSlotAndShaders) AddSubmesh() argument [all...] |
H A D | render_data_store_morph.h | 56 void AddSubmesh(const RenderDataMorph::Submesh& submesh) override;
|
H A D | render_data_store_default_material.h | 99 void AddSubmesh(const RenderSubmesh& submesh) override; 100 void AddSubmesh(const RenderSubmesh& submesh, 174 // per submesh
|
/foundation/graphic/graphic_3d/lume/Lume_3D/api/3d/render/ |
H A D | intf_render_data_store_morph.h | 84 virtual void AddSubmesh(const RenderDataMorph::Submesh& submesh) = 0;
|
H A D | intf_render_data_store_default_material.h | 178 /* Render submesh's submesh flags, dublicated here for convenience */ 191 /** Combined sort layer from render submesh */ 273 * @return Mesh index for submesh to use. 282 * @return Material index for submesh to use. 291 * Final rendering material flags are per submesh (RenderDataDefaultMaterial::SubmeshMaterialFlags) 297 * @return Material index for submesh to use. 307 * @param instanceCount How many submesh instances will be will be draw. 308 * @return Material index for the first submesh instance. 313 * @param materialIndex Index to first submesh materia [all...] |
/foundation/graphic/graphic_3d/lume/Lume_3D/src/render/ |
H A D | render_node_scene_util.cpp | 283 const auto& submesh = submeshes[submeshIndex]; in GetRenderSlotSubmeshes() local 286 frustumUtil->SphereFrustumCollision(camFrustum, submesh.worldCenter, submesh.worldRadius)); in GetRenderSlotSubmeshes() 289 if ((camLayerMask & submesh.layerMask) && notCulled && (!discardedMat)) { in GetRenderSlotSubmeshes() 290 const float distSq = Math::Distance2(submesh.worldCenter, camWorldPos); in GetRenderSlotSubmeshes()
|
/foundation/graphic/graphic_3d/lume/Lume_3D/api/3d/util/ |
H A D | intf_mesh_builder.h | 76 /** Setup vertex declaration and submesh count for the builder. Also resets the builder for re-use. 81 /** Add a submesh and related import info to this mesh. 82 * @param submesh Submesh import information that is used to determine memory requirements etc. 84 virtual void AddSubmesh(const Submesh& submesh) = 0; 86 /** Returns Import info for given submesh. 87 * @param index Index of the submesh. 88 * @return Import information for the given submesh. 106 /** Set geometry data for a given submesh. 107 * @param submeshIndex Index of the submesh. 119 /** Set Axis-aligned bounding box for a submesh [all...] |
/foundation/graphic/graphic_3d/lume/scenewidgetplugin/plugin/include/scene_plugin/interface/ |
H A D | intf_mesh.h | 61 * @brief Allows to override all submesh materials with a single material. 62 * @return Material that is used to override all submesh materials, if set. 90 * @brief Get material handle from submesh, async 91 * @param index The selected submesh index. 102 * @brief Set material for the selected submesh. 103 * @param index The selected submesh index. 109 * @brief Get render sort layer order for selected submesh 115 * @brief Within a render slot, a layer can define a sort layer order for a submesh. 120 * 3. Sort e.g. plane layers. * @param index The selected submesh index. 121 * @param index The selected submesh inde [all...] |
/foundation/graphic/graphic_3d/lume/Lume_3D/src/gltf/ |
H A D | gltf2_importer.cpp | 3589 MeshData::SubMesh submesh; 3590 submesh.indices = gltfSubmesh.indices; 3591 submesh.vertices = gltfSubmesh.vertices; 3592 submesh.indexBuffer = gltfSubmesh.indexBuffer; 3594 std::begin(submesh.attributeBuffers)); 3595 return submesh;
|
H A D | gltf2_exporter.cpp | 888 MeshPrimitive operator()(const MeshComponent::Submesh& submesh, const MeshPrimitive& original) in operator ()() 897 if (materialManager.HasComponent(submesh.material)) { in operator ()() 898 copy.materialIndex = FindOrAddIndex(usedMaterials, submesh.material); in operator ()()
|