2017-08-26 496 views
0

在Three.js我試圖繪製一個虛線邊緣的多維數據集,但行仍顯示爲固體。這是我的代碼:three.js虛線材料上linesegments不工作

var mat_line = new THREE.LineDashedMaterial({ color: "black", dashSize: 1, gapSize: 1 }); 

    var geometry = new THREE.BoxGeometry(10, 10, 10); 
    geometry.computeLineDistances(); 

    var cube = new THREE.Mesh(geometry, mat_cube); 
    scene.add(cube)  

    var edges = new THREE.EdgesGeometry(geometry) 
    var line = new THREE.LineSegments(edges, mat_line) 
    scene.add(line) 

任何人都可以看到我要去哪裏錯了嗎?或者這對於這個工作流程來說是不可能的?

回答

2

您想要使用LineDashedMaterialEdgesGeometry

要使用LineDashedMaterial,幾何體必須具有指定的線距。

不幸的是,computeLineDistances()僅針對Geometry定義;它沒有被定義爲BufferGeometry,這是EdgesGeometry構造函數返回的幾何類型。

因此,你需要修改你的代碼像這樣以達到你想要什麼:

var material = new THREE.LineDashedMaterial({ color: "black", dashSize: 1, gapSize: 1 }); 

var geometry = new THREE.BoxGeometry(10, 10, 10); 

geometry = new THREE.EdgesGeometry(geometry); // BufferGeometry 
geometry = new THREE.Geometry().fromBufferGeometry(geometry); // convert to Geometry 
geometry.computeLineDistances(); 

var line = new THREE.LineSegments(geometry, material); 
scene.add(line); 

three.js所r.87

+0

感謝,知道我失去了一些東西! – treeseal7