MCPcopy Create free account
hub / github.com/RenderKit/embree / updateEdgeLevels

Function updateEdgeLevels

tutorials/pathtracer/pathtracer_device.cpp:1703–1722  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1701#endif
1702
1703void updateEdgeLevels(ISPCScene* scene_in, const Vec3fa& cam_pos)
1704{
1705 for (unsigned int g=0; g<scene_in->numGeometries; g++)
1706 {
1707 ISPCGeometry* geometry = g_ispc_scene->geometries[g];
1708 if (geometry->type != SUBDIV_MESH) continue;
1709 ISPCSubdivMesh* mesh = (ISPCSubdivMesh*) geometry;
1710#if defined(ISPC)
1711 parallel_for(size_t(0),size_t( (mesh->numFaces+4095)/4096 ),[&](const range<size_t>& range) {
1712 const int threadIndex = (int)TaskScheduler::threadIndex();
1713 for (size_t i=range.begin(); i<range.end(); i++)
1714 updateEdgeLevelBufferTask((int)i,threadIndex,mesh,cam_pos);
1715 });
1716#else
1717 updateEdgeLevelBuffer(mesh,cam_pos,0,mesh->numFaces);
1718#endif
1719 rtcUpdateGeometryBuffer(geometry->geometry,RTC_BUFFER_TYPE_LEVEL,0);
1720 rtcCommitGeometry(geometry->geometry);
1721 }
1722}
1723
1724/* called by the C++ code for initialization */
1725extern "C" void device_init (char* cfg)

Callers 1

device_renderFunction · 0.70

Calls 7

parallel_forFunction · 0.85
rtcUpdateGeometryBufferFunction · 0.85
rtcCommitGeometryFunction · 0.85
updateEdgeLevelBufferFunction · 0.70
beginMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected