Javascript Three.js导入的模型抗锯齿
我将OBJ模型导入到场景中,但它没有抗锯齿,我不知道如何使其平滑。搅拌机打开它,使它变得平滑 此外,内置几何图形(例如,Javascript Three.js导入的模型抗锯齿,javascript,html,three.js,Javascript,Html,Three.js,我将OBJ模型导入到场景中,但它没有抗锯齿,我不知道如何使其平滑。搅拌机打开它,使它变得平滑 此外,内置几何图形(例如,新的三点球面测量法(4,20,20);)是平滑的 渲染器: var renderer = new THREE.WebGLRenderer({antialias: true, alpha: true}); 材料: var modelMaterial = new THREE.MeshPhongMaterial({ color: 0xb9d5ff,
新的三点球面测量法(4,20,20);
)是平滑的
渲染器:
var renderer = new THREE.WebGLRenderer({antialias: true, alpha: true});
材料:
var modelMaterial = new THREE.MeshPhongMaterial({
color: 0xb9d5ff,
ambient: 0xfff660,
shininess: 100,
wireframe: false,
transparent: true,
opacity: 0.8,
side: THREE.DoubleSide,
combine: THREE.MixOperation
});
进口:
var manager = new THREE.LoadingManager();
manager.onProgress = function(item, loaded, total) {
console.log(item, loaded, total);
};
var loader = new THREE.OBJLoader(manager);
loader.load('BlondeElexis-nude.obj', function(object) {
object.traverse(function(child) {
if (child instanceof THREE.Mesh) {
console.log(child);
child.material = modelMaterial;
}
});
object.position.y = 0;
object.scale.x = 6;
object.scale.y = 6;
object.scale.z = 6;
human = object;
scene.add(human);
});
结果:
发现:
child.geometry.computeVertexNormals();
结果不是最好的,但总比没有好。创建三个渲染器的代码在哪里。WebGLRenderer?更新了问题
var renderer=new THREE.WebGLRenderer({antialas:true,alpha:true})
事实上,任何选项都不会影响此消除锯齿不是这里的问题,而是网格的平滑组。OBJ应该能够处理此问题,因此请检查您的OBJ导出器以获取此选项以包括平滑组。使用ComputeVertexNormals()命令将生成一个完全平滑的对象,这对于有机对象可能是正常的,但您应该检查导出器和OBj导入器。如果OBJ不适合,可以尝试另一种格式you@GuyGood谢谢你,我将强调建模者在这方面的重要性。目前,我只是在玩示例模型来制作一些草图。GuyGood的评论是正确的,您需要在3d程序中设置模型的平滑组,并确保导出时包含平滑组。