Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 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.046 c
1-1152825347
DevilDevil
2006-07-14 01:15
2006.08.27
Условная Компиляция


15-1154599112
SerJaNT
2006-08-03 13:58
2006.08.27
8bf


2-1154828672
grisme
2006-08-06 05:44
2006.08.27
FloatToStr


3-1149573959
Scorpio
2006-06-06 10:05
2006.08.27
Создание кусора или что то на него похожее


1-1153251715
Gloomer
2006-07-18 23:41
2006.08.27
Как перекодировать строку из UTF-8 в ANSI?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский