【问题标题】:geometry.mergeVertices() only at render timegeometry.mergeVertices() 仅在渲染时
【发布时间】:2015-01-08 01:41:25
【问题描述】:

是否可以仅在渲染时合并顶点?我正在做一系列变形,需要顶点列表保持不变,但是我想合并顶点以获得立方体相机上的平滑反射。有人知道类似于取消合并顶点的命令吗?

【问题讨论】:

    标签: javascript three.js


    【解决方案1】:

    你试过吗?它应该工作。 您需要致电

    geometry.verticesNeedUpdate()
    geometry.elementsNeedUpdate()
    

    告诉three.js,顶点和面分别发生了变化。您可能还需要调用其他更新函数(例如,如果法线发生了变化)。更多细节在这里:https://github.com/mrdoob/three.js/wiki/Updates

    请注意该页面上的注释,即顶点总数不能更改。这可能需要您对临时几何体进行合并,然后将顶点复制到渲染的几何体。

    【讨论】:

      【解决方案2】:

      好的,这不在文档部分,但您需要使用 explode 修饰符,如本示例所示:http://threejs.org/examples/#webgl_geometry_tessellation

      var explodeModifier = new THREE.ExplodeModifier();
      explodeModifier.modify( geometry );
      geometry.computeFaceNormals(); 
      geometry.computeVertexNormals();
      //This will undo the geometry.mergeVertices();
      

      【讨论】:

        猜你喜欢
        • 2016-12-30
        • 2017-06-16
        • 2012-05-02
        • 2022-01-06
        • 2015-10-27
        • 1970-01-01
        • 2015-12-03
        • 1970-01-01
        • 2013-01-20
        相关资源
        最近更新 更多