gpt4 book ai didi

javascript - 边缘几何 : raycasting not accurate

转载 作者:行者123 更新时间:2023-11-30 11:29:48 24 4
gpt4 key购买 nike

我在 PlaneGeometry 上使用 EdgesGeometry,它似乎在鼠标事件中创建了一个更大的碰撞框。然而,当使用 CircleGeometry 时,这一点并不明显。我有以下内容:

    createPanel = function(width, height, widthSegments) {

var geometry = new THREE.PlaneBufferGeometry(width, height, widthSegments);

var edges = new THREE.EdgesGeometry( geometry );

var panel = new THREE.LineSegments( edges, new THREE.LineBasicMaterial({
color: 0xffffff }));

return panel;

}

var tile = createPanel(1.45, .6, 1);

现在我正在使用一个名为 RayInput 的库,它为我完成所有光线转换,但想象一下我只是使用普通的光线转换器来处理鼠标事件。没有边缘并且仅使用平面,碰撞边界是准确的。

添加 EdgesGeometry 后,垂直碰撞箱似乎显着增加,因此,当我什至没有单击该对象时,就会检测到该对象被单击。水平碰撞箱似乎仅略有增加。我以前从未使用过 EdgesGeometry,所以有人知道发生了什么吗?

提前致谢。

最佳答案

如果您针对 THREE.LineTHREE.LineSegments 进行光线转换,则应将 Line.threshold 参数设置为适合的值场景的规模:

raycaster.params.Line.threshold = 0.1; // default is 1

三.js r.114

关于javascript - 边缘几何 : raycasting not accurate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46687628/

24 4 0