MCPcopy Create free account
hub / github.com/NVIDIA-RTX/Donut / UpdateCache

Method UpdateCache

src/engine/View.cpp:63–88  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

61}
62
63void PlanarView::UpdateCache()
64{
65 if (m_CacheValid)
66 return;
67
68 m_PixelOffsetMatrix = affineToHomogeneous(translation(
69 float3(2.f * m_PixelOffset.x / (m_Viewport.maxX - m_Viewport.minX),
70 -2.f * m_PixelOffset.y / (m_Viewport.maxY - m_Viewport.minY), 0.f)));
71 m_PixelOffsetMatrixInv = inverse(m_PixelOffsetMatrix);
72
73 m_ViewProjMatrix = affineToHomogeneous(m_ViewMatrix) * m_ProjMatrix;
74 m_ViewProjOffsetMatrix = m_ViewProjMatrix * m_PixelOffsetMatrix;
75
76 m_ViewMatrixInv = inverse(m_ViewMatrix);
77 m_ProjMatrixInv = inverse(m_ProjMatrix);
78 m_ViewProjMatrixInv = m_ProjMatrixInv * affineToHomogeneous(m_ViewMatrixInv);
79 m_ViewProjOffsetMatrixInv = m_PixelOffsetMatrixInv * m_ViewProjMatrixInv;
80
81 m_ReverseDepth = (m_ProjMatrix[2][2] <= 0.f);
82 m_ViewFrustum = frustum(m_ViewProjMatrix, m_ReverseDepth);
83 m_ProjectionFrustum = frustum(m_ProjMatrix, m_ReverseDepth);
84
85 m_IsMirrored = determinant(m_ViewMatrix.m_linear) < 0.f;
86
87 m_CacheValid = true;
88}
89
90void PlanarView::EnsureCacheIsValid() const
91{

Calls 4

affineToHomogeneousFunction · 0.85
translationFunction · 0.85
frustumClass · 0.85
inverseFunction · 0.50

Tested by

no test coverage detected