非缓冲测量法Geometry.merge()
在合并时采用矩阵应用于几何体:
.merge ( geometry, matrix, materialIndexOffset )
但是,BufferGeometry.merge()
不采用矩阵:
.merge ( bufferGeometry, offset )
我已经确认将两个BufferGeomtries合并在一起不会保留正在合并的对象的转换。
以下是踢球者:我想这样做,无需在任何步骤转换为Geometry。我想在BufferGeometry中完成所有操作。
这可能吗?
答案 0 :(得分:1)
我们一直在(主要是单个对象)进行sich合并,以维护JSON对象导出的转换。
要进行转换,我们需要运行一个小函数
getFixedMesh = function(geometry) {
var fixedmesh = null;
switch (geometry.constructor.name) {
case 'BufferGeometry':
var srcmesh = new THREE.Mesh(geometry);
srcmesh.updateMatrix();
return THREE.BufferGeometryUtils.mergeBufferGeometries([srcmesh.geometry]);
default:
var srcmesh = new THREE.Mesh(geometry);
srcmesh.updateMatrix();
fixedmesh = new THREE.Geometry();
fixedmesh.merge(srcmesh.geometry, srcmesh.matrix);
return fixedmesh;
}
}
这适用于许多安排,但LineSegments上还是有一些错误(及其他?)
答案 1 :(得分:0)
BufferGeometry具有.applyMatrix(矩阵)方法,您可以在合并之前将对象“转换”为顶点数据。