ThreeJS Voxel未固定为网格

时间:2013-10-06 15:29:44

标签: javascript canvas three.js voxel

我正在使用ThreeJS git repo中的体素画家示例。

我已将其更改为体素比示例大。它们不占用X坐标上的一个网格空间,而是占用2个。

然而,这样做意味着翻转网格没有固定在网格上,而是在一侧超过一半,而在另一侧超过一半。

enter image description here

这是我的代码:

// In the example the geometry is set to (50, 50, 50)
self.rollOverGeo = new THREE.CubeGeometry(100, 50, 50);
self.rollOverMaterial = new THREE.MeshBasicMaterial({
        color: 0xff0000,
    opacity: 0.5,
    transparent: true
});
self.rollOverMesh = new THREE.Mesh(self.rollOverGeo, self.rollOverMaterial);

self.rollOverMesh.position = new THREE.Vector3(0, 25, 0);

有谁知道这是为什么?

1 个答案:

答案 0 :(得分:1)

几何体以其局部坐标系中的原点为中心。您需要像这样翻译几何体:

rollOverGeo = new THREE.CubeGeometry( 100, 50, 50 );
rollOverGeo.applyMatrix( new THREE.Matrix4().makeTranslation( 25, 0, 0 ) );

cubeGeo = new THREE.CubeGeometry( 100, 50, 50 );
cubeGeo.applyMatrix( new THREE.Matrix4().makeTranslation( 25, 0, 0 ) );

three.js r.61