我正在尝试对TextGeometry的边界框进行光线投射。目前,当点击不在字母或中间字母之间时,raycasting适用于textGeometry。如果点击位于文本字母/ aphabets之间,则没有对象与intersectObjects()相交。当点击介于字母之间时,我需要raycast与textGeo对象相交。Raycast到TextGeometry的边界框而不是网格
我定义TextGeometry为:
var textGeo = new THREE.TextGeometry(text, {
size: size,
height: 1,
font: 'helvetica'
});
textGeo.computeBoundingBox();
var textMaterial = new THREE.MeshBasicMaterial({ color: fontColor });
var textMesh = new THREE.Mesh(textGeo, textMaterial);
寻找解决方案,与boundingBox的会后似乎是最好的办法。请咨询或指出如何实现这一目标。任何想法或提示如何做到这一点?或者如果有任何目前可用的方法。
如何使raycast与边界框相交?
这是我想过的东西,但正在寻找不同的方法。当我创建许多Textgeos时,希望避免每个人都有重复对象的开销。寻找一种可以与现有几何体配合使用的解决方案,而不必为每个现有几何体创建一个新的解决方案。 – avg
你不会创建一个重复的对象,但是对于光线投射来说,这是一个低得多的细节对象。所以它实际上是一个双赢的局面,因为您不需要对textgeos(可能会变得相当大)的几何图形进行光线投射。你只需要对平行四边形的六个面进行光线投射。 – gaitat
我也喜欢你的方法,但对于我想要做的场景,我发现上面的方法效果更好。感谢您的回答和意见,非常感谢。 – avg