Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

three.js dashed line material on linesegments not working

in Three.js i'm trying to draw a cube with dashed line edges but the lines are still showing as solid. Here's my code:

    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 )

can anyone see where I'm going wrong here? or is it just not possible with this workflow?

like image 933
treeseal7 Avatar asked Sep 14 '25 15:09

treeseal7


1 Answers

You want use LineDashedMaterial with EdgesGeometry.

To use LineDashedMaterial the line must have line distances specified.

Use a pattern like so:

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

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

geometry = new THREE.EdgesGeometry( geometry );

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

line.computeLineDistances();

scene.add( line );

three.js r.92

like image 57
WestLangley Avatar answered Sep 17 '25 06:09

WestLangley