【问题标题】:Threejs draw a path with texturesThreejs用纹理绘制路径
【发布时间】:2017-01-17 23:10:52
【问题描述】:

我想在我的 3D 世界中画一条路径,但是 line 类没有用。谁能帮我?! 赞this image

现在我解决了我的问题

  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:linewidth is not support on Windows ,2: LineBasicMaterial not support texture

  1. 所以我在谷歌上搜索找到类 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

【问题讨论】:

  • 你试过的代码在哪里?
  • 我知道这是您关于 Stack Overflow 的第一个问题,欢迎!请提供一些代码,以便我们可以看到您尝试过的内容并更好地了解您的问题的上下文,这反过来将帮助我们为您提供帮助。另请参阅How To ask,了解如何提出更好的问题,从而获得更好的答案。
  • @Dekel 谢谢。它在我的工作电脑上,我知道threejs。线可能不支持纹理贴图。我想办法做到这一点
  • @RaymonddelaCroix 谢谢这是我在这个网站上的第一篇文章。而且我的英语很差。但我需要帮助
  • 看来您需要有人为您编写代码。

标签: javascript three.js


【解决方案1】:

看看https://github.com/spite/THREE.MeshLine - 它是基于网格线的实现。另请注意该网站上的参考资料,可以为您提供一些见解。

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

【讨论】:

  • 非常感谢,我尝试使用网格线来塑造几何形状。我可以画出这条路。但是不知道怎么映射
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-09
  • 1970-01-01
  • 1970-01-01
  • 2020-11-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多