FmTaskFuncStepVelocityRebuildBvh
É definido em FEMFX / amd_femfx / src / Simulation / FEMFXSimulate.cpp , que conclui principalmente o cálculo da velocidade (posição) na simulação e a atualização do bvh.
A parte principal do conteúdo do sentimento FmTaskFuncTetMeshStepVelocityRebuildBvh
e as FmTaskFuncRbStepVelocityRebuildBvh
duas partes.
Entre eles, FmTaskFuncTetMeshStepVelocityRebuildBvh
o conteúdo é o cálculo de software.
Nota: O software também distingue se os objetos de software são objetos KINEMATIC. (Objeto KINEMATIC significa que o movimento do objeto é conduzido pelo mundo exterior, ou seja, o estado do movimento e a trajetória do objeto são definidos diretamente de acordo com a entrada externa)
O conteúdo principal é:
FmStepVelocityImplicitEuler(scene, tetMesh, solverData, gravityVector, kRayleighMassDamping, kRayleighStiffnessDamping, tetMesh->extForceSpeedLimit, timestep, scene->params.epsilonCg);
FmBuildHierarchy(tetMesh, timestep, aabbPadding);
FmAddDeformationConstraints(tetMesh, constraintsBuffer, timestep);
Especificamente:
FmStepVelocityImplicitEuler
para as etapas da solução:
// Take a simulation step using current dynamic state, external forces, constraints set in tetMeshState.
// Also resets vertex flag FM_VERT_FLAG_FRACTURED and tetQuatSum
FmBuildHierarchy
Para estabelecer o nível:
// For CCD, must build after integration computes new velocities.
FmAddDeformationConstraints
Para adicionar restrições de deformação:
// Add constraints to prevent excessive deformation.
// Expects that unconstrained end-of-step velocities have been updated.
// There are up to three constraints per tetrahedron, and using the same 3D constraints and 3x3 Jacobian submatrices as for contacts and glue.
// This allows some benefit from SIMD but wastes space when fewer dimensions are needed.
// Reference: Perez et al., "Strain Limiting for Soft Finger Contact Simulation"
O conteúdo específico precisa de mais análises.
Além disso, FmTaskFuncRbStepVelocityRebuildBvh
o básico é calcular o movimento do corpo rígido sob o efeito de restrição (gravidade), calcular a velocidade, posição e similares e atualizar o objeto de colisão aabb e assim por diante.