Загрузка и анимирование SMD файлов при помощи Vertex Blend

Работа с 2D и 3D графикой, видео, звуком.

Модератор: Mikle

djalex777
Постоялец
Постоялец
 
Сообщения: 461
Зарегистрирован: 23.03.2006 (Чт) 16:02

Загрузка и анимирование SMD файлов при помощи Vertex Blend

Сообщение djalex777 » 04.05.2007 (Пт) 12:35

Видел на форуме пример загрузки smd, НО там анимация производится вручную, что сильно сказывается на скорости. Может есть у кого пример анимирования с помощью vertexblend. Нужен пример под DX. Поделитесь please!

GLEB
Бывалый
Бывалый
 
Сообщения: 246
Зарегистрирован: 24.05.2005 (Вт) 12:16

Сообщение GLEB » 12.05.2007 (Сб) 20:25

Да там все считается программно. Сам бы хотел знать как сделать через vertexblend. Но мне кажется в данном случае с smd никак.

Могу только по советовать следующее:
1) В этом примере, я кажется не делал проверку на совпадающие вершины которых не мало, трансформировать надо только не совпадающие вершины, а совпадающие просто приравнивать, будет ~ 30% выиргыш в скорости.
2) Писать часть кода на Си (анимация и рендер) в два раза скорость точно увеличится.
3) Писать все на Си.
Для сравнения:
Проц: Celeron - 1100 MHz.
VB6 (exe) - анимация 15 моделей Барни из HL1? без рендера - 100 фпс.
VC6 (release) - анимация 15 моделей Барни из HL1? без рендера - 300!!!! фпс.
Проверял сам.

djalex777
Постоялец
Постоялец
 
Сообщения: 461
Зарегистрирован: 23.03.2006 (Чт) 16:02

Сообщение djalex777 » 13.05.2007 (Вс) 9:29

Теоретически - если все вершины отсортировать по костям и выводить их тоже для каждой кости, то с vertex blend проблем не возникнет.. Но ведь одной вершине может принадлежать несколько костей. Есть такая програмка HL Model viewer. Она идет вместе с исходником на сях, но под opengl. Разве там каждая вершина считается вручную? С исходником этой проги я ещё не знакомился, просто саму её в действии видел.

GLEB
Бывалый
Бывалый
 
Сообщения: 246
Зарегистрирован: 24.05.2005 (Вт) 12:16

Сообщение GLEB » 13.05.2007 (Вс) 14:53

Есть такая програмка HL Model viewer. Она идет вместе с исходником на сях, но под opengl. Разве там каждая вершина считается вручную? С исходником этой проги я ещё не знакомился, просто саму её в действии видел.

Я копался в ее коде, она сделана на основе кода model viewer из Half-Life 1 SDK. Расчет происходит с помощью функции аналогичной D3DXVec3TransformCoord...
Даже эффект chrome - это не envmap, он также делается программно, путем расчета текстурных координат.
Тем более ни о каком vertex blending-е там не может быть и речи.

djalex777
Постоялец
Постоялец
 
Сообщения: 461
Зарегистрирован: 23.03.2006 (Чт) 16:02

Сообщение djalex777 » 13.05.2007 (Вс) 15:15

Ясно. Но неужели они в самой халфе тоже вручную считают?

GLEB
Бывалый
Бывалый
 
Сообщения: 246
Зарегистрирован: 24.05.2005 (Вт) 12:16

Сообщение GLEB » 13.05.2007 (Вс) 16:43

Но неужели они в самой халфе тоже вручную считают?

А что тут удивительного, халфа 98 года.
Тогда разве можно было через vertexblending?
И тем более она работает как в Software, так и в Hardware. А в Software все ручками... :D


Вернуться в Мультимедиа

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

Сейчас этот форум просматривают: Yandex-бот и гости: 38

    TopList