Главная задача.
Луч задан как начальная точка и направление.
Реализовать нахождение ближайшего от начальной точки пересечения луча с B-сплайн поверхностью.
В качестве разминки сначала можно решить аналогичную задачу для поверхностей Безье.
Данная задача осложнена тем, что пересечений может быть несколько, а найти нужно именно одно ближайшее. Аналитически для произвольной B-сплайн поверхности задача не решается, поэтому необходимо продумать решение с помощью численного метода. Численный метод "сваливается" в какое-то значение в зависимости от начального приближения. На данный момент мне не видится способ выбрать такое начальное приближение и численный метод, чтобы гарантированного получить именно желаемое решение. Поэтому нужно применять хитрости. Похоже, что имеются работы, преодолевающие описанную сложность. Например:
https://www.cs.utah.edu/~shirley/papers/raynurbs.pdfhttps://hal.inria.fr/hal-01268109v2/document
Главная задача. Луч задан как начальная точка и направление. Реализовать нахождение ближайшего от начальной точки пересечения луча с B-сплайн поверхностью. В качестве разминки сначала можно решить аналогичную задачу для поверхностей Безье. Данная задача осложнена тем, что пересечений может быть несколько, а найти нужно именно одно ближайшее. Аналитически для произвольной B-сплайн поверхности задача не решается, поэтому необходимо продумать решение с помощью численного метода. Численный метод "сваливается" в какое-то значение в зависимости от начального приближения. На данный момент мне не видится способ выбрать такое начальное приближение и численный метод, чтобы гарантированного получить именно желаемое решение. Поэтому нужно применять хитрости. Похоже, что имеются работы, преодолевающие описанную сложность. Например: https://www.cs.utah.edu/~shirley/papers/raynurbs.pdf https://hal.inria.fr/hal-01268109v2/document