void MeshBufferReader::setMeshPyramid() { TICK("setupMeshBufferRendering"); visibilityMaskPyramid.resize(m_nNumMeshLevels); outputInfoPyramid.resize(m_nNumMeshLevels); outputPropPyramid.resize(m_nNumMeshLevels); for(int i = 0; i < m_nNumMeshLevels; ++i) { int numVertices = currentMeshPyramid.levels[i].numVertices; visibilityMaskPyramid[i].resize(numVertices,true); vector<CoordinateType> proj2D; proj2D.resize(2); proj2D[0] = 0; proj2D[1] = 0; outputInfoPyramid[i].meshData = std::move(currentMeshPyramid.levels[i]); // outputInfoPyramid[i].meshDataGT = currentMeshPyramid.levels[i]; // outputInfoPyramid[i].meshDataColorDiff = currentMeshPyramid.levels[i]; outputInfoPyramid[i].nRenderLevel = i; outputInfoPyramid[i].meshProj.resize(numVertices, proj2D); // outputInfoPyramid[i].meshProjGT = outputInfoPyramid[i].meshProj; outputInfoPyramid[i].visibilityMask.resize(numVertices, true); memset(outputInfoPyramid[i].camPose, 0, 6*sizeof(double)); UpdateRenderingData(outputInfoPyramid[i], KK, camPose, outputInfoPyramid[i].meshData); //////////////////////////// outputPropPyramid if(meshLoadingSettings.loadProp) { outputPropPyramid[i].meshData = std::move(propMeshPyramid.levels[i]); // outputPropPyramid[i].meshDataGT = propMeshPyramid.levels[i]; // outputPropPyramid[i].meshDataColorDiff = propMeshPyramid.levels[i]; outputPropPyramid[i].nRenderLevel = i; outputPropPyramid[i].meshProj.resize(numVertices, proj2D); // outputPropPyramid[i].meshProjGT = outputPropPyramid[i].meshProj; outputPropPyramid[i].visibilityMask.resize(numVertices, true); memset(outputPropPyramid[i].camPose, 0, 6*sizeof(double)); UpdateRenderingData(outputPropPyramid[i], KK, camPose, outputPropPyramid[i].meshData); } // update the visibility of each vertex if(useVisibilityMask) { TICK( "visibilityMask" + std::to_string(i) ); UpdateVisibilityMaskGL(outputInfoPyramid[i], visibilityMaskPyramid[i], KK, camPose, m_nWidth, m_nHeight); if(meshLoadingSettings.loadProp) UpdateVisibilityMaskGL(outputPropPyramid[i], visibilityMaskPyramid[i], KK, camPose, m_nWidth, m_nHeight); TOCK( "visibilityMask" + std::to_string(i) ); } } TOCK("setupMeshBufferRendering"); }
void MeshSequenceReader::trackerUpdate(TrackerOutputInfo& outputInfo) { TICK("visualRenderingUpdate"); UpdateRenderingData(outputInfo, KK, camPose, currentMesh); UpdateRenderingDataFast(outputInfo, KK, currentMesh); if(useVisibilityMask) { UpdateVisibilityMaskGL(outputInfo, visibilityMask, KK, camPose, m_nWidth, m_nHeight); //UpdateVisibilityMask(outputInfo, visibilityMask, m_nWidth, m_nHeight); UpdateColorDiff(outputInfo, visibilityMask, colorImageSplit); } TOCK("visualRenderingUpdate"); }