【发布时间】:2014-04-30 06:17:48
【问题描述】:
我正在尝试优化基于图像像素数据渲染立方体的场景:
http://jsfiddle.net/majman/4sukB/
代码只是检查图像中的每个像素并相应地创建和定位立方体网格。
但是,正如您所看到的,如果您打开线框,则会出现大量不必要的内部面。
我正在使用 mergeVertices 和 THREE.GeometryUtils.merge - 所以事情得到了部分优化。
我遇到了比较合并几何体的所有面的this approach,但是因为每个立方体面现在都是一对三角形 - 它们很难比较,因为相邻面的两个三角形将被翻转。
我也看过 minecraft 示例,但我无法理解这种方法。
【问题讨论】:
-
修改
BoxGeometry构造函数,使相邻立方体的对角线始终对齐,而不是相互交叉。然后,具有相同质心的面必须是背靠背的。 -
感谢韦斯特!在几何体创建后,我曾尝试调整面的 a、b、c 属性,但没有成功。
-
似乎在r67 中删除了 centroid/computeCentroid。无法真正弄清楚为什么,但现在事情又出问题了。 @WestLangley 除了修改更多原始 src 之外,还有什么变通办法?
-
自己计算。
centroid.addVectors( va, vb ).add( vc ).divideScalar( 3 );
标签: javascript three.js