forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Библиотеки (http://forum.boolean.name/forumdisplay.php?f=28)
-   -   PhysX wrapper (http://forum.boolean.name/showthread.php?t=2734)

ABTOMAT 12.02.2009 03:57

Ответ: PhysX wrapper
 
Эх, может, и сюда надо солжу напостить?

Amatsu 01.04.2009 16:35

Ответ: PhysX wrapper
 
Пытаюсь сделать персонажа с капсульной физикой. Мучаюсь с инерцией, трением и т.д. Есть ли у кого-нибудь пример с подобной моделью управления? Чтобы персонаж двигался без инерции или с минимальной инерцией, при этом на него бы действовала гравитация, на плоскостях с наклоном меньше 30-40 градусов соскальзывания не было, а на более крутых плоскостях персонаж бы соскальзывал.

Amatsu 01.04.2009 23:13

Ответ: PhysX wrapper
 
Так, вроде большую часть самостоятельно разгреб. Но все никак не могу избавиться от неприятного глюка. Если персонаж планирует вниз под углом допустим в 45 градусов (силу движения в сторону создает сам игрок, а силу движения вниз - гравитация), то если он на подлете втыкается в вертикальную стену, а игрок продолжает жать вперед, то персонаж перестает падать вниз, как будто приклеивается к стене. Что я только ни пробовал. Силу трения ставил по нулям у уровня и у персонажа, повышал гравитацию до чудовищных значений и вес персонажа тоже... не знаю как сделать чтобы персонаж соскальзывал вниз вдоль стены даже при нажатой кнопке движения вперед...

moka 01.04.2009 23:50

Ответ: PhysX wrapper
 
При реализации капсульного контроллера персонажа, я использовал главный параметр - вектор коллизии. Твоя задача определить, стоит персонаж, или не стоит (неважно, летит или скользит). Для того чтобы получить вектор коллизии, просто получаем все контакты, и получаем вектор контакта самого низкого, далее нужно получить Pitch наклон его, для этого немного математики. Собственно далее если стоит, то позицию ставим на текущую+вектор движения, который мы сами меняем от нажатий. При этом Позиционируем, а силу движения постоянно обнуляем, если он стоит. Но тут главная задача правильно назначать вектор движения, и весьма геморойно применить плавное сбавление, если скорость движения привязана не к инерции а к переменным (которые не локальны, а глобальны осям). Но и это естественно решаемо, работой более глубоко. Я делал разбивку на градус направления (по X,Z координате), и скорость. Таким образом более реально будет двигаться, и разворачиваться..

ABTOMAT 02.04.2009 00:05

Ответ: PhysX wrapper
 
Хехе, у меня почему-то контакты пропадалм через кадр
(мб оттого что юзал dt)
Пришлось делать совершенно другой метод, от которого вам страшно станет)) Но работает

Amatsu 02.04.2009 09:37

Ответ: PhysX wrapper
 
to MoKa
Начинал как раз писать в этом направлении. Все, теперь вроде бы работает. Нашел кстати глюк. Если использовать на персонаже не pxBodySetLinearSpeed а pxBodyAddForce, причем персонаж будет стоять в нулевых координатах мира по осям X и Z, то если начать "прыгать" или взлетать и опускаться прямо перед касанием уровня, то персонаж начинает проваливаться под уровень, более того, коллизия с уровнем у него вообще отключается. Если же после этого сдвинуть его хоть на миллиметр в сторону - коллизия опять появляется и этого глюка больше не встречается )

nata5 01.05.2009 23:30

Ответ: PhysX wrapper
 
скиньте кльч плиз оче нада!на
[email protected]

h1dd3n 01.05.2009 23:57

Ответ: PhysX wrapper
 
А по рски псоть мжна?
Сказано же пиши рендеру в асю.
P.S. Это ты же недавно ключ для ньютона просила? Зачем сразу 2 двига =)?

ABTOMAT 02.05.2009 00:17

Ответ: PhysX wrapper
 
один двиг хорошо, а два - лучче :-D

nata5 02.05.2009 01:34

Ответ: PhysX wrapper
 
а мени ше ни одного ключа не дали дайте будласка ходь один ключик дайте будласка!
на [email protected]

Mr_F_ 02.05.2009 02:04

Ответ: PhysX wrapper
 
http://forum.boolean.name/search.php?searchid=101911

забаньте его кто-нибудь

Amatsu 09.05.2009 16:58

Ответ: PhysX wrapper
 
Вопрос. Создаю систему из коробок, соединенных джойнтами (рэгдолл делаю), как мне после создания развернуть всю эту систему на определенный угол? Если разворачиваю главную коробку (условно центр скелета) с которой весь скелет строился - остальные части остаются на месте и модель после поворота центра слегка подпрыгивает, пытаясь выровнять повернутую "кость". Если поворачиваю все части на определенный угол - весь скелет перекручивается и бьется в конвульсиях.
Я так понял что команда pxBodySetRotation в данном случае не поможет, джоинты то не поворачиваются. С другой стороны, я не нашел команды для принудительного поворота самих джойнтов.
Подскажите плиз, как повернуть всю систему моментально и чтобы она потом не "приходила в себя" после этого поворота.

А, все, сам допетрил =) Всем спасибо и сори за беспокойство.

Render 08.06.2009 01:15

Ответ: PhysX wrapper
 
Добавил удалёный дебагер, перевёл на новый СДК, ну и по мелочам поправил )
Качать тут
http://forum.xors3d.com/viewtopic.php?f=11&t=128

ABTOMAT 08.06.2009 02:48

Ответ: PhysX wrapper
 
Спасибо шо исправил копирование тримешей!

Render 08.06.2009 03:00

Ответ: PhysX wrapper
 
Блин, вот токо там лежит версия с глючными тримешами, исправил после того как залил ))
Так что Автомат у тебя самое свежее не советую то качать.

jfkkk 08.06.2009 12:28

Re: PhysX wrapper
 
Подскажите где взять бездровную демо-версию враппера.

Amatsu 09.06.2009 13:13

Ответ: PhysX wrapper
 
Подскажите плиз, как в физиксе можно замедлить обработку физики? Хочу сделать слоу-мо. Что-нибудь наподобие anim_speed из UpdateWorld есть в физиксе?

jfkkk 09.06.2009 13:31

Re: PhysX wrapper
 
pxRenderPhysic(float time, int sinc)

Изменением параметра time, вроде можно добиться этого результата.

Amatsu 09.06.2009 13:40

Ответ: PhysX wrapper
 
Спасибо, попробую.

Amatsu 11.06.2009 23:07

Ответ: PhysX wrapper
 
Что-то не получается. Точнее получается не так, как задумано. Мне нужно одним параметром изменять скорость обработки физики от обычной скорости (1) до полной остановки (0) плавно. У меня time стоит на 30, синхра на 0. Если я ставлю меньше 30, у меня обработка физики ускоряется. Если ставлю от 30 до 60, замедляется. При 60 замедление где-то в половину. Но если я начинаю ставить больше 60, у меня все физические объекты начинают двигаться рывками. При замедлении в 300 физика все равно далека от полного замедления, а объекты вообще начинают скакать. Пробовал писать pxRenderPhysic(30,1) - физика начинает так же тормозить рывками, как при pxRenderPhysic(300,0). Если пишу pxRenderPhysic(1,1), идет с нормальной скоростью. Но опять же, с увеличением параметра time физика идет медленнее и рывками, как и без синхронизации.
Подскажите плиз, как сделать плавное замедление физического мира от нормальной скорости до полной остановки?

ABTOMAT 12.06.2009 00:00

Ответ: PhysX wrapper
 
Кривая там синхра ( Доказано

Knightmare 12.06.2009 00:05

Ответ: PhysX wrapper
 
Цитата:

Сообщение от Amatsu (Сообщение 107360)
Что-то не получается. Точнее получается не так, как задумано. Мне нужно одним параметром изменять скорость обработки физики от обычной скорости (1) до полной остановки (0) плавно. У меня time стоит на 30, синхра на 0. Если я ставлю меньше 30, у меня обработка физики ускоряется. Если ставлю от 30 до 60, замедляется. При 60 замедление где-то в половину. Но если я начинаю ставить больше 60, у меня все физические объекты начинают двигаться рывками. При замедлении в 300 физика все равно далека от полного замедления, а объекты вообще начинают скакать. Пробовал писать pxRenderPhysic(30,1) - физика начинает так же тормозить рывками, как при pxRenderPhysic(300,0). Если пишу pxRenderPhysic(1,1), идет с нормальной скоростью. Но опять же, с увеличением параметра time физика идет медленнее и рывками, как и без синхронизации.
Подскажите плиз, как сделать плавное замедление физического мира от нормальной скорости до полной остановки?

Судя по коду pxRenderPhysic - никак :p

ABTOMAT 12.06.2009 00:11

Ответ: PhysX wrapper
 
Да не реально она глючит (если врубать "родную")

Mr_F_ 12.06.2009 00:17

Ответ: PhysX wrapper
 
Цитата:

Судя по коду pxRenderPhysic - никак
вероятно что зря

Amatsu 12.06.2009 01:20

Ответ: PhysX wrapper
 
:( Эх... придется извращаться...

Render 12.06.2009 02:12

Ответ: PhysX wrapper
 
Разработчик враперра не подписовался в рабство и не должен делать синхронизацию =)

Ну а если серьёзно, то дельту времени лучше фиксировать, очень уж муторная то штука. Что бы замедлить движение тел, можно использовать изменение гравитации, дампинги (угловые линейные), ограничивать скорости движения.

FDsagizi 12.06.2009 08:54

Ответ: PhysX wrapper
 
В Физиксе это самое ацкое место!

Amatsu 12.06.2009 10:25

Ответ: PhysX wrapper
 
Цитата:

Сообщение от Render (Сообщение 107379)
Что бы замедлить движение тел, можно использовать изменение гравитации, дампинги (угловые линейные), ограничивать скорости движения.

:wallbash:

Render 13.06.2009 02:48

Ответ: PhysX wrapper
 
Не, ну вы подумайте логически.
Дельта времени напрямую влияет на нагрузку на проц. при дельте 1/30 нагрузка будет в 2 раза больше чем при 1/60. Если делать этот параметр динамическим, можно получить неплохие провалы ФПС. Это первая сторона.
Когда дельта больше чем 1/60, появляются простои в физике, отсюда идут дёргания.
Ну ещё есть зависимость от ФПС, чем больше раз за секунду вызываем ф-ю апдейта физики, тем быстрее всё движется.
Я бы вообще рекомендовал сразу поставить синхронизатор на ориентируемый ФПС, и от него уже отталкиватся с физикой.

Amatsu 19.06.2009 13:09

Ответ: PhysX wrapper
 
А есть какой-нибудь пример изменения скорости физической среды без затрагивания pxRenderPhysic? Типа этого: "Что бы замедлить движение тел, можно использовать изменение гравитации, дампинги (угловые линейные), ограничивать скорости движения." Дело в том, что замедлить мир я могу. А вот вернуть ему скорость, когда время возвращается в свое русло из замедления...

Amatsu 22.06.2009 22:56

Ответ: PhysX wrapper
 
Хм, кажется получилось. Сделал замедление (вплоть до полной остановки) и ускорение командой
pxSetTiming(world_speed*(1./60.),world_speed*8,0)

MiXaeL 22.06.2009 23:08

Ответ: PhysX wrapper
 
Вот уж точно шаманство)

Manfred 22.07.2009 10:25

Re: PhysX wrapper
 
Друзья, а как прекратить это идиотство с драйверами ? Да, я знаю что это нарушение лицензии ageia, но это полная ересь устанавливать какие-то драйвера на систему. Это же обыкновенные DLL'ки. Да и мне нужен physx для личного пользования, чем быстрее он будет запускаться, тем луччче:) и разумеется мне не надо никаких драйверов/
Использую PhysX 1.2 с дорогого рубукса для B3D.. помнится много где упоминалась бездровная версия, на блиц.ппц.ру ну и здесь, а мои поиски не увенчались успехом. Она существует ?.

А вот и еще такой вопросик, кто сталкивался с незапусканием Visual Remote Debugger ? При запуске программа требует отправить отчет к какой-то матери... не запускается.

Blitz3d_god 07.08.2009 17:04

Ответ: PhysX wrapper
 
Помагите пожалуста, кто хорошо знает PhysX, скачжите мне команду для передвижения физических тел, эквивалентную MoveEntity в Blitze. Я поискал нашёл только pxMoveBodyToPoint, но это не то.

johnk 07.08.2009 18:03

Ответ: PhysX wrapper
 
А разве у тебя не работает pxMoveEntity?
Попробуй её.

Manfred 08.08.2009 10:13

Re: PhysX wrapper
 
Хм, не знаю как на этом форуме редактировать свое старое сообщение, ну в общем № 161 не актуален, разобрался и с тем и с тем:) на physx поставил dll от хорса, а дебаггер стал работать с помощью радикальных мер - смены ОС:)

ABTOMAT 09.08.2009 00:04

Ответ: PhysX wrapper
 
Редактировать собственный пост можно только 1 сутки. Иначе могут редактировать только модераторы.

Blitz3d_god 10.08.2009 09:49

Ответ: PhysX wrapper
 
pxMoveEntity у меня не выделяет даже как команду. может её у меня и нету, а у тебя JohnK есть ? а где тогда можно скачать самую последнюю версию PhysX!?

Mr_F_ 10.08.2009 11:01

Ответ: PhysX wrapper
 
Юзай pxBodyAddLocalForceAtLocalPos

tormoz 10.08.2009 16:30

Ответ: PhysX wrapper
 
Цитата:

Сообщение от Blitz3d_god (Сообщение 113658)
pxMoveEntity у меня не выделяет даже как команду. может её у меня и нету, а у тебя JohnK есть ? а где тогда можно скачать самую последнюю версию PhysX!?

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

Crystal 10.08.2009 19:08

Ответ: PhysX wrapper
 
Кроме физики авто с хуламии, и то не углублённо,
ничего более в враппере не ковырял пока.
Возникает ряд вопросов.

Допустим двигаю я тело командой pxBodyAddLocalForceAtLocalPos.
Действие от того же блитцевого MoveEntity отличается очень сильно.
Здесь мы устанавливаем силу толчка и направление, в итоге тело
под действием силы плавно разгоняется набирая скорость.
Каким образом можно задать телу постоянную скорость в определённом
направлении? Постоянную - значит не плавно набираемую.
Так же, каким образом можно избавиться от полученной телом инерции?
Или направить инерцию в другую сторону. Вот как пример: разогнали
мы тело, и решили развернуть его на угол этак 45 градусов, тело
продолжает по инерции лететь по старой траектории, жуя силу трения.
Если мы применяем силу к телу уже относительно его поворота,
то она действует одновременно с ещё не угаснувшей инерцией
от старого толчка. В итоге получается скользящее движение как
по льду. В общем, мне интересно какими способами можно приблизить
действие pxBodyAddLocalForceAtLocalPos к блитцевому MoveEntity.

Спасибо, что всё это прочитали )

NitE 10.08.2009 19:45

Ответ: PhysX wrapper
 
Цитата:

Постоянную - значит не плавно набираемую.
логично ! может резко задать большую скорость а потом её ограничить ?
Цитата:

Так же, каким образом можно избавиться от полученной телом инерции?
остановить его

дальше должно быть ясно

Crystal 10.08.2009 19:58

Ответ: PhysX wrapper
 
Неадекватные ответы.

1. Я задаю не скорость, а силу толкания.
Быть может подскажешь, как ограничить скорость объекта при его толкании?

2. Вообще не по существу.
Ибо меня интересует поворот силы инерции в направлении разворота объекта, либо убивание данной инерции для подачи толчка в нужном направлении.

З.Ы. Нужно реализовать две возможности:
1) Моментальная постоянная регулируемая скорость.
2) Ликвидировать заносы.

Эффект MoveEntity.

NitE 10.08.2009 20:14

Ответ: PhysX wrapper
 
не ну серьёзно - хелп для кого писали ? и как-же тебе помочь если ты сам нехочешь воспольоватся мозгом ?
Цитата:

pxMoveBodyToPoint(int body, float maxspeed, float x, float y, float z)


Parameters:
body - physical body
maxspeed - maximal speed
x, y, z - coordinates of point

Description:
Moves a body to the point (x, y, z) with permanent speed of maxspeed.


Crystal 10.08.2009 20:24

Ответ: PhysX wrapper
 
Спросил бы сначала, знаю ли я о существовании хелпа, и есть ли он у меня.
У меня вообще древняя версия физикса, с тех времён, когда хелпы не предполагались.
Хелпа у меня нет. Но, раз я узнал о его существовании, значит скоро добуду.

Ты дал ответ на первый вопрос. Как быть с инерционными заносами?

NitE 10.08.2009 20:30

Ответ: PhysX wrapper
 
http://rubux.net/index.php?option=co... =7&Itemid=53
Rigid bodies - body parameters

к сожалению я как и в большинстве случаев не понимаю что тебе надо, но ответы на все вопросы найдешь хелпе так или иначе

Crystal 10.08.2009 20:42

Ответ: PhysX wrapper
 
Хм. По моему всё понятно изложил...
Спасибо за ссылку.

Mr_F_ 10.08.2009 20:51

Ответ: PhysX wrapper
 
Цитата:

pxMoveBodyToPoint
не поможет, тоже будет разгоняться.

юзай SetLocalLinearSpeed и будет тебе счастье.
смотри как он юзан в старой демке ксорса Island.

newman 10.08.2009 20:55

Ответ: PhysX wrapper
 
Вложений: 1
Цитата:

А вот и еще такой вопросик, кто сталкивался с незапусканием Visual Remote Debugger ? При запуске программа требует отправить отчет к какой-то матери... не запускается.
Столкнулся с такой же проблемой. При запуске Visual Remote Debugger вылазиет какая-то ошибка(в аттаче). Скачал с сайта нВидии отдельно Remote Debugger результат такойже. Со старой версией PhysXSDK всё работало нормально. Вчера поставил 2,8,1 и вот после этого начались траблы. У каво какие предположения?

Crystal 10.08.2009 21:58

Ответ: PhysX wrapper
 
pxMoveBodyToPoint - поюзал.
По моему эта команда служит для буксировки объекта
с определённой скоростью в определённые координаты.

Не то, что мне нужно.

NitE 10.08.2009 22:11

Ответ: PhysX wrapper
 
омгомг, читай хелп и вникай там есть всё что тебе нужно, тотже linearspeed пост №176

Crystal 10.08.2009 23:37

Ответ: PhysX wrapper
 
pxBodySetLinearSpeed я для полной остановки объекта юзаю.
Больше в ней другого толка не нашёл.

Мне тут вообще посоветовали нежелательную инерцию гасить мощным трением,
и я думаю это довольно таки подходящий вариант.

Mr_F_ 10.08.2009 23:53

Ответ: PhysX wrapper
 
Цитата:

pxBodySetLinearSpeed
pxBodySetLOCALLinearSpeed - резко устанавливает лок. скорость боди

NitE 10.08.2009 23:54

Ответ: PhysX wrapper
 
ну если нравится извращятса то любые методы хороши, а setfrozen например неработает ?

Crystal 11.08.2009 10:52

Ответ: PhysX wrapper
 
Спасибо! Mr_F_
Афигительная команда.
Она то, что мне нужно.

NitE юзаю только SetFrozenRot.

FrankH 08.09.2009 17:02

Ответ: PhysX wrapper
 
Не удается просмотреть физику, т.к. Remote Debugger не видит процесса, а без него не интересно. Пробовал запускать до запуска приложения и после, белое поле. Встречался ли кто-то с проблемой и как ее можно решить?

Blitz3d_god 18.09.2009 08:51

Ответ: PhysX wrapper
 
А есть ли в физике команда, которая уменьшает инерцию тела??
а то у меня получается что body пробежало 10 метров и в 2-3 по инерции ещё. Как то глупо. И ещё у меня один вопрос, может совсем идиотский: я нигде не видел во хелпе или децлезе physX команд связанный с анимацией боди. Не ужели все физические тела которые используются в самых навороченых играх на самом деле не двигаются, не машут руками и не двигают ногами, а просто тупо перемещаются?

Knightmare 18.09.2009 10:08

Ответ: PhysX wrapper
 
Цитата:

Сообщение от Blitz3d_god (Сообщение 118905)
А есть ли в физике команда, которая уменьшает инерцию тела??
а то у меня получается что body пробежало 10 метров и в 2-3 по инерции ещё. Как то глупо. И ещё у меня один вопрос, может совсем идиотский: я нигде не видел во хелпе или децлезе physX команд связанный с анимацией боди. Не ужели все физические тела которые используются в самых навороченых играх на самом деле не двигаются, не машут руками и не двигают ногами, а просто тупо перемещаются?

Открою страшную тайну - анимация не связана с физикой.

Mr_F_ 18.09.2009 10:10

Ответ: PhysX wrapper
 
Цитата:

А есть ли в физике команда, которая уменьшает инерцию тела??
м.б. уменшить трение? смотри хелп по pxMaterial
Цитата:

Не ужели все физические тела которые используются в самых навороченых играх на самом деле не двигаются, не машут руками и не двигают ногами, а просто тупо перемещаются?
не ужели все нефизические движения тоже основаны на том что объекты просто тупо перемещаются?

Render 21.09.2009 01:14

Ответ: PhysX wrapper
 
Цитата:

Сообщение от FrankH (Сообщение 117970)
Не удается просмотреть физику, т.к. Remote Debugger не видит процесса, а без него не интересно. Пробовал запускать до запуска приложения и после, белое поле. Встречался ли кто-то с проблемой и как ее можно решить?

Видать где-то конфликт версий, надо бы всё почистить, да и лишние дровишки посносить, а то разница между 1.2 и 1.3 версиями большая,а собствено разные СДК и разные ядра движка. Лучше всего юзать 1.2 под версию СДК 2.7.0. Стабильно и проверено временем )

Ну и добавлю пару слов по физ перемещениям, и то почему нету команды MoveBody. По сути эта команда перемещает за один кадр тело на заданую велечину, в природе это телепортация. Когда одно тело телепортируется в другое будет что-то ужасное )))
Поэтому ели в физ движках перемещать тела таким способом, то получим или разлетание тел, или неожиданые колизии, а местами и зависание можно получить.
А вот установка скорости и сил это природно )

maxturbo 21.09.2009 04:31

Ответ: PhysX wrapper
 
Есть у кого нибудь ссылка на более новый PhysX если он существует новый

Knightmare 21.09.2009 07:40

Ответ: PhysX wrapper
 
http://xors3d.com искать тут в глубинах депозитория.

pepel 06.10.2009 00:28

Ответ: PhysX wrapper
 
подскажите плз как создавать мягкие тела? примерах используется формат "х" как его создавать?
в хелпе написано юзать PhysXViewer, я скачал его а он не запускается пишет не найден nvcuda.dll , пытался скачать драйвер нвкуда, а он не ставится , пишет что нет такого оборудования( у меня карта ати радеон)
когда пытаюсь использовать формат 3ds то тело разваливается , и становится как куча тряпок

FireOwl 07.10.2009 01:54

Ответ: PhysX wrapper
 
Здравствуйте!!!
У меня проблема с Physics. Чего только не пробовал...
  • Физикс - последней версии с xors3d.com
  • Blitz3D v1.99
Вылезает окошко "Memory access violation!" при использовании стандартной команды создания тримеша:
Код:

bbb%=pxCreateTriMesh(vbank, fbank, nvert, nface,1)
От чего это может происходить? Создание простых физ. тел из туториала - капсул, кубов, сфер проходит гладко!


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

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