forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Blitz3D (http://forum.boolean.name/forumdisplay.php?f=45)
-   -   Синхронизация PhysX (http://forum.boolean.name/showthread.php?t=8806)

Mr_F_ 30.07.2009 15:03

Синхронизация PhysX
 
Пора бы наверное уже разрешить эту проблему.
Я думаю КАЖДЫЙ встречался с тем, что физика медленее когда фпс меньше или наоборот реактивная когда их больше оптимального значения.
Что делать? Многократный рендер физики в зависимости от дельтатайма ещё сильнее фпс убъёт. С михиной потоковой либой у меня вылетало - проверю ещё в с++ с потоками. Увеличивать силы и гравитацию в зависимости от дельта тайма - не натурально. pxSetTiming может только замедлить а не ускорить физику.
Предлагайте свои варианты)

jimon 30.07.2009 15:07

Ответ: Синхронизация PhysX
 
по-идее pxSetTiming может принимать тогда дробные значения, попробуй 0.1

SBJoker 30.07.2009 15:13

Ответ: Синхронизация PhysX
 
Если точно ускорить нельзя физику, то настраиваем физику например на 10 фпс ..тогда при большем фпс можно замедлять физику

Mr_F_ 30.07.2009 19:40

Ответ: Синхронизация PhysX
 
Цитата:

то настраиваем физику например на 10 фпс
а так нельзя кстати))

SBJoker 30.07.2009 20:01

Ответ: Синхронизация PhysX
 
это почему низзя?

tormoz 30.07.2009 20:41

Ответ: Синхронизация PhysX
 
На таких настройках она аццки глючит
есть узкие рамки в которых работает любая физика. По массам, скоростям, скорости обновления.

Mr_F_ 30.07.2009 22:20

Ответ: Синхронизация PhysX
 
Так, получилось пустить рендер физики отдельным потоком под с++. ОДНАКА, слишком быстро. Sleep(1) в потоке - наоборот слишком жирный. Нужно что-то вроде Sleep(0.1), но слип принимает только интегеры. Гугл не хочет раскрывать мне нычки хитрых кодеров, так что спрашиваю здесь - никто не знает как ждать флоатинговое время в с++?

Если удастся - выложу здесь готовый синхронизатор).

jimon 30.07.2009 22:25

Ответ: Синхронизация PhysX
 
Mr_F_
Sleep вообще время системе отдаёт, Sleep(1) действительности может занимать хоть 10 мс
попробуй цикл крутить какой-то

я не понимаю в чём трабла то
мучай входящий параметр gScene->simulate так чтобы он зависил времени между вызовами этой функции, тогда будет работать при широком диапазоне фпс, попробуй домножать время на некий коеф., к примеру 5

Mr_F_ 30.07.2009 22:29

Ответ: Синхронизация PhysX
 
Цитата:

gScene->simulate
в общем та юзаю Рендеровский физыкс.
Цитата:

мучай входящий параметр
параметр то параметром, но всё же зачем делать рендер так часто когда можно с перерывами?

http://forum.boolean.name/showthread...ght=jMillisecs

вот это кажется что надо, спасибо, Джимон)


Цитата:

http://jimon.org/downloads/jMillisecs_v1501_src.rar (13 кб, msvc2005 исходник)
OOPS не работает ссылка!

h1dd3n 30.07.2009 23:31

Ответ: Синхронизация PhysX
 
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 5 сообщение(ий)):
У вас нет прав, чтобы видеть скрытый текст, содержащийся здесь.
?

jimon 30.07.2009 23:34

Ответ: Синхронизация PhysX
 
Mr_F_
ага, подправил ссылки

Mr_F_ 31.07.2009 17:37

Ответ: Синхронизация PhysX
 
Потестите кто может:
http://tempfile.ru/file/1014784

Стрелки влево-вправо на клаве - уменьшать-увеличивать фпс.
пишите сюда свой средний Cube time.


--
хмм похоже у всех разный куб тайм... что логично ведь рендерфизики на каждой системе занимает разное время. надо ща переделать чтоб слип зависел от времени затраченного на рендер ато чето я ступил

Mr_F_ 31.07.2009 18:58

Ответ: Синхронизация PhysX
 
Вложений: 1
Так, кое-что пофиксил, тестите теперь с этим ехе. длл с прошлого архива.
Предпологаемый cube time - в районе 280. кричите и материтесь если это не так.
Аттач переименуйте в rar если так не откроется.
ща попробую в длл запихнуть всё это.

NitE 31.07.2009 20:34

Ответ: Синхронизация PhysX
 
ХРЕНЬ ПОЛНАЯ !!! ЧЕМ БОЛШЕ ФПС ТЕМ БОЛЬШЕ КУБЕ ТАЙМ НА !!!! ну и наоборот соответственно

Mr_F_ 31.07.2009 21:11

Ответ: Синхронизация PhysX
 
хм странно. у других 5 поциентов такого не наблюдается и куб тайм всегда одинаковый. да и вообще если синхронизатор не работает, чем больше фпс тем МЕНЬШЕ куб тайм должен быть. странно-странно.

вот в общем собрал либу:
http://webfile.ru/3810550

внутри длл, деклс и пример под блиц. развлекайтесть и ПОСТЬТЕ пожалуйста, надо понять что общего у тех людей у которых он пашет некорректно)


----
чето как-то лажово вышло.
когда много сил применяешь всё виснет.
приходится пока ставить на паузу поток перед такими делами.
апдейт:
http://webfile.ru/3810609

добавлено:
- параметр time в pxStartThead (time это первый параметр pxRenderPhysic)
pxPauseThread()
pxResumeThread()
pxSetDelayTime(t#) - установить максимальную задержку для цикла в котором рендер физики. по умолчанию = 5.0

---
билять, чето на практике какими-то рывками идёт((


Часовой пояс GMT +4, время: 23:39.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot