![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Анимация X файлов + волосы на текстуре [Delphi, DirectX (Direct3D), Windows]
Колбасьев © (2004-08-19 22:34:00)Меня интересует слудующие:
1. анимация хранится в X файле по кадрам (кадр - модель в новом положении)?
2. как проигрывать анимацию
Это связано с тем, что я хочу сделать анимированный файл, а не несколько отдельных Х файлов с положением монстра (как я видел в некоторых даже "коммерческих" играх)
3. Как сделать траву, волосы и т.п. на полигоне (не отдельными объекты). Слышал что-то про использование шейдеров (попутно мне кто-нибудь объяснит, что такое шейдерный язык и для чего это вообще нужно?)?.
Колбасьев (2004-08-20 17:41:00) [1]Спасибо, но кажеться придется помучиться :-[
Sapersky (2004-08-20 16:07:00) [2]Ну вот Q2 Model Viewer:
http://dxlab.host.sk/zips/d3d8sam8.zip
Sapersky (2004-08-20 10:49:00) [3]1. анимация хранится в X файле по кадрам (кадр - модель в новом положении)?
Вряд ли. Точно не знаю, самому интересно, но судя по примеру SkinnedMesh из SDK, где анимация скелетная - не по кадрам.
Если по кадрам (это проще, конечно), то можно начинать с формата Quake2 - некий Lord Trancos в своё время написал пример, ну или в GLScene посмотреть можно. Большое кол-во готовых моделей существует, хотя набор анимаций, прямо скажем, небогатый (по сравнению с HL, например).
Проигрывать, если не скелетная - элементарно. Берём "текущий" кадр и следующий, линейно интерполируем между ними. Некоторые видеокарты могут эту интеполяцию (tweening) делать аппаратно (см. примеры Dolphin/DolphinVS из DX SDK... второй, кстати, на шейдерах... вот, в частности, зачем они нужны :)).
По скелетной тут нужно лекцию читать, да и сам не вполне разбираюсь. В хелпе к DX SDK есть, хотя и не очень понятно написано (см. skinned mesh, skinning).
3. Как сделать траву, волосы и т.п. на полигоне (не отдельными объекты).
В DX9 SDK (clootie.narod.ru) был пример - кажется, как раз отдельными объектами :)
Шейдер - программа обработки вершины/пикселя. Для того, чтобы почувствовать, зачем это нужно, следует написать с нуля продвинутый полностью софтверный движок, а потом перейти на железо без шейдеров :)
Подробнее объяснять не возьмусь - если поискать, наверняка можно найти информацию (на GameDev.ru точно что-то было).