Я пытаюсь raycast to boundingBox в TextGeometry. В настоящее время raycasting работает для textGeometry, когда клик находится на буквах вокруг или между буквами. Если щелчок находится между текстовыми буквами/афаэлями, объект не пересекается с intersectObjects(). Мне нужен raycast, чтобы пересечь объект textGeo, когда щелчок находится между буквами.Raycast to boundingBox 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
вы не будете создавать дублирующий объект, а гораздо более низкий уровень детализации, идеально подходящий для raycasting. поэтому на самом деле это беспроигрышная ситуация, потому что вам не нужно раскошеливаться на геометрию textgeos (которая может стать довольно большой). Вам нужно будет только ограбить шесть лиц параллелограмма. – gaitat
Мне тоже нравится ваш подход, но для сценария, который я хотел сделать, я нашел, что подход выше работает лучше. Спасибо за ваш ответ и комментарии, очень ценится. – avg