Выбор формата анимированной модели персонажа. (3 стр)
MrShoor | Участник | www | 11 янв. 2018 | 19:44 | #30 |
---|
Mikle
Представь idle анимация на персонаже. Два ключевых кадра. В этих двух кадрах какие то части тела модели движутся очень и очень слабо. Настолько слабо, что после компрессии половина вершин становится не подвижной. Когда треугольник большой - пофигу, ибо смотрится норм. Когда треугольник мелкий - то это приводит к тому, что треугольник растягивается между ключевыми кадрами очень сильно, и меняет свою форму.
А теперь представь, что компрессия приводит к тому, что для половины вершин между ключевыми кадрами движение отсутствует по одной/двум осям. Оно же реально будет бурлить, как будто черви под кожей. И по иронии судьбы это будет лучше всего заметно на idle анимации когда персонаж в покое. Ибо как я уже сказал в idle анимации очень много вершин меняют свое положение чуть чуть.
Представь idle анимация на персонаже. Два ключевых кадра. В этих двух кадрах какие то части тела модели движутся очень и очень слабо. Настолько слабо, что после компрессии половина вершин становится не подвижной. Когда треугольник большой - пофигу, ибо смотрится норм. Когда треугольник мелкий - то это приводит к тому, что треугольник растягивается между ключевыми кадрами очень сильно, и меняет свою форму.
А теперь представь, что компрессия приводит к тому, что для половины вершин между ключевыми кадрами движение отсутствует по одной/двум осям. Оно же реально будет бурлить, как будто черви под кожей. И по иронии судьбы это будет лучше всего заметно на idle анимации когда персонаж в покое. Ибо как я уже сказал в idle анимации очень много вершин меняют свое положение чуть чуть.
Mikle | Модератор | www | 11 янв. 2018 | 23:02 | #31 |
---|
DODge
> У меня дома есть готовый тестовый проект на чистом VB6, как ты любишь :)
Звучит заманчиво :), я бы посмотрел.
MrShoor
> В этих двух кадрах какие то части тела модели движутся очень и очень слабо
Да всё понятно, какие-то части движутся слабо, какие-то сильнее. То есть это не чистый перенос, при чистом переносе все вертексы движутся одинаково, о чём я и написал ещё в п.26.
> У меня дома есть готовый тестовый проект на чистом VB6, как ты любишь :)
Звучит заманчиво :), я бы посмотрел.
MrShoor
> В этих двух кадрах какие то части тела модели движутся очень и очень слабо
Да всё понятно, какие-то части движутся слабо, какие-то сильнее. То есть это не чистый перенос, при чистом переносе все вертексы движутся одинаково, о чём я и написал ещё в п.26.
MrShoor | Участник | www | 11 янв. 2018 | 23:09 | #32 |
---|
Mikle
> То есть это не чистый перенос, при чистом переносе все вертексы движутся
> одинаково, о чём я и написал ещё в п.26.
Это может быть даже чистый перенос. У тебя вершины округляются то в одну то в другую сторону.
Вот я взял красную ломаную линию, и сделал перенос. Потом нарисовал синим "округленный" шейп. Посмотри как сильно они отличаются:
> То есть это не чистый перенос, при чистом переносе все вертексы движутся
> одинаково, о чём я и написал ещё в п.26.
Это может быть даже чистый перенос. У тебя вершины округляются то в одну то в другую сторону.
Вот я взял красную ломаную линию, и сделал перенос. Потом нарисовал синим "округленный" шейп. Посмотри как сильно они отличаются:

Правка: 11 янв. 2018 23:12
Mikle | Модератор | www | 11 янв. 2018 | 23:15 | #33 |
---|
MrShoor
> У тебя вершины округляются то в одну то в другую сторону.
А теперь нарисуй с учётом того, что координаты вертексов в ключевых кадрах уже округлены. В таком случае при переносе округление ВСЕХ вертексов будет в одну сторону. Да, ошибки, но не "кипение".
> У тебя вершины округляются то в одну то в другую сторону.
А теперь нарисуй с учётом того, что координаты вертексов в ключевых кадрах уже округлены. В таком случае при переносе округление ВСЕХ вертексов будет в одну сторону. Да, ошибки, но не "кипение".
Правка: 11 янв. 2018 23:16
MrShoor | Участник | www | 11 янв. 2018 | 23:20 | #34 |
---|
Mikle
> А теперь нарисуй с учётом того, что координаты вертексов в ключевых кадрах уже
> округлены. В таком случае при переносе округление ВСЕХ вертексов будет в одну
> сторону.
Так, да, но ведь так никто не делает. Как ты это себе представляешь? Аниматор такой, задал позу, потом нажал кнопочку округлить, а опотом "подвинул"? Ну опять же, повороты + скейлы сразу же отваливаются.
Собственно "кипение" получается в результате сохранения нормальной анимации в 3д пакете в формат md2.
> А теперь нарисуй с учётом того, что координаты вертексов в ключевых кадрах уже
> округлены. В таком случае при переносе округление ВСЕХ вертексов будет в одну
> сторону.
Так, да, но ведь так никто не делает. Как ты это себе представляешь? Аниматор такой, задал позу, потом нажал кнопочку округлить, а опотом "подвинул"? Ну опять же, повороты + скейлы сразу же отваливаются.
Собственно "кипение" получается в результате сохранения нормальной анимации в 3д пакете в формат md2.
Правка: 11 янв. 2018 23:21
Mikle | Модератор | www | 11 янв. 2018 | 23:27 | #35 |
---|
MrShoor
> Аниматор такой, задал позу, потом нажал кнопочку округлить, а опотом "подвинул"?
А он и не мог на некруглые координаты поставить вертекс, если формат такой.
MrShoor
> Ну опять же, повороты + скейлы сразу же отваливаются
О чём я и написал в п.26 (про скейлы не уточнил), что будь ключевые кадры друг от друга достаточно далеко, проблемы бы не было, но необходимость двигать вертексы по кривой вынуждает делать много ключевых кадров, и именно в них появляются ошибки от округления, которые видно.
> Аниматор такой, задал позу, потом нажал кнопочку округлить, а опотом "подвинул"?
А он и не мог на некруглые координаты поставить вертекс, если формат такой.
MrShoor
> Ну опять же, повороты + скейлы сразу же отваливаются
О чём я и написал в п.26 (про скейлы не уточнил), что будь ключевые кадры друг от друга достаточно далеко, проблемы бы не было, но необходимость двигать вертексы по кривой вынуждает делать много ключевых кадров, и именно в них появляются ошибки от округления, которые видно.
MrShoor | Участник | www | 11 янв. 2018 | 23:59 | #36 |
---|
Mikle
> А он и не мог на некруглые координаты поставить вертекс, если формат такой.
Всмысле не мог? Округление - это результат сохранения в md2. На экране у аниматора вершины без округления.
> А он и не мог на некруглые координаты поставить вертекс, если формат такой.
Всмысле не мог? Округление - это результат сохранения в md2. На экране у аниматора вершины без округления.
barnes | Постоялец | www | 12 янв. 2018 | 2:26 | #37 |
---|
Mikle
> Между кадрами интерполяция происходит во float, откуда пляска?
Вы просто ку2 запустите и все увидите... на статике само собой все ок, а вот на аним моделях вы увидите эффект аля дыхание. Это еще очень хорошо видно на производных мд2 в кингпин и син не смотря на то, что последний исп скелетную анимацию.
> Между кадрами интерполяция происходит во float, откуда пляска?
Вы просто ку2 запустите и все увидите... на статике само собой все ок, а вот на аним моделях вы увидите эффект аля дыхание. Это еще очень хорошо видно на производных мд2 в кингпин и син не смотря на то, что последний исп скелетную анимацию.
Mikle | Модератор | www | 12 янв. 2018 | 9:24 | #38 |
---|
barnes
Что за мода отвечать, не читая. Я прекрасно понимаю, что пляска будет, я играл в Q1-2 и видел её. В п.26 я описал, когда её можно избежать, а когда нельзя, кое-кто меня оспорил, видимо, не читая, и с этого началось.
MrShoor
Я исхожу из того, что моделлер сразу работает с md2, и по ходу работы делал сохранения. Естественно, что при импорте из других форматов пляска возникнет даже там, где её можно было бы избежать.
Что за мода отвечать, не читая. Я прекрасно понимаю, что пляска будет, я играл в Q1-2 и видел её. В п.26 я описал, когда её можно избежать, а когда нельзя, кое-кто меня оспорил, видимо, не читая, и с этого началось.
MrShoor
Я исхожу из того, что моделлер сразу работает с md2, и по ходу работы делал сохранения. Естественно, что при импорте из других форматов пляска возникнет даже там, где её можно было бы избежать.
Надеюсь, с этой темой покончили?
DODge
Мне всё ещё интересно.
DODge | Постоялец | www | 12 янв. 2018 | 12:13 | #40 |
---|
Mikle, u960 и прочие ребята...
Извините, забыл про своё обещание. Сегодня вечером обязательно выложу.
Извините, забыл про своё обещание. Сегодня вечером обязательно выложу.
DODge | Постоялец | www | 13 янв. 2018 | 3:01 | #41 |
---|
Блин, чуть опять не забыл. Держите, и не судите строго. Коду уже больше 10 лет. Советую прочитать код, понять принцип, и сделать всё по своему.
SMD loading & animation
SMD loading & animation
DjeeZ | Постоялец | www | 13 янв. 2018 | 7:53 | #42 |
---|
Ogre .skeleton and .mesh. Готовый экспорт из Макса, Майки, Блендера в xml, можно в бинарный. Код взять из Ogre. Анимация и скелетная и вершинная. Готовые модели для экспериментов.
Чего я не знаю, что это не используют? Может и я узнаю и не буду?
Чего я не знаю, что это не используют? Может и я узнаю и не буду?
Mikle | Модератор | www | 15 янв. 2018 | 9:49 | #44 |
---|
Да уж, разобрался с SMD, портировал пример на dx9.
Модель "вывернута", так как формат ориентирован на OpenGL, простой переворот модели после загрузки выворачивает треугольники, приходится менять CullMode либо переставлять местами вертексы в треугольниках. Direct3D, конечно, позволяет использовать такую систему координат, но как-то не хочется переделывать все наработки.
TriangleList без индексов, вертексы преобразуются софтверно, поэтому модель рисуем через DPUp. Это, конечно, можно попытаться как-то конвертировать в нечто более современное, но стоит ли оно того?
Нашёл ещё вариант - .x-формат. В старом SDK есть примеры на C++ и на C#, разобраться не сложно.
Модель "вывернута", так как формат ориентирован на OpenGL, простой переворот модели после загрузки выворачивает треугольники, приходится менять CullMode либо переставлять местами вертексы в треугольниках. Direct3D, конечно, позволяет использовать такую систему координат, но как-то не хочется переделывать все наработки.
TriangleList без индексов, вертексы преобразуются софтверно, поэтому модель рисуем через DPUp. Это, конечно, можно попытаться как-то конвертировать в нечто более современное, но стоит ли оно того?
Нашёл ещё вариант - .x-формат. В старом SDK есть примеры на C++ и на C#, разобраться не сложно.
Правка: 15 янв. 2018 9:51
/ Форум / Программирование игр / Графика