如何修复 3d 模型中的“裂缝”?
Posted
技术标签:
【中文标题】如何修复 3d 模型中的“裂缝”?【英文标题】:How can I fix "cracks" in 3d model? 【发布时间】:2021-11-06 18:12:13 【问题描述】:我使用激光扫描仪创建了一个 3D 模型,并尝试使用 three.js 在 webapp 上显示它。
当我在 Blender 或 Unity 上加载该模型时,它看起来不错,但它在带有threejs 和 3D 查看器(默认 Windows 应用程序)的 webapp 中都显示出一些裂缝
如何修复这些裂缝?
我将数据模型导出为 glb 和 obj 文件格式,但两种格式的结果相同。
(3D 查看器上的模型)
(搅拌机上的模型)
( 纹理图像 )
【问题讨论】:
如果切换到最近的纹理过滤,“裂缝”会消失吗?尝试将纹理的minFilter
和magFilter
属性设置为THREE.NearestFilter
。
成功了!谢谢!
【参考方案1】:
仅适用于遇到相同问题的人。我在加载已经包含纹理的 GLB 文件时尝试了此代码。
var loader = new THREE.GLTFLoader();
// model
var model, mat, geo;
loader.load(
// resource URL
"https://xxxxxx/model.glb"
// called when the resource is loaded
function (gltf)
model = gltf.scene;
model.traverse( function( object )
if ((object instanceof THREE.Mesh))
mat = object.material;
geo = object.geometry;
mat.map.minFilter = THREE.NearestFilter;
mat.map.magFilter = THREE.NearestFilter;
);
scene.add(model);
,
// called while loading is progressing
function (xhr)
console.log((xhr.loaded / xhr.total * 100) + '% loaded');
,
// called when loading has errors
function (error)
console.log('An error happened');
console.log(error);
);
【讨论】:
以上是关于如何修复 3d 模型中的“裂缝”?的主要内容,如果未能解决你的问题,请参考以下文章
Solidworks中的3D模型,如何标注两个面之间的距离。