0

我需要绘制一个带有图像纹理的数千个正方形,尽管缩放但它必须具有稳定的大小,并且它必须是可点击的。所有正方形的图像纹理相同。

使用 ParticleSystem 不允许我让它可点击。

如果我使用 CubeGeometry,我必须在每个缩放事件上进行缩放,而且速度非常非常慢。创建每个人都可以点击的数千个元素的最佳方法是什么?

我使用 THREE.WebGLRenderer 61。

事件点击处理程序:

function onDocumentMouseClick(event) {
        layerMap.update();
        var vector = new THREE.Vector3((event.clientX / window.innerWidth) * 2 - 1, -(event.clientY / window.innerHeight) * 2 + 1, 0.5);
        var ray = projector.pickingRay(vector, camera);
        var intersects = ray.intersectObjects(objects);
        if (intersects.length > 0) {
            intersects[0].object.material.color.setHex(Math.random() * 0xffffff);
        }
    }
4

1 回答 1

1

我找到了解决方案,我使用 ParticleSystem 来显示许多带有纹理的对象。在单击事件中,我检查所有顶点以找到最接近单击点的顶点,如果距离足够近,我将调用所需的方法。它工作得非常快。

于 2013-09-19T10:53:48.633 回答