Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Скелетная анимация [Delphi, Windows]


Страницы:   1 2

Старик ©   (2005-10-04 06:26:00) 

Привет кодеры
Кто-нибудь может поделиться сорцами склетеной анимации под OpenGL на языке C++/Delphi? А то уж замучался совсем!

ЗЫ: ГЛ-Сцену не предлагать - там все слишком завязано под их систему.


Kavi   (2005-12-02 19:24:00) [1]

Стоп три кости это аппаратная анимация а indexed  не аппаратнаю что-ли так выходит, три кости у меня без проблем работает, только если по кускам модель резать как-то не хорошо выходит больше придется вызывать drawprimitive больше тормозов, да и еще наверно много глюков повалит


Sapersky   (2005-12-02 18:44:00) [2]

Стало быть, не знают, раз молчат - вряд ли только из вредности :)
Я вот тоже не знаю, но скажу :)
Во-первых, следи, чтобы описание FVF соответствовало реальной структуре.
Ещё, такое впечатление, что у тебя все виды анимаций перемешаны. Попробуй для начала без indexed vertex blending. То, что без него можно всего 3 кости - это вряд ли; я так понимаю - за один вызов можно отрендерить фрагмент модели с 3 костями. Всего костей, допустим, штук 30 - значит, рисуем модель за 10 циклов. На высокополигональных моделях должно быть быстрее, чем блокировка буфера.
Кстати, в примере из SDK, насколько помню, обычная аппаратная анимация работала быстрее indexed. Хотя, может, это у меня на старой карте (GF2) indexed толком не поддерживается, поэтому и тормозит.


Kavi   (2005-12-02 18:15:00) [3]

Неужели никто не знает, подскажите пожалуйста!!!!


Kavi   (2005-12-01 19:11:00) [4]

для каждого кадра вручную просчитывается положение модели и загоняется в буфер- это я уже делал очень медленно все это каждый раз запирать вершинный буфер


Sapersky   (2005-12-01 14:52:00) [5]

Если "вообще без панятия что здесь указывать" и SDK не помогает - лучше для начала разобраться с софтверной анимацией из примера c DelphiGFX (т.е. для каждого кадра вручную просчитывается положение модели и загоняется в буфер). Чтобы понять как вообще работает скелетная анимация.
По SDK это понять действительно трудно, т.к. там описывается аппаратная анимация. Что-то засунул на вход, что-то на выходе получилось. Как получилось - фиг знает :) А в указанном примере все преобразования можно отследить по исходнику.


Kavi   (2005-12-01 12:19:00) [6]

Не понимаю потому-что не работает вот и все у меня хоть ход мыслей правилен или ошибка где-то есть.


П7   (2005-12-01 10:13:00) [7]

Почему все понимают, а ты не понимаешь?


Kavi   (2005-12-01 09:12:00) [8]

delphigfx что-ли я об этом знаю есть исходник на opengl и directx так капался я вних ни сторочки не нашел на ответ, а доводы свои  напишу по скелетной анимации
вершины у меня такие
type
TCUSTOMVERTEX = packed record
   X, Y, Z : Single;//координаты
   k1,k2,k3:Single;///вес костей
    matrixIndicese:dword;//индексы костей
//nBone1,nBone2,nBone3,nBone4:byte; //или так сам не знаю
   nX, nY, nZ : Single;  ///нормали
   Color : DWORD;
   U, V : Single;////текстурные координаты
 end;
const
D3DFVF_CUSTOMVERTEX  =D3DFVF_XYZB4 or D3DFVF_LASTBETA_UBYTE4  or D3DFVF_NORMAL or   D3DFVF_TEX1  or D3DFVF_DIFFUSE;

////.. тутрисую
SetRenderState(D3DRS_INDEXEDVERTEXBLENDENABLE, dword(TRUE));
SetRenderState(D3DRS_VERTEXBLEND,D3DVBF_1WEIGHTS) ;//вообще без //панятия что здесь указывать,
SetRotateXMatrix(matRotateX,KartaOb[i2][4]);
SetRotateyMatrix(matRotateY,KartaOb[i2][5]);
SetRotatezMatrix(matRotatez,KartaOb[i2][6]);
SetTranslateMatrix(matTranslate,KartaOb[i2][1] ,KartaOb[i2][2],KartaOb[i2][3]);
SetTransform(D3DTS_WORLDMATRIX(nomkost),MatrixMul(matTranslate,MatrixMul( MatrixMul( matRotateY,matRotateX),matRotatez)));

а при заполнении вершинного буфера указываю вес первой кости   Vertices.x := Avertices[i][j][0];
         Vertices.y := Avertices[i][j][1];
         Vertices.z := Avertices[i][j][2];
         Vertices.k1:=1;
       Vertices.matrixIndicese :=2;

и не могу я управлять этой кость индексом только при нуле nomkost:=1
D3DTS_WORLDMATRIX(nomkost),
начинают перемещаться но не отвеса кости а просто как по матрице трансвормации простой, и всегда почемуто у меня кусок объекта тянется куда-то вверх в данном случае руки а именно когда указываю SetRenderState(D3DRS_INDEXEDVERTEXBLENDENABLE, dword(TRUE));


XProger   (2005-12-01 06:53:00) [9]

Kavi, я тебя про примеры из официального SDK спрашивал ;)


П7   (2005-12-01 02:19:00) [10]

Не нужно склеивать - подумай, зарисуй, пойми, как всё это должно работать - и напиши.

Это раз. Два - поискать исходники самостоятельно не мог? Я вот с ходу могу назвать тебе один ресурс, но не назову. Намекну - ты от него в 1 клике! (:


Kavi   (2005-12-01 00:24:00) [11]

Да я уже неделю круглые сутки только этим и занимаюсь а исходник спрашиваю потому-что уже начитался статей в которых видишь все какими-то кусками начинаешь что-то склеивать ничего не работает


П7   (2005-12-01 00:19:00) [12]

Ну так раз самомуинтересно, то почему бы самому не попробовать разобраться? А то взяли моду, блин, чуть что не получается - тут же рвуться на форум с криками "Дайте мне исходник!"


Kavi   (2005-12-01 00:03:00) [13]

Почему все какой-то злой умысел видят ну может и не 256 а 255 костей у меня только три кости получилось , да кому игра  вообще будет нужна написанная одним программистом с кривыми набросками моделей я об этом даже не думаю, просто самому интересно.


П7   (2005-11-30 23:19:00) [14]


> Kavi   (30.11.05 21:01) [10]

А 255 костей, значит, уже научился делать? Исходнички ему подавай. Может давай я за тебя игру напишу, с издателем договорюсь, издадим её, а потом тебе бабло на блюдечке принесём. Давай? Ты ведь этого хочешь?


Kavi   (2005-11-30 21:01:00) [15]

у меня есть sdk в формате chm на английском для с++ и так все сухо написано что-ничего нового, а также есть примеры с http://www.clootie.ruно там тоже такие дебри, и везде все пишут как грузить целые меши для анимации и анимировать их а мне нужно так сказать на низком уровне я сам гружу свой формат объектов и хочу сделать свой формат анимации да не пойму почему не как не получается сделать 256 костей


XProger   (2005-11-30 20:03:00) [16]

Kavi, все только что приехали с работы к жене, детям, девушкам, друзьям... им не до тебя щас ;)
А разве в SDK примеров не достаточно?


Kavi   (2005-11-30 19:52:00) [17]

почему все игнорируют


Kavi   (2005-11-30 18:36:00) [18]

Мастера подскажите пожалуйста


Kavi   (2005-11-30 14:08:00) [19]

Может кто-знает как сделать скелетную анимацию под Directx, а точнее как использовать 256 костей а то я уже запарился. мне нормальный пример с полным кодом, а то эти отрывки в интернете в статьях ничего не дают


Георгий   (2005-10-04 20:41:00) [20]

проект здесь http://www.t800.ru/
:)


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо