2017-08-26 25 views
0

in Three.js破線のエッジで立方体を描画しようとしていますが、線はまだ立体として表示されています。ここに私のコード:three.js破線の線材が機能しない

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

LineDashedMaterialにはEdgesGeometryを使用します。

LineDashedMaterialを使用するには、ジオメトリに線間隔を指定する必要があります。残念ながら、computeLineDistances()は、Geometryの場合にのみ定義されている。computeLineDistances()は、Geometryの場合にのみ定義され、computeLineDistances()は、Geometryに対してのみ定義される。 BufferGeometryEdgesGeometryコンストラクターによって返されるジオメトリの型)には定義されていません。

は結果的に、あなたはあなたが望むものを達成するようにコードを変更する必要があります

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); 

+0

r.87 three.jsおかげで、私は何かが欠けて知っていました! – treeseal7

関連する問題