我正在嘗試對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