Триангуляцию Делоне разобрался, реализовал, работает.
Структура данных у меня Треугольник содержащий 3 ребра. В каждом ребре ссылка на конечную точку ребра, ссылка на следующее ребро треугольника, и ссылка на ребро смежного треугольника.
Получившиеся треугольники рекурсивно делим на 4 части. Можно и 2 и 3, но если 4 стороны равнее.
Извините не понял. Я сперва сделал триангуляцию "абы как". Сперва сделал "супер квадрат" из двух треугольников в которые я уже добавлял все точки. Для добавления точки ищу треугольник в который попадает точка и делю его на 3 треугольника. Триангуляция при этом получается весьма плохая, все треугольники тонкие.
Потом зачем мне делить на 4 части? И что делить не понимаю?
Современные видеокарты сами считают триангуляцию. Это для них хорошая задача - параллелится легко.
Тут я не понимаю следующее.
Допустим у нас есть некий меш. Допустим формы метеорита, сфероид. Этот меш соткан из примерно одинаковых треугольников.
Я начинаю его "бурить лазером" при этом в нем образуется дыра.
Вот начало этого процесса еще можно понять.
Вычисляю рейкаст луча с объектом, нахожу точку пересечения и треугольник пересекшийся с лучом.
Теперь я могу например вычитать небольшую сферу из объекта. Вдавливаю ее в объект и образую в нем новые треугольники, тем самым образую дыру от бура. Способ примерный, понятно что это еще не конечный алгоритм.
Непонятно дальше. Вот когда мы пробурили уже насквозь, как узнать точку на тыльной стороне объекта? Ясно что тот же рейкаст даст ее. Если объект небольшой все сработает.
Но я не понимаю каким образом они находят ее на таком объекте как ландшафт. Там дофига треугольников и этот рейкас просто не в состоянии будет работать в реалтайме.
Посоветуйте пожалуйста что то почитать как реализуют такую задачу. Хочу типа лазером дырявить меши.