2017-01-16 182 views
-1

我想在我的3D世界绘制路径的路径,但班线是没有用的。谁能帮我?! 像this imageThreejs绘制纹理

现在我固定我的问题

  1. 我想绘制一条路径,并与纹理填充

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

这种方式有两个问题1:线宽不支持Windows,2:LineBasicMaterial不支持纹理

  • 所以我在谷歌搜索找到类Three.MeshLine。线宽正常,但纹理映射不好。质地代码有:var loader = new THREE.TextureLoader(); loader.load('assets/images.png', function(texture) { strokeTexture = texture; strokeTexture.wrapS = strokeTexture.wrapT = THREE.RepeatWrapping; strokeTexture.repeat.set(5, 1); strokeTexture.needsUpdate = true; init() }); 不管是什么环境的质地和MeshLineMaterial,结果不是我想要的结果图像:result image
  • +1

    你试过的代码在哪里? – Dekel

    +3

    我看到这是您在Stack Overflow上的第一个问题,欢迎您!请提供一些代码,以便我们可以看到您所尝试的内容,并更好地了解问题的背景,这反过来会帮助我们帮助您。另请参阅[如何提问](http://stackoverflow.com/help/how-to-ask)了解如何更好地提出问题,从而获得更好的答案。 –

    +0

    @Dekel谢谢。这是在我的工作电脑上,我知道threejs。行可能不支持纹理贴图。我想办法做到这一点 –

    回答

    0

    看看https://github.com/spite/THREE.MeshLine - 这是基于网格线的实现。还要注意该网站上的参考资料,可以给你一些见解。

    否则你可能要考虑创建从线的形状。这可以使用THREE.ShapeGeometry-类完成。

    +0

    非常感谢,网格线我是尝试和形状几何。我可以绘制这条路。但不知道如何映射 –