是否可以去除连接两个网格(颈部下方)的接缝?
我是如何加载模型的:
var model = new THREE.Object3D();
var jsonLoader = new THREE.JSONLoader();
jsonLoader.load( "models/one.js", function(geometry, material){
var mesh = new THREE.Mesh( geometry, new THREE.MeshPhongMaterial() );
model.add( mesh );
} );
jsonLoader.load( "models/two.js", function(geometry, material){
var mesh = new THREE.Mesh( geometry, new THREE.MeshPhongMaterial());
model.add( mesh );
model.scale.set(4,4,4);
model.position.y = -3.5;
scene.add(model);
} );
答案 0 :(得分:1)
看起来两个网格的边界处的面法线非常不同,它们相遇。这就是为什么边框处的灯光看起来非常不同,因此呈现出接缝般的外观。我相信如果你调整你的模型,使边缘颈部的法线指向相同的方向,这样灯光就会得到平滑的过渡。请允许我用糟糕的画面展示:
Three.js会遮挡第一个例子,以便根据法线方向将光线显示为锐角。第二个应该是顺利的。
如何完成此操作取决于用于创建网格的建模软件。如果你使用Three.js为你自动生成法线(法线不包括在模型数据中),我不确定如何轻松修复它(可能合并几何,组合共享顶点,然后让three.js重新生成法线可以起作用。)