Javascript Threejs使用纹理绘制路径

Javascript Threejs使用纹理绘制路径,javascript,three.js,Javascript,Three.js,我想在我的3D世界中绘制一条路径,但直线类没有用处。谁能帮我?! 像 现在我解决了我的问题 我想画一条路径,并用纹理填充它 var SUBDIVISIONS = 20; geometry = new THREE.Geometry(); var curve = new THREE.QuadraticBezierCurve3(); curve.v0 = new THREE.Vector3(0, 0, 110); curve.v1 = new THREE.Vector3(0, 200, 110); c

我想在我的3D世界中绘制一条路径,但直线类没有用处。谁能帮我?! 像

现在我解决了我的问题

  • 我想画一条路径,并用纹理填充它

    var SUBDIVISIONS = 20;
    geometry = new THREE.Geometry();
    var curve = new THREE.QuadraticBezierCurve3();
    curve.v0 = new THREE.Vector3(0, 0, 110);
    curve.v1 = new THREE.Vector3(0, 200, 110);
    curve.v2 = new THREE.Vector3(200, 200, 110);
    for (j = 0; j < SUBDIVISIONS; j++) {
        geometry.vertices.push( curve.getPoint(j / SUBDIVISIONS) )
    }
    
    material = new THREE.LineBasicMaterial( { color: 0xff0000, linewidth: 5 } );
    line = new THREE.Line(geometry, material);
    scene.add(line);
    
    var细分=20;
    几何体=新的三个。几何体();
    var曲线=新的三次方BezierCurve3();
    curve.v0=新的三个矢量3(0,0,110);
    curve.v1=新的三个向量3(0,200,110);
    curve.v2=新的三个向量3(200200110);
    对于(j=0;j<细分;j++){
    几何。顶点。推(曲线。获取点(j/细分))
    }
    材质=新的三个.LineBasicMaterial({颜色:0xff0000,线宽:5});
    直线=新的三条直线(几何、材料);
    场景。添加(行);
    
  • 这种方式有两个问题:1:Windows不支持线宽,2:LineBasicMaterial不支持纹理

  • 所以我在谷歌上搜索,找到了class 3.MeshLine。线宽可以,但纹理贴图不精细。纹理代码:
    var loader=new THREE.TextureLoader();
    loader.load('assets/images.png',函数(纹理){
    strokeTexture=纹理;
    strokeTexture.wrapps=strokeTexture.wrapT=THREE.RepeatWrapping;
    strokeTexture.repeat.set(5,1);
    strokeTexture.needsUpdate=true;
    init()
    } );
    无论纹理和MeshLineMaterial的设置如何,结果都不是我想要的结果图像:
  • 看看-这是一个基于网格的线的实现。请注意该网站上的参考资料,这可能会给你一些见解


    否则,您可能需要考虑从直线创建形状。这可以使用
    THREE.ShapeGeometry
    -类来完成。

    您尝试的代码在哪里?我知道这是您关于堆栈溢出的第一个问题,欢迎!请提供一些代码,以便我们了解您的尝试,更好地理解您问题的背景,从而帮助我们帮助您。另请参阅如何提出更好的问题,从而得到更好的答案。@Dekel谢谢。它在我的工作电脑上,我知道3J。线条贴图可能不受支持。我想知道怎么做it@RaymonddelaCroix谢谢,这是我在这个网站上的第一篇文章。我的英语很差。但是我需要帮助看起来你需要有人帮你写代码。非常感谢,我试着用网格线来塑造几何体。我能画出这条路。但不知道如何映射