载入中...
搜索中...
未找到
PcgSkinnedMesh.cpp
浏览该文件的文档.
18 if (mesh.empty() || mesh.getVertexCount() != skin.getVertexCount() || skin.getBoneCount() <= 0 ||
54 DiagnosticCode::InvalidArgument, "Pcg skinned combine plan is empty", "procgen.animation.pcgSkinnedMesh"));
104 streams.vertexSkinJoints.push_back(weight > 0.F ? remap[static_cast<std::size_t>(sourceJoint)] : -1);
static Diagnostic error(DiagnosticCode code, std::string message, std::string path={}, DiagnosticDetails details={}, std::string source={})
Construct an error diagnostic with the standard error severity.
Definition Diagnostic.h:125
static Result failure(Status status)
Construct a failed result from a structured status.
Definition Result.h:175
CPU linear-blend skinning binding for one mesh against an AnimSkeleton.
Definition AnimSkin.h:47
int getSkeletonBone(int skinBoneIndex) const
Skeleton bone index used by skin joint i (-1 if unused).
Definition AnimSkin.cpp:104
float getInverseBindElement(int skinBoneIndex, int elementIndex) const
Inverse-bind matrix element (column-major, 0..15) for skin joint i.
Definition AnimSkin.cpp:114
float getVertexWeight(int vertexIndex, int influenceIndex) const
Returns the vertex weight.
Definition AnimSkin.cpp:198
std::string getSkinBoneName(int skinBoneIndex) const
Returns the skin bone name.
Definition AnimSkin.cpp:109
static Result< std::unique_ptr< AnimSkin > > fromStreams(AnimSkinStreamData streams)
Construct a caller-owned skin from validated native streams.
Definition AnimSkin.cpp:55
int getVertexSkinJoint(int vertexIndex, int influenceIndex) const
Influence slot i (0..3) for vertex: skin-local joint index or -1.
Definition AnimSkin.cpp:191
CPU triangle mesh from procedural mesh recipes (e.g. marching cubes). Positions/normals are xyz-packe...
Definition MeshBuild.h:19
Owned ordered input plan for Pcg static MeshCombiner.
Definition PcgMeshLod.h:64
Result< void > appendSource(const MeshBuild &mesh, const PcgMeshTransform &transform, const std::string &defaultMaterialId)
Copy one readable mesh and root-relative affine transform into the plan.
Definition PcgMeshLod.cpp:25
Row-major affine matrix used by Pcg's root-relative static mesh combination.
Definition PcgMeshLod.h:43
Owned ordered inputs for Pcg's skinned MeshCombiner path.
Definition PcgSkinnedMesh.h:14
Result< void > appendSource(const procgen::MeshBuild &mesh, const animation::AnimSkin &skin, const procgen::PcgMeshTransform &transform, const std::string &defaultMaterialId)
Copy one mesh, transform and complete skin streams into the plan.
Definition PcgSkinnedMesh.cpp:14
Atomically published combined mesh and matching owned AnimSkin.
Definition PcgSkinnedMesh.h:39
Definition PcgSkinnedMesh.cpp:7
Result< void > combinePcgSkinnedMeshesInto(PcgSkinnedMeshResult &output, const PcgSkinnedMeshPlan &plan)
Combine Pcg skinned meshes, preserving its bone and bindpose remap semantics.
Definition PcgSkinnedMesh.cpp:50
Result< int > combinePcgStaticMeshesInto(MeshBuild &output, const PcgMeshCombinePlan &plan)
Combine static meshes with Pcg material deduplication and root-relative transforms.
Definition PcgMeshLod.cpp:52
@ InvalidArgument
Owned native streams for constructing a skin outside the model importer.
Definition AnimSkin.h:28
std::vector< std::array< float, 16 > > inverseBindMatrices
Definition AnimSkin.h:34
std::vector< int > vertexSkinJoints
Definition AnimSkin.h:35
std::vector< std::string > boneNames
Definition AnimSkin.h:33
std::vector< int > skeletonBones
Definition AnimSkin.h:32
std::vector< float > bindPositions
Definition AnimSkin.h:30
std::vector< float > bindNormals
Definition AnimSkin.h:31
std::vector< float > vertexWeights
Definition AnimSkin.h:36