I'm trying to draw a rotating 3D coordinate system using Three.js. I want the axes to have some thickness, which so far I have accomplished using LineBasicMaterial's linewidth parameter.
The following code works for me since I am not on Windows:
var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window. innerHeight, 0.1, 1000 );
var renderer = new THREE.WebGLRenderer();
renderer.setSize( window.innerWidth, window.innerHeight );
document.body.appendChild( renderer.domElement );
var triad = new THREE.Geometry();
triad.vertices.push( new THREE.Vector3( 0, 0, 0 ) );
triad.vertices.push( new THREE.Vector3( 10, 0, 0 ) );
triad.vertices.push( new THREE.Vector3( 0, 0, 0 ) );
triad.vertices.push( new THREE.Vector3( 0, 10, 0 ) );
triad.vertices.push( new THREE.Vector3( 0, 0, 0 ) );
triad.vertices.push( new THREE.Vector3( 0, 0, 10 ) );
var line_mat = new THREE.LineBasicMaterial({'linewidth': 3});
var frame = new THREE.Line(triad, line_mat, THREE.LinePieces);
scene.add( frame );
camera.position.z = 40;
function render() {
requestAnimationFrame(render);
frame.rotation.x += 0.1;
frame.rotation.y += 0.02;
renderer.render(scene, camera);
}
render();
Unfortunately, there is a limitation on linewidth on Windows due to the ANGLE library, see this question: Thickness of lines using THREE.LineBasicMaterial
What can I use as a workaround so that this displays correctly on Windows?