【问题标题】:any modular mesh workflow for three.js? Example repeating objectsthree.js 的任何模块化网格工作流程?示例重复对象
【发布时间】:2015-08-03 22:04:32
【问题描述】:

我试图弄清楚如何让网格重复并复制或克隆它,以便它与对应的对齐。我相信可能有两部分代码。

  1. 一个设置对象的轴心
  2. 捕捉到最后一个对象枢轴也许它是那个时候的子对象?

任何帮助将不胜感激。

【问题讨论】:

    标签: three.js modular


    【解决方案1】:

    您的问题我不太清楚,但请考虑以下几点:

    var overall = new THREE.Object3D();
    for (var i=0; i<10; i+=1) {
      var tet = new THREE.Mesh(new THREE.TetrahedronGeometry(),
           new THREE.MeshLambertMaterial({color:0x909090}));
      tet.position.set(i-5,0,0);
      overall.add(tet);
    }
    

    现在overall 对象由十个独立的四面体组成。

    或者,您可能只需要一个网格,所以:

    var tetGeo = new THREE.TetrahedronGeometry();
    var compGeo = new THREE.Geometry();
    var mv = new THREE.Matrix4();
    for (var i=0; i<10; i+=1) {
      var nt = tetGeo.clone();
      mv.makeTranslation(i-5,0,0);
      nt.appplyMatrix(mv);
      compGeo.merge(nt);
    }
    var overallMesh = new THREE.Mesh(compGeo,
           new THREE.MeshLambertMaterial({color:0x909090}));
    

    【讨论】:

    • 感谢您的回复,如果我不清楚我的意思本质上是这样的,我深表歉意:在该对象上创建一个对象集枢轴点(例如将枢轴更改为右下角),将现有对象偏移克隆为左或右捕捉到最后创建的对象枢轴点。所以基本上我们可以通过最后一个受尊重的对象枢轴点并排捕捉重复的对象。
    • 我会试验你提供的代码,我相信你提供的代码会做以下事情:如果索引小于 10 加 1,在 for 循环中它会创建一个克隆的 TetrahedronGeometry,制作矩阵x 轴上的平移小于 5,并合并几何。所以这个整体网格将作为 9 个孩子的父母?是这样的吗?
    • 是的。这里没有像 Maya 或 Blender 那样的“枢轴点”概念。但是第一个例子,为了使用这样的程序语言,创建了一个包含十个较小网格的组,而第二个例子使一个大对象与十个较小的对象合并。
    猜你喜欢
    • 1970-01-01
    • 2020-07-03
    • 1970-01-01
    • 2011-12-20
    • 2010-12-08
    • 2015-12-06
    • 1970-01-01
    • 1970-01-01
    • 2016-02-02
    相关资源
    最近更新 更多