Форум: "Игры";
Текущий архив: 2006.08.27;
Скачать: [xml.tar.bz2];
ВнизСкелетная анимация Найти похожие ветки
← →
Старик (2005-10-04 06:26) [0]Привет кодеры
Кто-нибудь может поделиться сорцами склетеной анимации под OpenGL на языке C++/Delphi? А то уж замучался совсем!
ЗЫ: ГЛ-Сцену не предлагать - там все слишком завязано под их систему.
← →
Eleepod (2005-10-04 08:30) [1]Попробуй посмотреть на
http://www.gamedev.ru/coding/10917.shtml
и
http://www.tmtlib.narod.ru/skeletalanimation.htm
А вообще, в Google много чего есть...
← →
Старик (2005-10-04 13:33) [2]Спасибо, вы мне очень помогли :)
← →
Георгий (2005-10-04 13:53) [3]Под Delphi - http://www.t800.ru/files.htm
там есть с рендером в OpenGL и DirectX, только самые первые кривые версии
Буду вопросы по скелетной анимации - пиши мне tmtlib@narod.ru, я когда-то много с этим намаялся. В принципе и под tmt pascal можешь скачать, я там обращение к pointer-ам по tmtpascal-евски делал (в скобках плюсовал к переменной смещение). Это можно переделать под delphi (сменить на массивы и т.п.), только заниматься этим некогда!
← →
XProger © (2005-10-04 15:55) [4]Георгий, ага попался! Что там с проектом русского RE? ;)
Помнится года 2-3 назад демку качал :)
← →
Георгий (2005-10-04 20:41) [5]проект здесь http://www.t800.ru/
:)
← →
Kavi (2005-11-30 14:08) [6]Может кто-знает как сделать скелетную анимацию под Directx, а точнее как использовать 256 костей а то я уже запарился. мне нормальный пример с полным кодом, а то эти отрывки в интернете в статьях ничего не дают
← →
Kavi (2005-11-30 18:36) [7]Мастера подскажите пожалуйста
← →
Kavi (2005-11-30 19:52) [8]почему все игнорируют
← →
XProger © (2005-11-30 20:03) [9]Kavi, все только что приехали с работы к жене, детям, девушкам, друзьям... им не до тебя щас ;)
А разве в SDK примеров не достаточно?
← →
Kavi (2005-11-30 21:01) [10]у меня есть sdk в формате chm на английском для с++ и так все сухо написано что-ничего нового, а также есть примеры с http://www.clootie.ru но там тоже такие дебри, и везде все пишут как грузить целые меши для анимации и анимировать их а мне нужно так сказать на низком уровне я сам гружу свой формат объектов и хочу сделать свой формат анимации да не пойму почему не как не получается сделать 256 костей
← →
П7 (2005-11-30 23:19) [11]
> Kavi (30.11.05 21:01) [10]
А 255 костей, значит, уже научился делать? Исходнички ему подавай. Может давай я за тебя игру напишу, с издателем договорюсь, издадим её, а потом тебе бабло на блюдечке принесём. Давай? Ты ведь этого хочешь?
← →
Kavi (2005-12-01 00:03) [12]Почему все какой-то злой умысел видят ну может и не 256 а 255 костей у меня только три кости получилось , да кому игра вообще будет нужна написанная одним программистом с кривыми набросками моделей я об этом даже не думаю, просто самому интересно.
← →
П7 (2005-12-01 00:19) [13]Ну так раз самому интересно, то почему бы самому не попробовать разобраться? А то взяли моду, блин, чуть что не получается - тут же рвуться на форум с криками "Дайте мне исходник!"
← →
Kavi (2005-12-01 00:24) [14]Да я уже неделю круглые сутки только этим и занимаюсь а исходник спрашиваю потому-что уже начитался статей в которых видишь все какими-то кусками начинаешь что-то склеивать ничего не работает
← →
П7 (2005-12-01 02:19) [15]Не нужно склеивать - подумай, зарисуй, пойми, как всё это должно работать - и напиши.
Это раз. Два - поискать исходники самостоятельно не мог? Я вот с ходу могу назвать тебе один ресурс, но не назову. Намекну - ты от него в 1 клике! (:
← →
XProger © (2005-12-01 06:53) [16]Kavi, я тебя про примеры из официального SDK спрашивал ;)
← →
Kavi (2005-12-01 09:12) [17]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));
← →
П7 (2005-12-01 10:13) [18]Почему все понимают, а ты не понимаешь?
← →
Kavi (2005-12-01 12:19) [19]Не понимаю потому-что не работает вот и все у меня хоть ход мыслей правилен или ошибка где-то есть.
← →
Sapersky (2005-12-01 14:52) [20]Если "вообще без панятия что здесь указывать" и SDK не помогает - лучше для начала разобраться с софтверной анимацией из примера c DelphiGFX (т.е. для каждого кадра вручную просчитывается положение модели и загоняется в буфер). Чтобы понять как вообще работает скелетная анимация.
По SDK это понять действительно трудно, т.к. там описывается аппаратная анимация. Что-то засунул на вход, что-то на выходе получилось. Как получилось - фиг знает :) А в указанном примере все преобразования можно отследить по исходнику.
← →
Kavi (2005-12-01 19:11) [21]для каждого кадра вручную просчитывается положение модели и загоняется в буфер- это я уже делал очень медленно все это каждый раз запирать вершинный буфер
← →
Kavi (2005-12-02 18:15) [22]Неужели никто не знает, подскажите пожалуйста!!!!
← →
Sapersky (2005-12-02 18:44) [23]Стало быть, не знают, раз молчат - вряд ли только из вредности :)
Я вот тоже не знаю, но скажу :)
Во-первых, следи, чтобы описание FVF соответствовало реальной структуре.
Ещё, такое впечатление, что у тебя все виды анимаций перемешаны. Попробуй для начала без indexed vertex blending. То, что без него можно всего 3 кости - это вряд ли; я так понимаю - за один вызов можно отрендерить фрагмент модели с 3 костями. Всего костей, допустим, штук 30 - значит, рисуем модель за 10 циклов. На высокополигональных моделях должно быть быстрее, чем блокировка буфера.
Кстати, в примере из SDK, насколько помню, обычная аппаратная анимация работала быстрее indexed. Хотя, может, это у меня на старой карте (GF2) indexed толком не поддерживается, поэтому и тормозит.
← →
Kavi (2005-12-02 19:24) [24]Стоп три кости это аппаратная анимация а indexed не аппаратнаю что-ли так выходит, три кости у меня без проблем работает, только если по кускам модель резать как-то не хорошо выходит больше придется вызывать drawprimitive больше тормозов, да и еще наверно много глюков повалит
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2006.08.27;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.219 c