本文整理汇总了C++中Matrix4x4::InvertRT方法的典型用法代码示例。如果您正苦于以下问题:C++ Matrix4x4::InvertRT方法的具体用法?C++ Matrix4x4::InvertRT怎么用?C++ Matrix4x4::InvertRT使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Matrix4x4
的用法示例。
在下文中一共展示了Matrix4x4::InvertRT方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GenerateTexel
void CTexelNormalMethod::GenerateTexel(size_t iTexel, CConversionMeshInstance* pMeshInstance, CConversionFace* pFace, CConversionVertex* pV1, CConversionVertex* pV2, CConversionVertex* pV3, raytrace::CTraceResult* tr, const Vector& vecUVPosition, raytrace::CRaytracer* pTracer)
{
CConversionFace* pHitFace = tr->m_pMeshInstance->GetMesh()->GetFace(tr->m_iFace);
Vector vecHitNormal = pHitFace->GetNormal(tr->m_vecHit, tr->m_pMeshInstance);
// Build rotation matrix
Matrix4x4 mObjectToTangent;
Vector t = pFace->GetBaseVector(vecUVPosition, 0, pMeshInstance);
Vector b = pFace->GetBaseVector(vecUVPosition, 1, pMeshInstance);
Vector n = pFace->GetBaseVector(vecUVPosition, 2, pMeshInstance);
mObjectToTangent.SetForwardVector(t);
mObjectToTangent.SetUpVector(b);
mObjectToTangent.SetRightVector(n);
mObjectToTangent.InvertRT();
Vector vecTangentNormal = mObjectToTangent*vecHitNormal;
m_pGenerator->GetParallelizer()->LockData();
m_avecNormalValues[iTexel] += vecTangentNormal;
m_pGenerator->MarkTexelUsed(iTexel);
m_pGenerator->GetParallelizer()->UnlockData();
}