Optimization

This commit is contained in:
Irlan 2019-06-27 17:03:24 -03:00
parent b6d9f56583
commit 51d45ae372
2 changed files with 4 additions and 11 deletions

View File

@ -261,7 +261,7 @@ void b3ClothForceSolver::Solve(float32 dt, const b3Vec3& gravity)
// b = h * (f0 + h * dfdx * v0 + dfdx * y) // b = h * (f0 + h * dfdx * v0 + dfdx * y)
// A // A
b3SparseMat33 A = M - h * dfdv - h * h * dfdx; b3SparseMat33 A = M - h * dfdv - (h * h) * dfdx;
// View for A // View for A
b3SparseMat33View viewA(A); b3SparseMat33View viewA(A);

View File

@ -134,21 +134,14 @@ void b3ShearForce::Apply(const b3ClothForceSolverData* data)
m_f3 += fs[2]; m_f3 += fs[2];
// Jacobian // Jacobian
b3Mat33 d2Cxij;
for (u32 i = 0; i < 3; ++i)
{
for (u32 j = 0; j < 3; ++j)
{
d2Cxij(i, j) = alpha * (dwudx[i] * dwvdx[j] + dwudx[j] * dwvdx[i]);
}
}
b3Mat33 J[3][3]; b3Mat33 J[3][3];
for (u32 i = 0; i < 3; ++i) for (u32 i = 0; i < 3; ++i)
{ {
for (u32 j = 0; j < 3; ++j) for (u32 j = 0; j < 3; ++j)
{ {
b3Mat33 Jij = -m_ks * (b3Outer(dCdx[i], dCdx[j]) + (C * d2Cxij(i, j) * I)); b3Mat33 d2Cxij = alpha * (dwudx[i] * dwvdx[j] + dwudx[j] * dwvdx[i]) * I;
b3Mat33 Jij = -m_ks * (b3Outer(dCdx[i], dCdx[j]) + C * d2Cxij);
J[i][j] = Jij; J[i][j] = Jij;
} }