Home
last modified time | relevance | path

Searched refs:submesh (Results 1 - 25 of 25) sorted by relevance

/foundation/graphic/graphic_3d/lume/Lume_3D/src/render/node/
H A Drender_node_morph.cpp126 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 Dmesh_builder.cpp571 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 Dmesh_util.cpp502 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 Dmesh_builder.h39 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 Dmesh_util.h87 IMeshBuilder::Ptr InitializeBuilder(const IMeshBuilder::Submesh& submesh) const;
H A Dpicking.cpp230 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 Dmorphing_system.cpp67 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 Drender_preprocessor_system.cpp303 // 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 Drender_system.cpp659 // 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 Drender_system.h178 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 Dmesh.h40 * @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 Dmesh_impl.cpp69 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 Dsubmeshhandler.cpp131 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 Dscene_holder.cpp1787 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 Drender_data_store_morph.cpp45 void RenderDataStoreMorph::AddSubmesh(const RenderDataMorph::Submesh& submesh) in AddSubmesh() argument
47 submeshes_.push_back(submesh); in AddSubmesh()
H A Drender_data_store_default_material.cpp62 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 Drender_data_store_morph.h56 void AddSubmesh(const RenderDataMorph::Submesh& submesh) override;
H A Drender_data_store_default_material.h99 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 Dintf_render_data_store_morph.h84 virtual void AddSubmesh(const RenderDataMorph::Submesh& submesh) = 0;
H A Dintf_render_data_store_default_material.h178 /* 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 Drender_node_scene_util.cpp283 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 Dintf_mesh_builder.h76 /** 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 Dintf_mesh.h61 * @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 Dgltf2_importer.cpp3589 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 Dgltf2_exporter.cpp888 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 ()()

Completed in 31 milliseconds