![]() |
Ответ: PhysX wrapper
|
Ответ: PhysX wrapper
Пытаюсь сделать персонажа с капсульной физикой. Мучаюсь с инерцией, трением и т.д. Есть ли у кого-нибудь пример с подобной моделью управления? Чтобы персонаж двигался без инерции или с минимальной инерцией, при этом на него бы действовала гравитация, на плоскостях с наклоном меньше 30-40 градусов соскальзывания не было, а на более крутых плоскостях персонаж бы соскальзывал.
|
Ответ: PhysX wrapper
Так, вроде большую часть самостоятельно разгреб. Но все никак не могу избавиться от неприятного глюка. Если персонаж планирует вниз под углом допустим в 45 градусов (силу движения в сторону создает сам игрок, а силу движения вниз - гравитация), то если он на подлете втыкается в вертикальную стену, а игрок продолжает жать вперед, то персонаж перестает падать вниз, как будто приклеивается к стене. Что я только ни пробовал. Силу трения ставил по нулям у уровня и у персонажа, повышал гравитацию до чудовищных значений и вес персонажа тоже... не знаю как сделать чтобы персонаж соскальзывал вниз вдоль стены даже при нажатой кнопке движения вперед...
|
Ответ: PhysX wrapper
При реализации капсульного контроллера персонажа, я использовал главный параметр - вектор коллизии. Твоя задача определить, стоит персонаж, или не стоит (неважно, летит или скользит). Для того чтобы получить вектор коллизии, просто получаем все контакты, и получаем вектор контакта самого низкого, далее нужно получить Pitch наклон его, для этого немного математики. Собственно далее если стоит, то позицию ставим на текущую+вектор движения, который мы сами меняем от нажатий. При этом Позиционируем, а силу движения постоянно обнуляем, если он стоит. Но тут главная задача правильно назначать вектор движения, и весьма геморойно применить плавное сбавление, если скорость движения привязана не к инерции а к переменным (которые не локальны, а глобальны осям). Но и это естественно решаемо, работой более глубоко. Я делал разбивку на градус направления (по X,Z координате), и скорость. Таким образом более реально будет двигаться, и разворачиваться..
|
Ответ: PhysX wrapper
Хехе, у меня почему-то контакты пропадалм через кадр
(мб оттого что юзал dt) Пришлось делать совершенно другой метод, от которого вам страшно станет)) Но работает |
Ответ: PhysX wrapper
to MoKa
Начинал как раз писать в этом направлении. Все, теперь вроде бы работает. Нашел кстати глюк. Если использовать на персонаже не pxBodySetLinearSpeed а pxBodyAddForce, причем персонаж будет стоять в нулевых координатах мира по осям X и Z, то если начать "прыгать" или взлетать и опускаться прямо перед касанием уровня, то персонаж начинает проваливаться под уровень, более того, коллизия с уровнем у него вообще отключается. Если же после этого сдвинуть его хоть на миллиметр в сторону - коллизия опять появляется и этого глюка больше не встречается ) |
Ответ: PhysX wrapper
скиньте кльч плиз оче нада!на
[email protected] |
Ответ: PhysX wrapper
А по рски псоть мжна?
Сказано же пиши рендеру в асю. P.S. Это ты же недавно ключ для ньютона просила? Зачем сразу 2 двига =)? |
Ответ: PhysX wrapper
один двиг хорошо, а два - лучче :-D
|
Ответ: PhysX wrapper
а мени ше ни одного ключа не дали дайте будласка ходь один ключик дайте будласка!
на [email protected] |
Ответ: PhysX wrapper
|
Ответ: PhysX wrapper
Вопрос. Создаю систему из коробок, соединенных джойнтами (рэгдолл делаю), как мне после создания развернуть всю эту систему на определенный угол? Если разворачиваю главную коробку (условно центр скелета) с которой весь скелет строился - остальные части остаются на месте и модель после поворота центра слегка подпрыгивает, пытаясь выровнять повернутую "кость". Если поворачиваю все части на определенный угол - весь скелет перекручивается и бьется в конвульсиях.
Я так понял что команда pxBodySetRotation в данном случае не поможет, джоинты то не поворачиваются. С другой стороны, я не нашел команды для принудительного поворота самих джойнтов. Подскажите плиз, как повернуть всю систему моментально и чтобы она потом не "приходила в себя" после этого поворота. А, все, сам допетрил =) Всем спасибо и сори за беспокойство. |
Ответ: PhysX wrapper
Добавил удалёный дебагер, перевёл на новый СДК, ну и по мелочам поправил )
Качать тут http://forum.xors3d.com/viewtopic.php?f=11&t=128 |
Ответ: PhysX wrapper
Спасибо шо исправил копирование тримешей!
|
Ответ: PhysX wrapper
Блин, вот токо там лежит версия с глючными тримешами, исправил после того как залил ))
Так что Автомат у тебя самое свежее не советую то качать. |
Re: PhysX wrapper
Подскажите где взять бездровную демо-версию враппера.
|
Ответ: PhysX wrapper
Подскажите плиз, как в физиксе можно замедлить обработку физики? Хочу сделать слоу-мо. Что-нибудь наподобие anim_speed из UpdateWorld есть в физиксе?
|
Re: PhysX wrapper
pxRenderPhysic(float time, int sinc)
Изменением параметра time, вроде можно добиться этого результата. |
Ответ: PhysX wrapper
Спасибо, попробую.
|
Ответ: PhysX wrapper
Что-то не получается. Точнее получается не так, как задумано. Мне нужно одним параметром изменять скорость обработки физики от обычной скорости (1) до полной остановки (0) плавно. У меня time стоит на 30, синхра на 0. Если я ставлю меньше 30, у меня обработка физики ускоряется. Если ставлю от 30 до 60, замедляется. При 60 замедление где-то в половину. Но если я начинаю ставить больше 60, у меня все физические объекты начинают двигаться рывками. При замедлении в 300 физика все равно далека от полного замедления, а объекты вообще начинают скакать. Пробовал писать pxRenderPhysic(30,1) - физика начинает так же тормозить рывками, как при pxRenderPhysic(300,0). Если пишу pxRenderPhysic(1,1), идет с нормальной скоростью. Но опять же, с увеличением параметра time физика идет медленнее и рывками, как и без синхронизации.
Подскажите плиз, как сделать плавное замедление физического мира от нормальной скорости до полной остановки? |
Ответ: PhysX wrapper
Кривая там синхра ( Доказано
|
Ответ: PhysX wrapper
Цитата:
|
Ответ: PhysX wrapper
Да не реально она глючит (если врубать "родную")
|
Ответ: PhysX wrapper
Цитата:
|
Ответ: PhysX wrapper
:( Эх... придется извращаться...
|
Ответ: PhysX wrapper
Разработчик враперра не подписовался в рабство и не должен делать синхронизацию =)
Ну а если серьёзно, то дельту времени лучше фиксировать, очень уж муторная то штука. Что бы замедлить движение тел, можно использовать изменение гравитации, дампинги (угловые линейные), ограничивать скорости движения. |
Ответ: PhysX wrapper
В Физиксе это самое ацкое место!
|
Ответ: PhysX wrapper
Цитата:
|
Ответ: PhysX wrapper
Не, ну вы подумайте логически.
Дельта времени напрямую влияет на нагрузку на проц. при дельте 1/30 нагрузка будет в 2 раза больше чем при 1/60. Если делать этот параметр динамическим, можно получить неплохие провалы ФПС. Это первая сторона. Когда дельта больше чем 1/60, появляются простои в физике, отсюда идут дёргания. Ну ещё есть зависимость от ФПС, чем больше раз за секунду вызываем ф-ю апдейта физики, тем быстрее всё движется. Я бы вообще рекомендовал сразу поставить синхронизатор на ориентируемый ФПС, и от него уже отталкиватся с физикой. |
Ответ: PhysX wrapper
А есть какой-нибудь пример изменения скорости физической среды без затрагивания pxRenderPhysic? Типа этого: "Что бы замедлить движение тел, можно использовать изменение гравитации, дампинги (угловые линейные), ограничивать скорости движения." Дело в том, что замедлить мир я могу. А вот вернуть ему скорость, когда время возвращается в свое русло из замедления...
|
Ответ: PhysX wrapper
Хм, кажется получилось. Сделал замедление (вплоть до полной остановки) и ускорение командой
pxSetTiming(world_speed*(1./60.),world_speed*8,0) |
Ответ: PhysX wrapper
Вот уж точно шаманство)
|
Re: PhysX wrapper
Друзья, а как прекратить это идиотство с драйверами ? Да, я знаю что это нарушение лицензии ageia, но это полная ересь устанавливать какие-то драйвера на систему. Это же обыкновенные DLL'ки. Да и мне нужен physx для личного пользования, чем быстрее он будет запускаться, тем луччче:) и разумеется мне не надо никаких драйверов/
Использую PhysX 1.2 с дорогого рубукса для B3D.. помнится много где упоминалась бездровная версия, на блиц.ппц.ру ну и здесь, а мои поиски не увенчались успехом. Она существует ?. А вот и еще такой вопросик, кто сталкивался с незапусканием Visual Remote Debugger ? При запуске программа требует отправить отчет к какой-то матери... не запускается. |
Ответ: PhysX wrapper
Помагите пожалуста, кто хорошо знает PhysX, скачжите мне команду для передвижения физических тел, эквивалентную MoveEntity в Blitze. Я поискал нашёл только pxMoveBodyToPoint, но это не то.
|
Ответ: PhysX wrapper
А разве у тебя не работает pxMoveEntity?
Попробуй её. |
Re: PhysX wrapper
Хм, не знаю как на этом форуме редактировать свое старое сообщение, ну в общем № 161 не актуален, разобрался и с тем и с тем:) на physx поставил dll от хорса, а дебаггер стал работать с помощью радикальных мер - смены ОС:)
|
Ответ: PhysX wrapper
|
Ответ: PhysX wrapper
pxMoveEntity у меня не выделяет даже как команду. может её у меня и нету, а у тебя JohnK есть ? а где тогда можно скачать самую последнюю версию PhysX!?
|
Ответ: PhysX wrapper
Юзай pxBodyAddLocalForceAtLocalPos
|
Ответ: PhysX wrapper
Цитата:
Для движенрия физических тел применяй силы и импульсы |
Ответ: PhysX wrapper
Кроме физики авто с хуламии, и то не углублённо,
ничего более в враппере не ковырял пока. Возникает ряд вопросов. Допустим двигаю я тело командой pxBodyAddLocalForceAtLocalPos. Действие от того же блитцевого MoveEntity отличается очень сильно. Здесь мы устанавливаем силу толчка и направление, в итоге тело под действием силы плавно разгоняется набирая скорость. Каким образом можно задать телу постоянную скорость в определённом направлении? Постоянную - значит не плавно набираемую. Так же, каким образом можно избавиться от полученной телом инерции? Или направить инерцию в другую сторону. Вот как пример: разогнали мы тело, и решили развернуть его на угол этак 45 градусов, тело продолжает по инерции лететь по старой траектории, жуя силу трения. Если мы применяем силу к телу уже относительно его поворота, то она действует одновременно с ещё не угаснувшей инерцией от старого толчка. В итоге получается скользящее движение как по льду. В общем, мне интересно какими способами можно приблизить действие pxBodyAddLocalForceAtLocalPos к блитцевому MoveEntity. Спасибо, что всё это прочитали ) |
Ответ: PhysX wrapper
Цитата:
Цитата:
дальше должно быть ясно |
Ответ: PhysX wrapper
Неадекватные ответы.
1. Я задаю не скорость, а силу толкания. Быть может подскажешь, как ограничить скорость объекта при его толкании? 2. Вообще не по существу. Ибо меня интересует поворот силы инерции в направлении разворота объекта, либо убивание данной инерции для подачи толчка в нужном направлении. З.Ы. Нужно реализовать две возможности: 1) Моментальная постоянная регулируемая скорость. 2) Ликвидировать заносы. Эффект MoveEntity. |
Ответ: PhysX wrapper
не ну серьёзно - хелп для кого писали ? и как-же тебе помочь если ты сам нехочешь воспольоватся мозгом ?
Цитата:
|
Ответ: PhysX wrapper
Спросил бы сначала, знаю ли я о существовании хелпа, и есть ли он у меня.
У меня вообще древняя версия физикса, с тех времён, когда хелпы не предполагались. Хелпа у меня нет. Но, раз я узнал о его существовании, значит скоро добуду. Ты дал ответ на первый вопрос. Как быть с инерционными заносами? |
Ответ: PhysX wrapper
http://rubux.net/index.php?option=co... =7&Itemid=53
Rigid bodies - body parameters к сожалению я как и в большинстве случаев не понимаю что тебе надо, но ответы на все вопросы найдешь хелпе так или иначе |
Ответ: PhysX wrapper
Хм. По моему всё понятно изложил...
Спасибо за ссылку. |
Ответ: PhysX wrapper
Цитата:
юзай SetLocalLinearSpeed и будет тебе счастье. смотри как он юзан в старой демке ксорса Island. |
Ответ: PhysX wrapper
Вложений: 1
Цитата:
|
Ответ: PhysX wrapper
pxMoveBodyToPoint - поюзал.
По моему эта команда служит для буксировки объекта с определённой скоростью в определённые координаты. Не то, что мне нужно. |
Ответ: PhysX wrapper
омгомг, читай хелп и вникай там есть всё что тебе нужно, тотже linearspeed пост №176
|
Ответ: PhysX wrapper
pxBodySetLinearSpeed я для полной остановки объекта юзаю.
Больше в ней другого толка не нашёл. Мне тут вообще посоветовали нежелательную инерцию гасить мощным трением, и я думаю это довольно таки подходящий вариант. |
Ответ: PhysX wrapper
Цитата:
|
Ответ: PhysX wrapper
ну если нравится извращятса то любые методы хороши, а setfrozen например неработает ?
|
Ответ: PhysX wrapper
Спасибо! Mr_F_
Афигительная команда. Она то, что мне нужно. NitE юзаю только SetFrozenRot. |
Ответ: PhysX wrapper
Не удается просмотреть физику, т.к. Remote Debugger не видит процесса, а без него не интересно. Пробовал запускать до запуска приложения и после, белое поле. Встречался ли кто-то с проблемой и как ее можно решить?
|
Ответ: PhysX wrapper
А есть ли в физике команда, которая уменьшает инерцию тела??
а то у меня получается что body пробежало 10 метров и в 2-3 по инерции ещё. Как то глупо. И ещё у меня один вопрос, может совсем идиотский: я нигде не видел во хелпе или децлезе physX команд связанный с анимацией боди. Не ужели все физические тела которые используются в самых навороченых играх на самом деле не двигаются, не машут руками и не двигают ногами, а просто тупо перемещаются? |
Ответ: PhysX wrapper
Цитата:
|
Ответ: PhysX wrapper
Цитата:
Цитата:
|
Ответ: PhysX wrapper
Цитата:
Ну и добавлю пару слов по физ перемещениям, и то почему нету команды MoveBody. По сути эта команда перемещает за один кадр тело на заданую велечину, в природе это телепортация. Когда одно тело телепортируется в другое будет что-то ужасное ))) Поэтому ели в физ движках перемещать тела таким способом, то получим или разлетание тел, или неожиданые колизии, а местами и зависание можно получить. А вот установка скорости и сил это природно ) |
Ответ: PhysX wrapper
Есть у кого нибудь ссылка на более новый PhysX если он существует новый
|
Ответ: PhysX wrapper
http://xors3d.com искать тут в глубинах депозитория.
|
Ответ: PhysX wrapper
подскажите плз как создавать мягкие тела? примерах используется формат "х" как его создавать?
в хелпе написано юзать PhysXViewer, я скачал его а он не запускается пишет не найден nvcuda.dll , пытался скачать драйвер нвкуда, а он не ставится , пишет что нет такого оборудования( у меня карта ати радеон) когда пытаюсь использовать формат 3ds то тело разваливается , и становится как куча тряпок |
Ответ: PhysX wrapper
Здравствуйте!!!
У меня проблема с Physics. Чего только не пробовал...
Код:
bbb%=pxCreateTriMesh(vbank, fbank, nvert, nface,1) |
Часовой пояс GMT +4, время: 07:40. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot