|
11.10.2007, 18:52
|
#16
|
|
Re: Проблема с PhysX
согласен с tormozом, етот таймер далеко не идеален
|
|
|
11.10.2007, 19:07
|
#17
|
Знающий
Регистрация: 27.07.2006
Сообщений: 250
Написано 6 полезных сообщений (для 7 пользователей)
|
Есть предложения идеального таймера?
И что такое "вынести в отдельный поток"? может я так и делалраньше но не знаючто это так называется.
|
(Offline)
|
|
11.10.2007, 20:22
|
#18
|
|
Re: Проблема с PhysX
Trilliput
идеального таймера нету
вот tormoz перепробывал все и остановился на банальном блицевском таймере
в ОС программа обычно работает потоками
есть либа BlitzThreads или как то так
но я говорил про реализацию на C++
в справке было что-то расписано про синхронизацию в два потока
в одном банально идет рендер всего дела,
в другом просчитывается симуляция
даж пример валялся в SDK
хотя если чесно я хз почему не работает время симуляции
как я помню оно у мну стояло свободным (5 * DeltaTime)
и все прекрасно работало
Render
мож ты что-то напутал ?
NxReal CPhysX::UpdateTime()
{
NxReal deltaTime;
#ifdef USE_OLD_TIMER
static __int64 gTime,gLastTime;
__int64 freq;
QueryPerformanceCounter((LARGE_INTEGER *)&gTime);
QueryPerformanceFrequency((LARGE_INTEGER *)&freq);
deltaTime = NxReal((double)(gTime - gLastTime)/(double)freq);
gLastTime = gTime;
#endif
#ifdef USE_NEW_TIMER
deltaTime = (NxReal)(dev->getTimer()->getTime() - LastAnimationTime);
LastAnimationTime = dev->getTimer()->getTime();
#endif
return deltaTime;
}
void CPhysX::StartPhysics(float time,bool use)
{
if (!CharController_pause)
gCM->updateControllers();
NxReal deltaTime = UpdateTime();
if (use == 0)
{
gScene->simulate(deltaTime * time);
}
else
{
gScene->simulate(time);
}
gScene->flushStream();
}
void CPhysX::GetPhysicsResults()
{
while (!gScene->fetchResults(NX_RIGID_BODY_FINISHED, false));
}
|
|
|
12.10.2007, 19:31
|
#19
|
Знающий
Регистрация: 27.07.2006
Сообщений: 250
Написано 6 полезных сообщений (для 7 пользователей)
|
Re: Проблема с PhysX
с дельтой все работет в плане физики, но вот модельки которые должны быть на своих местах - исчезают.
|
(Offline)
|
|
14.10.2007, 20:39
|
#20
|
Знающий
Регистрация: 27.07.2006
Сообщений: 250
Написано 6 полезных сообщений (для 7 пользователей)
|
Re: Проблема с PhysX
Проверьте ктонибудь код из 6-го поста. У меня он жутко тормозит даже в голом виде. Например при использовании только камеры и модели кубика заметны жуууткие тормоза, сама программа завершается при этом 10-20сек.
|
(Offline)
|
|
14.10.2007, 23:00
|
#21
|
Знающий
Регистрация: 12.07.2006
Сообщений: 283
Написано 16 полезных сообщений (для 32 пользователей)
|
Re: Проблема с PhysX
Ты где применяеш РендерФизик? и какие параметры передаёш?
Код из исчезновением тел в студию.
То что прога останавливается это признак демо версии.
|
(Offline)
|
|
15.10.2007, 22:44
|
#22
|
Знающий
Регистрация: 27.07.2006
Сообщений: 250
Написано 6 полезных сообщений (для 7 пользователей)
|
Re: Проблема с PhysX
код с исчезновением в первом посте.
|
(Offline)
|
|
16.10.2007, 13:04
|
#23
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Re: Проблема с PhysX
Если тормозит код с 6 поста, то значит ты что-то делаешь неправильно. У меня он работет идеально, никаких рывков. Тэстировал и на мощных и на Очень слабых машинах (древние 700 дюроны, с 128 озу, и 32 видео), и никаких рывков и тормозов. Хз что у тебя, ты скорее всего что-то лишнее обовляешь.
|
(Offline)
|
|
17.10.2007, 15:19
|
#24
|
Знающий
Регистрация: 27.07.2006
Сообщений: 250
Написано 6 полезных сообщений (для 7 пользователей)
|
Re: Проблема с PhysX
В том то и дело что к коду из 6-го поста добавил только графику (Grapics3d и тд). Те код вообще ничего лишнего.
|
(Offline)
|
|
17.10.2007, 15:29
|
#25
|
Дэвелопер
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений (для 774 пользователей)
|
Re: Проблема с PhysX
выложи сюда свой весь код, исправим!
|
(Offline)
|
|
17.10.2007, 23:29
|
#26
|
Знающий
Регистрация: 27.07.2006
Сообщений: 250
Написано 6 полезных сообщений (для 7 пользователей)
|
Re: Проблема с PhysX
Вобщем то вот:
Graphics3D 800,600,32,2
SetBuffer BackBuffer()
ConstFPS=60
period=1000/FPS
time=MilliSecs()-period
Repeat
Repeat
elapsed=MilliSecs()-time
Untilelapsed
ticks=elapsed/period
tween#=Float(elapsedModperiod)/Float(period)
Fork=1Toticks
time=time+period
; Тут логика
IfKeyHit(1) End
UpdateWorld
Next
; Тут рендеры, кубемапы, тени и т.п.
RenderWorld
; Тут 2Д
Flip0
Forever
Блин мистика, сейчас запускаю и все ок. Проц разгружен, памяти не жрет, завершается быстро. Даже не представляю что мог недокопипастить. В прошлый раз при добовлении новых элементов становилось только хуже, простой код с упраляемой камерой и кубиком жрал ресурсов как дум3.
Извеняюсь за бред...
|
(Offline)
|
|
18.10.2007, 02:16
|
#27
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Re: Проблема с PhysX
Trilliput, наверное не углядел в панеле, 3д макс, автокад, винамп, висул С++, фотошоп, фильмец-другой...
Работает говорю же Отлично!
|
(Offline)
|
|
18.10.2007, 09:49
|
#28
|
Дэвелопер
Регистрация: 19.03.2006
Сообщений: 1,241
Написано 10 полезных сообщений (для 17 пользователей)
|
Re: Проблема с PhysX
Ну вообще кагда мне МоКа дал этот код, у меня тоже рывки были, ну я его забросил, но нашел прототип в андреевском примере(бамп вроде) тот идельно просто работает, и даже при 10фпс играбельность остоётся.
Щяс чуть попозже выдерну из своего проекта, и закину сюды!=)
|
(Offline)
|
|
18.10.2007, 11:22
|
#29
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Re: Проблема с PhysX
Я же ещё раз повторяют, Там нужно убрать tween за RenderWorld'ом.
|
(Offline)
|
|
18.10.2007, 19:53
|
#30
|
Дэвелопер
Регистрация: 19.03.2006
Сообщений: 1,241
Написано 10 полезных сообщений (для 17 пользователей)
|
Re: Проблема с PhysX
в том то и дело, что твеен нужен, и уберать его не обязательно, но в этом случае да.
Блин обесчал и забыл, лана только завтра
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 10:03.
|