SMD

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

Модератор: Mikle

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

SMD

Сообщение GLEB » 09.08.2005 (Вт) 11:09

Люди, может у кого есть пример загрузки и анимации SMD-файла. Я нашел какой-то, но он видать на скорую руку переведен с GL на D3D (текстуры неправильно накладываются) да еще и на Delphi. Может есть у кого на VB или VC?

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 12.08.2005 (Пт) 12:14

сколько не смотрел - не видел. наверняка его просто нет.
ХЎ

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

Сообщение GLEB » 04.09.2005 (Вс) 8:56

А может оформить прогу на Delphi в виде Dll, там используется DrawPrimitiveUP, достаточно получить массив вершин из DLL и отрендерить из VB, как вам такое? Просто пример там очень замудрёный.

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 04.09.2005 (Вс) 10:21

GLEB
Хороший ход. :lol:

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

Сообщение GLEB » 07.09.2005 (Ср) 19:22

А никто не знает хотя-бы формат SMD-файла (HL1)? С треугольниками я разобрался, а вот как привязать их к костям, да и как там кости задаются не пойму никак.

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 08.09.2005 (Чт) 14:33

выложи пример на дельфях, может я переделаю
ХЎ

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

Сообщение GLEB » 08.09.2005 (Чт) 17:41


D'alex
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 144
Зарегистрирован: 08.05.2004 (Сб) 20:11
Откуда: Moscow

Сообщение D'alex » 08.09.2005 (Чт) 22:14

Вот может пригодится...
http://www.gamedev.ru/faq/?id=26

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

Сообщение GLEB » 09.09.2005 (Пт) 10:40

Все равно толком ничего не ясно.

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 09.09.2005 (Пт) 18:13

GLEB писал(а):Все равно толком ничего не ясно.


да что ты? ))) будем поглядеть, как время будет.









Леха, вылезай из работы, пошли ППП!!! ППП-пивка полчасика попить
ХЎ

vito
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 15.10.2005 (Сб) 3:52

Сообщение vito » 15.10.2005 (Сб) 4:11

На VC только для milkshape. Но впрочем он SMD он легко декомпилит.
Если такое устроит?

tmtlib
Начинающий
Начинающий
 
Сообщения: 2
Зарегистрирован: 18.10.2005 (Вт) 21:23

Сообщение tmtlib » 06.11.2005 (Вс) 3:14

d3drm писал(а):сколько не смотрел - не видел. наверняка его просто нет.

В принципе я могу написать на VB, когда поставлю компилятор. Я недавно написал статью по этому делу " [url=http://www.tmtlib.narod.ru/skeletal.htm]Всё, что вы хотели знать о проигрывании скелетной анимации фалов Half-Life *.smd.
[/url] " и маленький пример (без наложения текстур). Код по тексту к сожалению Pascal-евский. Постарался сделать всё более понятно, и без кватернионов. Могу и на QBasic всё переписать. Правда давно BASIC-ом не занимался (100 лет)!
Если вас устроит DLL, то покажите мне как вам передавать данные. Пока у меня нет идеи как это лучше сделать. Георгий tmtlib@narod.ru

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

Сообщение GLEB » 06.11.2005 (Вс) 11:52

tmtlib
А почему этот пример http://www.t800.ru/files/smdview2.zip жрет столько оперативки!!! Уже при 2 моделях свободной памяти не остается вообще.

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 06.11.2005 (Вс) 12:54

GLEB писал(а):tmtlib
А почему этот пример http://www.t800.ru/files/smdview2.zip жрет столько оперативки!!! Уже при 2 моделях свободной памяти не остается вообще.


автор забывает очистить память?
ХЎ

tmtlib
Начинающий
Начинающий
 
Сообщения: 2
Зарегистрирован: 18.10.2005 (Вт) 21:23

Сообщение tmtlib » 06.11.2005 (Вс) 16:12

Это какой-то старинный пример. Лучше посмотрите http://www.tmtlib.narod.ru/best/primersrc.rar
Где, кстати, памяти не остаётся? При компиляции или при работе программы?

Вообщем в smdview2 память по-нормальному не выделяется: делал давно, и я там сделал огромные фиксированные массивы. Попробуйте сбавить эти числа:
const nodes_n = 99;
vertexes_n = 3000;
times_n = 99;
Animations_n = 20;
Видите, здесь даже если вы не загрузите модель, в памяти всё равно будет висеть переменная, у которой 99 костей, 3000 вершин, 99 кадров в одной анимации. А всего 99*20=1980 кадров анимации!!!
Попробуйте хотя бы Animations_n = 1; и times_n = 50;

А при двух моделях вообще будет жрать памяти 1980*2=3960 кадров анимации, в каждом из которых по 99 узлов скелета!!! (обычно узлов в скелете намного меньше).

Лучше посмотрите primersrc.rar. Там вместо массивов Array[0..nodes_n] of..., array [0..vertexes_n] of... и т.п. используются массивы без указания длины: array of ... А уже по ходу загрузки в программе устанавливается длина этих массивов: setlength(массив, длина).

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

Сообщение GLEB » 06.11.2005 (Вс) 17:22

Где, кстати, памяти не остаётся?

При запуске программы. На сторке: Skel:=TActor.Create. Проверял несколько раз. Кстати подобные глюки (памяти не остаётся) тоже когда-то встречал в прогах на Delphi именно при работе с классами.


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 18

    TopList