MCPcopy Create free account
hub / github.com/NVIDIAGameWorks/Falcor / updateGeometryStats

Method updateGeometryStats

Source/Falcor/Scene/Scene.cpp:1308–1426  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1306 }
1307
1308 void Scene::updateGeometryStats()
1309 {
1310 auto& s = mSceneStats;
1311
1312 s.meshCount = getMeshCount();
1313 s.meshInstanceCount = 0;
1314 s.meshInstanceOpaqueCount = 0;
1315 s.transformCount = getAnimationController()->getGlobalMatrices().size();
1316 s.uniqueVertexCount = 0;
1317 s.uniqueTriangleCount = 0;
1318 s.instancedVertexCount = 0;
1319 s.instancedTriangleCount = 0;
1320 s.curveCount = getCurveCount();
1321 s.curveInstanceCount = 0;
1322 s.uniqueCurvePointCount = 0;
1323 s.uniqueCurveSegmentCount = 0;
1324 s.instancedCurvePointCount = 0;
1325 s.instancedCurveSegmentCount = 0;
1326 s.sdfGridCount = getSDFGridCount();
1327 s.sdfGridDescriptorCount = getSDFGridDescCount();
1328 s.sdfGridInstancesCount = 0;
1329
1330 s.customPrimitiveCount = getCustomPrimitiveCount();
1331
1332 for (uint32_t instanceID = 0; instanceID < getGeometryInstanceCount(); instanceID++)
1333 {
1334 const auto& instance = getGeometryInstance(instanceID);
1335 switch (instance.getType())
1336 {
1337 case GeometryType::TriangleMesh:
1338 case GeometryType::DisplacedTriangleMesh:
1339 {
1340 s.meshInstanceCount++;
1341 const auto& mesh = getMesh(MeshID::fromSlang(instance.geometryID));
1342 s.instancedVertexCount += mesh.vertexCount;
1343 s.instancedTriangleCount += mesh.getTriangleCount();
1344
1345 auto pMaterial = getMaterial(MaterialID::fromSlang(instance.materialID));
1346 if (pMaterial->isOpaque()) s.meshInstanceOpaqueCount++;
1347 break;
1348 }
1349 case GeometryType::Curve:
1350 {
1351 s.curveInstanceCount++;
1352 const auto& curve = getCurve(CurveID::fromSlang(instance.geometryID));
1353 s.instancedCurvePointCount += curve.vertexCount;
1354 s.instancedCurveSegmentCount += curve.getSegmentCount();
1355 break;
1356 }
1357 case GeometryType::SDFGrid:
1358 {
1359 s.sdfGridInstancesCount++;
1360 break;
1361 }
1362 }
1363 }
1364
1365 for (MeshID meshID{ 0 }; meshID.get() < getMeshCount(); ++meshID)

Callers

nothing calls this directly

Calls 15

getMeshCountFunction · 0.85
getAnimationControllerFunction · 0.85
getCurveCountFunction · 0.85
getSDFGridCountFunction · 0.85
getSDFGridDescCountFunction · 0.85
getCustomPrimitiveCountFunction · 0.85
getGeometryInstanceCountFunction · 0.85
getMaterialFunction · 0.85
getTriangleCountMethod · 0.80
getByteSizeMethod · 0.80
sizeMethod · 0.45
getTypeMethod · 0.45

Tested by

no test coverage detected