geometry.mergeVertices()仅在渲染时

时间:2015-01-05 21:56:45

标签: javascript three.js

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

2 个答案:

答案 0 :(得分:0)

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

geometry.verticesNeedUpdate()
geometry.elementsNeedUpdate()

告诉three.js顶点和面分别已经改变。您可能还需要调用其他更新函数(例如,如果法线已更改)。更多详情:https://github.com/mrdoob/three.js/wiki/Updates

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

答案 1 :(得分:-1)

好的,这不在文档部分,但您需要使用此示例中演示的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();