我正在Tree.js上做一个项目(NICE lib!)。
我有问题。当光线在盒子内部制作时,rayCaster不起作用。
我在这里有一个例子:https://jsfiddle.net/manumid/7sqd6xzs/7/ (摘自https://github.com/mrdoob/three.js/issues/3969)。
盒子材料是THREE.BackSide,我正在使用MultiMaterial因为我需要代表一个具有不同纹理的房间。材料是这样的:
var materials = [
new THREE.MeshBasicMaterial({color:0xff0000,
side:THREE.BackSide}), // Right
new THREE.MeshBasicMaterial({color:0x00ff00,
side:THREE.BackSide}), // Left
new THREE.MeshBasicMaterial({color:0x0000ff,
side:THREE.BackSide}), // Top
new THREE.MeshBasicMaterial({color:0x222222,
side:THREE.BackSide}), // Bottom
new THREE.MeshBasicMaterial({color:0xffff00,
side:THREE.BackSide}), // Back
new THREE.MeshBasicMaterial({color:0x00ffff,
side:THREE.BackSide}), // Front
];
var cubeSidesMaterial = new THREE.MultiMaterial(materials);
var roomGeometry = new THREE.BoxGeometry(4, 4, 4);
var newRoom = new THREE.Mesh(roomGeometry, cubeSidesMaterial);
当光线是从外面制作时,有交叉点,但是与盒子的外表面相对(它可能是一个错误吗?外部面没有纹理!)。这可以从交叉口的距离看出。
无论如何,作为一个时间解决方案,我可以将个别平面加入一个小组。
谢谢!