|
3D-программирование Вопросы, касающиеся программирования 3D мира |
20.05.2010, 12:12
|
#271
|
Нуждающийся
Регистрация: 19.11.2008
Адрес: Украина, Луганск
Сообщений: 72
Написано 34 полезных сообщений (для 123 пользователей)
|
Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
Для управления физ телами, как обычными существуют команды pxKinematicSet(body%), pxKinematicClear(body%), pxKinematicMove(body%, x#, y#, z#), pxKinematicSetPosition(body%, x#, y#, z#), pxKinematicSetRotation(body%, pitch#, yaw#, roll#). Они все есть в документации.
P.S. Мало того, когда вы двигаете тела в кинематическом режиме, то при выходе из него они сохраняют скорость, крутящий момент и тд. (можно использовать для плавного перехода от анимации к рэгдолу - см. прикреплённый файл).
__________________
Лечим заражение... одна пуля - один больной.
|
(Offline)
|
|
Эти 6 пользователя(ей) сказали Спасибо viper86 за это полезное сообщение:
|
|
10.11.2010, 15:47
|
#272
|
AnyKey`щик
Регистрация: 05.11.2010
Адрес: Красноармейск, Украина
Сообщений: 17
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
Подскажите, пожалуйста, команды PhysX для реализации падения цилиндрического тела (бочка) в воду и плаванья этого тела на поверхности воды. И еще для куба и сферы. С параметрами и описанием хотя бы в пару строк.
Спасибо.
|
(Offline)
|
|
23.11.2010, 18:20
|
#273
|
Дэвелопер
Регистрация: 04.11.2009
Адрес: Украина, Днепропетровск
Сообщений: 1,480
Написано 662 полезных сообщений (для 1,985 пользователей)
|
Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
1. Закон всемирного притяжения
2. Закон Архимеда
Никогда не пользовался физиксом, но уверен что функции FloatThatBigBarrelInWater(WhatFuckingBarrelIs:TObj ect) нету
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
23.11.2010, 21:01
|
#274
|
Бывалый
Регистрация: 17.05.2009
Адрес: Днепропетровск
Сообщений: 672
Написано 180 полезных сообщений (для 428 пользователей)
|
Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
Никогда не пользовался физиксом, но уверен что функции FloatThatBigBarrelInWater(WhatFuckingBarrelIs:TObj ect) нету
|
Это нужно исправить!
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
29.12.2010, 11:17
|
#275
|
AnyKey`щик
Регистрация: 29.12.2010
Сообщений: 8
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
Всем привет Вчера решил заняться PhysX'oм, до этого пытался воплотить свои идеи с помощью newton'a. Но проблема с лицензионным ключиком от генерации мира, обрубило мне все возможности дальнейшего исследования. И вот с какой проблемой я столкнулся, все сочленения в PhysX'e, какие то хлипкие, вместо веревки получается разболтанная резинка, фиксированные соединения колбасит, будто соединение пружинное. Ораничения работают ограниченно. При небольшом количестве соединяемых тел, все более-менее, но если их больше пары десятков, начинаются чудеса, не устраняемые даже самыми жесткими ограничениями. Как устранить сии безобразия? Помогите пожалуйста..
|
(Offline)
|
|
29.12.2010, 11:52
|
#276
|
Мастер
Регистрация: 23.09.2009
Адрес: ленобласть
Сообщений: 1,189
Написано 447 полезных сообщений (для 2,526 пользователей)
|
Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
Raven конкретней задачу поставь. или сделай маленький пример
|
(Offline)
|
|
30.12.2010, 16:37
|
#277
|
AnyKey`щик
Регистрация: 29.12.2010
Сообщений: 8
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
Хорошо, пример:
segmQ = 100
Dim segment (segmQ)
Dim segment_px (segmQ)
Dim joint (segmQ)
For i=1 To segmQ
segment(i) = CreateCylinder (7)
segment_px (i) = pxBodyCreateCylinder (1,.5,8,.01)
ScaleEntity segment(i), 1,.5,1
pxBodySetPosition segment_px(i),-50+i,30,0
pxBodySetRotation (segment_px(i),0,0,90)
Next
For i=1 To segmQ-1
joint (i) = pxJointCreateSpherical (segment_px(i),segment_px(i+1),pxBodyGetPositionX( segment_px(i)),pxBodyGetPositionY(segment_px(i)),p xBodyGetPositionZ(segment_px(i)),1,0,0)
pxJointSphericalSetLimitAngle(joint(i),.0001,.0001 ,.0001)
Next
joint (0) = pxJointCreateFixed(0,segment_px(1))
joint (segmQ) = pxJointCreateFixed(0,segment_px(segmQ))
Например, я хочу изменить натяжение, не меняя количества сегментов, увеличение расстояния между сегментами не помогает, ограничения углов не меняет ситуацию заметным образом, даже изменение массы сегментов ничего не меняет, что странно... И что самое интересное, даже если заменить сферический джоинт на фиксированный, картина не меняется. То есть все время получается некая сопля, а если я хочу струну или вообще, упругий прут?
|
(Offline)
|
|
15.02.2011, 19:33
|
#278
|
ПроЭктировщик
Регистрация: 01.02.2011
Сообщений: 148
Написано 7 полезных сообщений (для 8 пользователей)
|
Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
У кого-нибудь там не затерялся случайно ключик от PhysX Wrapper
|
(Offline)
|
|
16.02.2011, 22:18
|
#279
|
Знающий
Регистрация: 08.11.2010
Адрес: Москва
Сообщений: 285
Написано 78 полезных сообщений (для 182 пользователей)
|
Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
есть, ща скину....
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
16.02.2011, 22:20
|
#280
|
Знающий
Регистрация: 08.11.2010
Адрес: Москва
Сообщений: 285
Написано 78 полезных сообщений (для 182 пользователей)
|
Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
}{@KeR, проверь личку
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
20.01.2012, 05:40
|
#281
|
Разработчик
Регистрация: 12.10.2008
Адрес: Самара
Сообщений: 437
Написано 55 полезных сообщений (для 92 пользователей)
|
Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
А можно ли сделать регдол если обьект анимируется бипедом?
и еще... я сделал визуальные пули, но мне нужно так же сделать чтобы физ тело получало необходимую физическую силу направленную от вектора попадания пули но с условием только если пуля долетела до обьекта, как этого добиться?
__________________
Пекарня: Intel Core i3 - 3240(3.40Ghz), ram 8 gb, video Gigabyte Nvidia GeForce GTX 650 1gb
Лэптоп : Intel Core i3 - 2365(1.40Ghz), ram 4gb, video Int Intel HD3000(512mb)
Мой набор: 3ds Max 9 + Xors3d(Blitz3d) + Photoshop
|
(Offline)
|
|
22.01.2012, 10:36
|
#282
|
Разработчик
Регистрация: 08.03.2007
Сообщений: 530
Написано 31 полезных сообщений (для 36 пользователей)
|
Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
Colossus, я где то спрашивал про проверку попадания пули инструментарием физикса. Диалог привел к тому что это очень затратно. Проще обычным лайнпиком проверять на расстояние которое пройдет пуля за апдейт. А силу приложить к точке части тела используя вектор попадания. Не помню какая команда, проще в этом плане булит.
|
(Offline)
|
|
22.01.2012, 20:16
|
#283
|
Мастер
Регистрация: 24.06.2009
Адрес: Набережные Челны
Сообщений: 930
Написано 292 полезных сообщений (для 504 пользователей)
|
Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
В Буллете тоже кажется есть linepick.
И Bullet вроде определён как более быстрый движок.
Хотя это мне наверное так показалось.. Ну это ещё и не доказано.
|
(Offline)
|
|
04.05.2012, 19:28
|
#284
|
Бывалый
Регистрация: 23.11.2011
Сообщений: 863
Написано 334 полезных сообщений (для 866 пользователей)
|
Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
братцы по двигу вот у меня проблема
делаю таскалку как в игре half life , portal
и тут эпик в виде того что мой обьект проваливается под землю если его туда направить
а если его двигать к поинту то он начинает бесится дойдя до него
з,ы, джоинты не предлогать !!
вот кусоу кода для этой таскалки
pick=CameraPick(camera,MouseX(),MouseY())
CameraPick(camera,MouseX(),MouseY())
pxRaySetPosition ray,EntityX(camera,1),EntityY(camera,1), EntityZ(camera,1)
pxRaySetDir(ray, PickedX#() - EntityX(camera,1), PickedY#() - EntityY(camera,1), PickedZ#() - EntityZ(camera,1))
cpos_x = pxRayGetPickX(ray,1)
cpos_y = pxRayGetPickY(ray,1)
cpos_z = pxRayGetPickZ(ray,1)
If MouseHit(2) =True
enable=1-enable
picked_body = pxRayGetBody(ray, 1)
EndIf
If enable = 1
If Not picked_body= player_body
If picked_body > 0
pxBodySetPosition (picked_body, EntityX(target,True), EntityY(target,True), EntityZ(target,True))
или
;pxMoveBodyToPoint(picked_body, 500 , EntityX(target,True), EntityY(target,True), EntityZ(target,True))
EndIf
EndIf
EndIf
|
(Offline)
|
|
04.05.2012, 20:59
|
#285
|
Элита
Регистрация: 21.01.2010
Адрес: Россия, Рязанская область, г.Михайлов
Сообщений: 2,067
Написано 1,185 полезных сообщений (для 2,828 пользователей)
|
Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
использовать магниты для таскалки? Вполне логично что именно так она и работает. Когда то давно баловался этим, всё получалось. Конкретно алгоритм не помню, но в двух словах объяснить могу:
0) создаём магнит вместе с мешью таскалки и задаём ему маску по которой он будет работать, выключаем магнит;
1) тыкаем в любой нужный объект(боди) лучом (pxRay который);
2) задаём ему магнитную маску как у магнита;
3) включаем магнит (тело полетело, всё круто);
4) натыкаемся на проблему - примагничиваемое тело пролетает сквозь нас со сверхзвуковой скоростью
5) точное решение проблемы п.4 не помню, но помоему (даже точно, а не помоему) во враппере есть команды-ограничители действия магнита и радиус на котором он не даёт пролететь предмету мимо себя;
6) если нужно отпустить - задаём предмету магнитную маску отличную от рабочей маски магнита и предмет сам падает.
Как то так. Поигравшись с магнитами всё должно получиться. В примерах от враппера есть несколько примеров для магнитов, там всё и узнаешь конкретно на практике.
Рад бы помочь кодом, но под рукой нет ни блица, ни враппера, ни моих старых наработок на эту тему.
__________________
Main PC:
Intel Core i5 4260U 1.44 GHz + LPDDR3 1x4096 1600 MHz + Intel HD Graphics 5000.
Asus Ёжик T101-MT:
Intel Atom N-570 1.66 Ghz + DDR2 2x1024 800 Mhz + Intel GMA 3150 128 Mb DDR2
Скачать Doom 2D: Remake v0.3.8a
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 15:34.
|