我正在使用对象加载器加载一个基本的立方体(几何体(,我想获得一个线框视图。
它没有出现!
当我从一个three.js基元中使用(otherGeometry(-时,它会用以下代码渲染它:
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/90/three.min.js"></script>
<script src="https://threejs.org/examples/js/controls/OrbitControls.js"></script>
<script src="https://threejs.org/examples/js/loaders/OBJLoader.js"></script>
var material = new THREE.MeshBasicMaterial({color: 0xffffff});
var objLoader = new THREE.OBJLoader();
var geometry = objLoader.parse(testObj);
var otherGeometry = new THREE.BoxGeometry(100, 100, 5);
var geo = new THREE.WireframeGeometry(geometry);
var mat = new THREE.LineBasicMaterial({color: 0xff0000, linewidth: 1});
var wireframe = new THREE.LineSegments(geo, mat);
scene.add(wireframe);
var testObj = `# cube.obj
#
g cube
v 0.0 0.0 0.0
v 0.0 0.0 1.0
v 0.0 1.0 0.0
v 0.0 1.0 1.0
v 1.0 0.0 0.0
v 1.0 0.0 1.0
v 1.0 1.0 0.0
v 1.0 1.0 1.0
vn 0.0 0.0 1.0
vn 0.0 0.0 -1.0
vn 0.0 1.0 0.0
vn 0.0 -1.0 0.0
vn 1.0 0.0 0.0
vn -1.0 0.0 0.0
f 1//2 7//2 5//2
f 1//2 3//2 7//2
f 1//6 4//6 3//6
f 1//6 2//6 4//6
f 3//3 8//3 7//3
f 3//3 4//3 8//3
f 5//5 7//5 8//5
f 5//5 8//5 6//5
f 1//4 5//4 6//4
f 1//4 6//4 2//4
f 2//1 6//1 8//1
f 2//1 8//1 4//1`;
OBJLoader.parse()
不返回几何体,而是返回THREE.Group
的实例。在特定情况下,必须选择第一个子对象的几何图形。
var group = objLoader.parse( testObj )
var geometry = group.children[ 0 ].geometry;
大大!一个奇妙的线框出现了(◕‿‿◕。)
现场演示:https://jsfiddle.net/f2Lommf5/9671/