【问题标题】:Combining multiple line geometries into a single geometry将多个线几何图形组合成一个几何图形
【发布时间】:2013-06-18 21:33:06
【问题描述】:

我对 Three.js 完全陌生,我正在尝试为实体模型添加边。

问题是,如果我单独添加边缘,渲染会变慢。所以考虑将几何图形组合成一个单一的几何图形,以便渲染速度加快一点。

我遇到了这个:https://github.com/mrdoob/three.js/issues/1370 但是使用上述技术后输出不正确。

到目前为止我的代码如下:

/* Edge Data */
var vertices = edgeData.vertices;
var edges = edgeData.edges;

// Final Geometry
var combinedGeo = new THREE.Geometry();

/* Add lines */
for( var i=0; i<edges.length; i++){
    var geom = new THREE.Geometry();
    for (var j=0; j<edges[i].length; j++){
        var v1 = vertices[edges[i][j]];
        geom.vertices.push(new THREE.Vector3(v1[0], v1[1], v1[2]));
    }

    // var line = new THREE.Line(geom, material, THREE.LinePieces);
    THREE.GeometryUtils.merge( combinedGeo, geom);
    // scene.add(line);
}
var edgesGeo = new THREE.Line(combinedGeo, material, THREE.LineStrip);
scene.add(edgesGeo);

【问题讨论】:

  • 不需要合并。首先将点对添加到您的geometry,然后使用LinePieces 设置创建一个Line。例如,参见 AxisHelper.js 代码。
  • @WestLangley 感谢您的解决方案。有效。不知何故,几何图形被缓存了,所以需要一些时间来验证。
  • 太棒了!我把我的评论变成了答案。 :-)

标签: three.js


【解决方案1】:

不需要合并。首先将点对添加到您的geometry,然后使用LinePieces 设置创建一个Line。例如,参见THREE.AxisHelper 代码。

【讨论】:

    猜你喜欢
    • 2014-04-26
    • 2019-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-24
    • 1970-01-01
    相关资源
    最近更新 更多