100 кубиков, 100 сфер и 100 капсул падают на плоскость, на выходе 85 фпс (7300gt), в упор не пойму куда девается скорость, вот исходник проекта и враппера, помогите разобратся.
http://depositfiles.com/files/qq8ciuk55
http://depositfiles.com/files/1qody7l89
>>85 фпс
VSync?
> 85 фпс
слабый проц (ноут)?
VSync отключен, хотя при включении на выходе фпс то же самой, процесор - пентиум4 3Ггц (загрузка проца 1-6%), впрочем исходник проекта скомпилирован - можете скачать и посмотреть у себя на производительность. Кстати для такого "проекта" сколько фпс нормально (чтоб я знал на что ориентироватся)?
У меня в районе 110-130 крутится, жрёт 66-70 процентов судя по диспетчеру задач. Может у тебя комп всё таки слабоват? У тебя там физикс софтварно или хардварно работает? Наконец возми какой-нить профайлер и посмотри, может и не в физике дело...
PS. athlon 5400 + 8800gts
Без символов собранный проект профайлить чисто по вершкам, а ставить делфи и собирать как нада я конечно не стану. Ну в общем тормозит походу всё таки физика.
object Cadencer: TGLCadencer
Scene = GLScene
SleepLength = 1 <---------------
OnProgress = CadencerProgress
Left = 40
Top = 8
end
Думаю причина в этом...
Попробуй поставить 0...
А вообще апдейт физики желательно бы зафиксировать...
SleepLength поставил в ноль и правду фпс поддалось, апдейт зафиксировал но результата никакого не было заметно, физикс софтварно работает, то для такой сцены сколько фпс нормально? И еще вопрос можно ли юзать для твердых тел gpu физику и если да то как (желательно отрывок кода).
karuy
> SleepLength поставил в ноль и правду фпс поддалось, апдейт зафиксировал но
> результата никакого не было заметно, физикс софтварно работает, то для такой
> сцены сколько фпс нормально? И еще вопрос можно ли юзать для твердых тел gpu
> физику и если да то как (желательно отрывок кода).
То что ты в физх выставил фиксированный, этого ещё не достаточно...
Тебе надо руками писать код, который будет проверять сколько времени прошло, если прошло больше определённого количества, только тогда обновлять...
а может визуализация шейпов включена?
флаги NX_VISUALIZE_...
>> И еще вопрос можно ли юзать для твердых тел gpu физику и если да то как
Нельзя. Будет только в SDK 3.0
Флажки убрал, десяток фпс добавилось. Еще вопрос, вот код:
export CreateCloth(NxActor** Actor, float thickness, float bendingStiffness, float w, float h, float d, char* texture)
{
NxClothDesc clothDesc;
clothDesc.globalPose.t = NxVec3(0,0,0);
clothDesc.thickness = thickness;
clothDesc.bendingStiffness = bendingStiffness;
clothDesc.flags |= NX_CLF_BENDING;
clothDesc.flags |= NX_CLF_COLLISION_TWOWAY;
if (gHardwareCloth)
clothDesc.flags |= NX_CLF_HARDWARE;
MyCloth *regularCloth = new MyCloth(gScene, clothDesc, w, h, d, texture);
if (!regularCloth->getNxCloth())
{
delete regularCloth;
}
else
{
gCloths.push_back(regularCloth);
}
}
И ошыбки:
1>_PhysXwrap.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall MyCloth::~MyCloth(void)" (??1MyCloth@@QAE@XZ) в функции "public: void * __thiscall MyCloth::`scalar deleting destructor'(unsigned int)" (??_GMyCloth@@QAEPAXI@Z)
1>_PhysXwrap.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall MyCloth::MyCloth(class NxScene *,class NxClothDesc &,float,float,float,char *,bool)" (??0MyCloth@@QAE@PAVNxScene@@AAVNxClothDesc@@MMMPAD_N@Z) в функции "void __stdcall CreateCloth(class NxActor * *,float,float,float,float,float,char *)" (?CreateCloth@@YGXPAPAVNxActor@@MMMMMPAD@Z)
1>..\PhysXwrap.dll : fatal error LNK1120: 2 неразрешенных внешних элементов
--------------------------------
Ума не приложу что делать, походу все делаю как в примере, а у них компилит у меня нет. Помогите новичку.
karuy
попробуй добавить MyCloth.h и MyCloth.cpp в свой проект
Добавил (проект-добавить класс-...), в итоге ловлю еще больше ошыбок, если не трудно взгляни на програмку, может тебе удастся скомпилить. В делфи как-то проще усе...
http://depositfiles.com/files/dj5ebopg7
Линкёр не находит где у тебя реализованы конструктор и деструктор MyCloth, о чём собсно и пишет прямым текстом. Ты их реализовал? В это же либе/dll-е или в другой?
Тема в архиве.