Сглаженная интерполяция вершин

Общие вопросы о Unity3D

Сглаженная интерполяция вершин

Сообщение DDDENISSS 21 авг 2013, 23:41

Даны 3 или более координат вершин. Между ними есть другие вершины, координаты которых нужно так вычислить, чтобы получилась окружность, а не просто прямая.
Вообщем как на рисунке.
У вас нет доступа для просмотра вложений в этом сообщении.
Аватара пользователя
DDDENISSS
UNIверсал
 
Сообщения: 439
Зарегистрирован: 11 сен 2011, 20:33

Re: Сглаженная интерполяция вершин

Сообщение waruiyume 22 авг 2013, 00:40

Для 3 вершин
http://docs.unity3d.com/Documentation/S ... Slerp.html
для >3
Кривые Безье (есть в Антерас), NURBS.
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Сглаженная интерполяция вершин

Сообщение DDDENISSS 22 авг 2013, 01:00

waruiyume, Slerp как-то странно работает, если вершина с координатами (0,0,0) то интерполяция будет обычной линейной.
Кривые еще надо как-то вычислить. А NURBS это что?
Аватара пользователя
DDDENISSS
UNIверсал
 
Сообщения: 439
Зарегистрирован: 11 сен 2011, 20:33

Re: Сглаженная интерполяция вершин

Сообщение waruiyume 22 авг 2013, 01:06

Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Сглаженная интерполяция вершин

Сообщение DDDENISSS 23 авг 2013, 23:52

Понял как работает Slerp. Он интерполирует не позицию, а вектор направления. Т.е. после обычной интерполяции там еще вычисляется длинна результирующего вектора. Длинна вычисляется наверно тоже интерполяцией. Странно, но этот метод нативный.

Нужно представить вершины как вектора и вращать их вокруг центра вращения. Осталось понять как вычислить этот центр.
Хотя за центр можно просто среднюю из всех вершин. Или лучше среднюю из каждых 3х вершин.
Аватара пользователя
DDDENISSS
UNIверсал
 
Сообщения: 439
Зарегистрирован: 11 сен 2011, 20:33

Re: Сглаженная интерполяция вершин

Сообщение seaman 24 авг 2013, 00:03

вектор направления...еще вычисляется длинна результирующего вектора

Две не стыкующиеся фразы. Направление не имеет длины.
Но на самом деле там что-то похожее делается. И для этого не нужно что-то "понимать". Нужно просто прочитать мануал по ссылке. Там четко написано:
The direction of the returned vector is interpolated by the angle and its magnitude is interpolated between the magnitudes of from and to.

Отдельно интерполируется направление вектора, отдельно длина.
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Сглаженная интерполяция вершин

Сообщение DDDENISSS 24 авг 2013, 16:32

Конечно направление не имеет длины, но тем не менее вектор имеет.
Поигрался я со Slerp, результат плохой. Как видите на картинке выходит не очень.
У вас нет доступа для просмотра вложений в этом сообщении.
Аватара пользователя
DDDENISSS
UNIверсал
 
Сообщения: 439
Зарегистрирован: 11 сен 2011, 20:33

Re: Сглаженная интерполяция вершин

Сообщение nile 24 авг 2013, 16:48

мб наведет на решение
http://blogs.unity3d.ru/2011/01/extending-unity-editor/
Правда это безье, такая кривая может не проходить через промежуточные вершины
Аватара пользователя
nile
Старожил
 
Сообщения: 848
Зарегистрирован: 25 фев 2011, 17:17

Re: Сглаженная интерполяция вершин

Сообщение DDDENISSS 24 авг 2013, 21:16

nile, для кривой надо вычислять inTangent и outTangent. Это для меня тоже вопрос. Я знаю только как вычислить так, чтобы получилась обычная ломаная прямая.
Возможно если предположить, что три точки лежат на сфере(овале) и вычислить центр этой сферы(овала), то может правильно работало бы.
Аватара пользователя
DDDENISSS
UNIверсал
 
Сообщения: 439
Зарегистрирован: 11 сен 2011, 20:33


Вернуться в Общие вопросы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12