彻底抛弃虚拟面
This commit is contained in:
1 parent
56ad2c49cb
commit
fb20fcf2c6
1 file changed
+12
@@ -14889,6 +14889,12 @@ bool MeshTexture::CreateVirtualFacesForExistingUV(VirtualFaceMap& virtualFaceMap
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
virtualFaceMap.resize(scene.mesh.faces.size());
|
||||||
|
for (FIndex i = 0; i < (FIndex)scene.mesh.faces.size(); ++i) {
|
||||||
|
virtualFaceMap[i].faces = {i};
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
|
||||||
// 验证faces数组的大小
|
// 验证faces数组的大小
|
||||||
size_t numFaces = scene.mesh.faces.size();
|
size_t numFaces = scene.mesh.faces.size();
|
||||||
size_t numVertices = scene.mesh.vertices.size();
|
size_t numVertices = scene.mesh.vertices.size();
|
||||||
@@ -18734,6 +18740,12 @@ bool Scene::TextureMesh(unsigned nResolutionLevel, unsigned nMinResolution, unsi
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ✅✅✅ 关键修复:重新计算拓扑(否则 faceFaces 是坏的)
|
||||||
|
mesh.ListIncidenteFaces();
|
||||||
|
mesh.ListIncidenteFaceFaces();
|
||||||
|
mesh.ComputeNormalFaces();
|
||||||
|
mesh.ListBoundaryVertices();
|
||||||
|
|
||||||
// 纯可见性计算(初始化faceNeighbors)
|
// 纯可见性计算(初始化faceNeighbors)
|
||||||
if (!texture.ComputePureFaceVisibility(fOutlierThreshold, nIgnoreMaskLabel, views)) {
|
if (!texture.ComputePureFaceVisibility(fOutlierThreshold, nIgnoreMaskLabel, views)) {
|
||||||
// ❗ 兜底:如果ComputePureFaceVisibility没初始化faceNeighbors,手动填充
|
// ❗ 兜底:如果ComputePureFaceVisibility没初始化faceNeighbors,手动填充
|
||||||
|
|||||||
Reference in new issue
Block a user