如何添加线宽比1的线框? 与使用LineBasicMaterials一样,linewidth属性不起作用,我无法使其与MeshLines一起使用。
谢谢
PS
loader.load('assets/' + baseName + '.obj', function (object) {
object.traverse(function (child) {
if (child instanceof THREE.Mesh) {
child.material.map = texture;
let geo = new THREE.EdgesGeometry( child.geometry ); // or WireframeGeometry
let mat = new THREE.LineMaterial( {
color: 0x000000,
linewidth: 10, // in pixels
vertexColors: THREE.VertexColors,
} );
let wireframe = new THREE.LineSegments( geo, mat );
child.add( wireframe );
child.material.emissive.r = 0.98;
child.material.emissive.g = 0.98;
child.material.emissive.b = 0.98;
}
});
答案 0 :(得分:0)
当前的WebGL2基于OpenGL ES 3.0。在台式机上,它运行在OpenGL 4或ANGLE上,而两者都限制为1个线框。
您可以使用THREE.MeshLine
引用:https://github.com/spite/THREE.MeshLine
var line = new MeshLine();
line.setGeometry( geometry ); //Create your own required geometry
line.setGeometry( geometry, function( p ) { return 2; } ); // makes width 2 * lineWidth
请参考原始文档以获取更多见识。
PS:到目前为止,还没有简单的方法(内部工作在逻辑上更简单)来使WebGL的线条更粗。