优化bug
This commit is contained in:
1 parent
3159aa8b5e
commit
68cb2ea1fc
1 file changed
+11
-4
@@ -5714,7 +5714,7 @@ bool MeshTexture::CreateVirtualFaces64(FaceDataViewArr& facesDatas, FaceDataView
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 如果夹角小于45度(cos(45°) ≈ 0.7071),则计入覆盖
|
// 如果夹角小于45度(cos(45°) ≈ 0.7071),则计入覆盖
|
||||||
float fAngleThreshold = 0.8571; // 0.7071f
|
float fAngleThreshold = 0.7071; // 0.7071f
|
||||||
|
|
||||||
// 初始化数据结构
|
// 初始化数据结构
|
||||||
std::vector<bool> processedFaces(faces.size(), false);
|
std::vector<bool> processedFaces(faces.size(), false);
|
||||||
@@ -5726,7 +5726,8 @@ bool MeshTexture::CreateVirtualFaces64(FaceDataViewArr& facesDatas, FaceDataView
|
|||||||
Util::Progress progress1(_T("计算视图覆盖"), images.size());
|
Util::Progress progress1(_T("计算视图覆盖"), images.size());
|
||||||
for (IIndex idxView = 0; idxView < images.size(); ++idxView) {
|
for (IIndex idxView = 0; idxView < images.size(); ++idxView) {
|
||||||
|
|
||||||
if (mapViewCoverageData.find(idxView) == mapViewCoverageData.end()) {
|
if (mapViewCoverageData.find(idxView) == mapViewCoverageData.end())
|
||||||
|
{
|
||||||
// 插入新对象
|
// 插入新对象
|
||||||
mapViewCoverageData.emplace(idxView, ViewCoverageData(idxView));
|
mapViewCoverageData.emplace(idxView, ViewCoverageData(idxView));
|
||||||
}
|
}
|
||||||
@@ -6005,10 +6006,14 @@ bool MeshTexture::CreateVirtualFaces64(FaceDataViewArr& facesDatas, FaceDataView
|
|||||||
|
|
||||||
IIndexArr filteredCams;
|
IIndexArr filteredCams;
|
||||||
|
|
||||||
|
int nHitCount = 0;
|
||||||
|
int nMaxHit = 400;
|
||||||
int nMaxViewCoverage = 0;
|
int nMaxViewCoverage = 0;
|
||||||
for (const auto& [viewIdx, coverageCount] : viewCoverage) {
|
for (const auto& [viewIdx, coverageCount] : viewCoverage) {
|
||||||
if (nMaxViewCoverage>6)
|
if (nMaxViewCoverage>12)
|
||||||
|
if (nHitCount>nMaxHit)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
auto it_view = mapViewCoverageData.find(viewIdx);
|
auto it_view = mapViewCoverageData.find(viewIdx);
|
||||||
if (it_view == mapViewCoverageData.end()) {
|
if (it_view == mapViewCoverageData.end()) {
|
||||||
continue;
|
continue;
|
||||||
@@ -6042,10 +6047,12 @@ bool MeshTexture::CreateVirtualFaces64(FaceDataViewArr& facesDatas, FaceDataView
|
|||||||
if (!scene.is_face_delete_edge2(strName, virtualFaceCenterFaceID))
|
if (!scene.is_face_delete_edge2(strName, virtualFaceCenterFaceID))
|
||||||
{
|
{
|
||||||
filteredCams.push_back(viewIdx);
|
filteredCams.push_back(viewIdx);
|
||||||
}
|
++nHitCount;
|
||||||
|
|
||||||
|
if (nHitCount>nMaxHit)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
++nMaxViewCoverage;
|
++nMaxViewCoverage;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user