From 4a8e6dedeee1feef7e13e4effff7e1eb8b09f721 Mon Sep 17 00:00:00 2001 From: hesuicong Date: Mon, 8 Dec 2025 15:26:54 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=84=E7=90=86=E8=84=96=E5=AD=90=E5=81=8F?= =?UTF-8?q?=E9=BB=84=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libs/MVS/SceneTexture.cpp | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/libs/MVS/SceneTexture.cpp b/libs/MVS/SceneTexture.cpp index e2013d3..e85ad5d 100644 --- a/libs/MVS/SceneTexture.cpp +++ b/libs/MVS/SceneTexture.cpp @@ -3347,7 +3347,7 @@ bool MeshTexture::CreateVirtualFaces6(FaceDataViewArr& facesDatas, FaceDataViewA } //*/ - if (validViewsSize<=0) + if (validViewsSize<=0&&false) { //* // int nSize = sortedViews.size(); // (sortedViews.size() > 3) ? 3 : sortedViews.size(); @@ -3466,7 +3466,7 @@ bool MeshTexture::CreateVirtualFaces6(FaceDataViewArr& facesDatas, FaceDataViewA } //*/ } - else if (validViewsSize>0&&validViewsSize<=2) + else if (validViewsSize>0&&validViewsSize<=2&&false) { /* virtualFaceData.quality = 0; @@ -3569,21 +3569,31 @@ bool MeshTexture::CreateVirtualFaces6(FaceDataViewArr& facesDatas, FaceDataViewA } else { - /* + //* ASSERT(processedFaces > 0); - virtualFaceData.quality /= processedFaces; + // virtualFaceData.quality /= processedFaces; #if TEXOPT_FACEOUTLIER != TEXOPT_FACEOUTLIER_NA - virtualFaceData.color /= processedFaces; + // virtualFaceData.color /= processedFaces; #endif - */ + + virtualFaceData.quality = 0; + #if TEXOPT_FACEOUTLIER != TEXOPT_FACEOUTLIER_NA + virtualFaceData.color = Point3f::ZERO; + #endif + //*/ + /* // 如果所有视图都被排除,保留原始平均值 - if (validIndices.empty()) { + if (validIndices.empty() || validViews.size() <= 0) { // virtualFaceData.quality = avgQuality; #if TEXOPT_FACEOUTLIER != TEXOPT_FACEOUTLIER_NA // virtualFaceData.color = avgColor; #endif - virtualFaceData.quality = medianQuality; - virtualFaceData.color = medianColor; + // virtualFaceData.quality = medianQuality; + // virtualFaceData.color = medianColor; + virtualFaceData.quality /= processedFaces; + #if TEXOPT_FACEOUTLIER != TEXOPT_FACEOUTLIER_NA + virtualFaceData.color /= processedFaces; + #endif } else { // 使用过滤后的视图重新计算平均值 @@ -3600,6 +3610,7 @@ bool MeshTexture::CreateVirtualFaces6(FaceDataViewArr& facesDatas, FaceDataViewA virtualFaceData.quality = totalQuality2 / validIndices.size(); virtualFaceData.color = totalColor2 / validIndices.size(); } + //*/ } } else