|
|
|
@ -5863,17 +5863,17 @@ bool MeshTexture::CreateVirtualFaces64(FaceDataViewArr& facesDatas, FaceDataView |
|
|
|
[](const auto& a, const auto& b) { return a.second > b.second; }); |
|
|
|
[](const auto& a, const auto& b) { return a.second > b.second; }); |
|
|
|
|
|
|
|
|
|
|
|
// 打印排序结果
|
|
|
|
// 打印排序结果
|
|
|
|
DEBUG_EXTRA("视图覆盖统计(按覆盖数量从高到低排序):"); |
|
|
|
// DEBUG_EXTRA("视图覆盖统计(按覆盖数量从高到低排序):");
|
|
|
|
int totalCoverage = 0; |
|
|
|
int totalCoverage = 0; |
|
|
|
for (const auto& [idxView, coverage] : viewCoverage) { |
|
|
|
for (const auto& [idxView, coverage] : viewCoverage) { |
|
|
|
const Image& imageData = images[idxView]; |
|
|
|
const Image& imageData = images[idxView]; |
|
|
|
DEBUG_EXTRA("视图 %s (索引 %d): 覆盖 %d 个面片", |
|
|
|
// DEBUG_EXTRA("视图 %s (索引 %d): 覆盖 %d 个面片",
|
|
|
|
imageData.name.c_str(), idxView, coverage); |
|
|
|
// imageData.name.c_str(), idxView, coverage);
|
|
|
|
totalCoverage += coverage; |
|
|
|
totalCoverage += coverage; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
DEBUG_EXTRA("排序后视图数量: %zu,最大覆盖: %d, 共%d", viewCoverage.size(), |
|
|
|
// DEBUG_EXTRA("排序后视图数量: %zu,最大覆盖: %d, 共%d", viewCoverage.size(),
|
|
|
|
viewCoverage.empty() ? 0 : viewCoverage[0].second, totalCoverage); |
|
|
|
// viewCoverage.empty() ? 0 : viewCoverage[0].second, totalCoverage);
|
|
|
|
//*/
|
|
|
|
//*/
|
|
|
|
|
|
|
|
|
|
|
|
float thMaxColorDeviation = 130.0f; |
|
|
|
float thMaxColorDeviation = 130.0f; |
|
|
|
@ -6833,7 +6833,7 @@ bool MeshTexture::CreateVirtualFaces65(FaceDataViewArr& facesDatas, FaceDataView |
|
|
|
|
|
|
|
|
|
|
|
std::map<IIndex, IIndex> mapProcessedViewIdx; |
|
|
|
std::map<IIndex, IIndex> mapProcessedViewIdx; |
|
|
|
|
|
|
|
|
|
|
|
printf("----------------\n"); |
|
|
|
// printf("----------------\n");
|
|
|
|
|
|
|
|
|
|
|
|
// 选择 Top-K 个视图(例如 K=5)
|
|
|
|
// 选择 Top-K 个视图(例如 K=5)
|
|
|
|
int highScoreCount1 = 0; |
|
|
|
int highScoreCount1 = 0; |
|
|
|
@ -6877,7 +6877,7 @@ bool MeshTexture::CreateVirtualFaces65(FaceDataViewArr& facesDatas, FaceDataView |
|
|
|
} |
|
|
|
} |
|
|
|
//*/
|
|
|
|
//*/
|
|
|
|
|
|
|
|
|
|
|
|
printf("--------\n"); |
|
|
|
// printf("--------\n");
|
|
|
|
|
|
|
|
|
|
|
|
// 获取中心面片的法线 (注意变量名是 normalCenter, 不是 centerNormal)
|
|
|
|
// 获取中心面片的法线 (注意变量名是 normalCenter, 不是 centerNormal)
|
|
|
|
const Normal& normalCenter = scene.mesh.faceNormals[virtualFaceCenterFaceID]; |
|
|
|
const Normal& normalCenter = scene.mesh.faceNormals[virtualFaceCenterFaceID]; |
|
|
|
@ -7096,7 +7096,7 @@ bool MeshTexture::CreateVirtualFaces65(FaceDataViewArr& facesDatas, FaceDataView |
|
|
|
++nViewCoverage; |
|
|
|
++nViewCoverage; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
printf("--------\n"); |
|
|
|
// printf("--------\n");
|
|
|
|
|
|
|
|
|
|
|
|
nViewCoverage = 0; |
|
|
|
nViewCoverage = 0; |
|
|
|
nViewCoverageMax = 200; |
|
|
|
nViewCoverageMax = 200; |
|
|
|
|