我想加载3D模型并在threejs中创建线框。我怎样才能达到这种效果?非常感谢。
这是我现在拥有的代码,但是它不起作用。
var loader = new THREE.GLTFLoader();
loader.load('name.gltf', function(geometry, materials) {
var material = new THREE.MeshLambertMaterial();
var mesh = new THREE.Mesh(geometry, material);
group = new THREE.Object3D();
group.add(mesh);
scene.add(group);
});
答案 0 :(得分:3)
根据GLTFLoader docs,回调的参数是一个带有.scene
属性的对象,其中包含您的模型。像任何嵌套的three.js对象一样,您可以使用.traverse()
修改材料。
var loader = new THREE.GLTFLoader();
loader.load('name.gltf', function(gltf) {
var object = gltf.scene;
object.traverse((node) => {
if (!node.isMesh) return;
node.material.wireframe = true;
});
scene.add(object);
});
答案 1 :(得分:-1)
var material = new THREE.MeshLambertMaterial({wireframe:true});