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)

Render 17.02.2007 03:17

PhysX wrapper
 
В честь нового апдейта решил и здесь запостить тему. Вот держите 0.7.4.0.

1. Наконецто приделал ключик. Теперь уже не буду всем вподряд слать новые версии врапера , и секономлю траф.
PxCreateWorld%(plane%, password$)


2. Испарвлены баги
- в тригерах
- тригера определяют статические поверхности
- с отставанием колёс машины
- теперь можно получить силу контакта со всеми телами (кроме плоскости)


3. Улучшены тригера. теперь тригер имеет свойства кинематики при этом в колизию не вступает, но заполняет даными о контакте структуру контакта. Может определить спящие тела.
появились две новые команды. Эти команды позволяют при перемещении тригера определять им
спящие тела.

pxTriggerSetPosition(body%, x#, y#, z#)
pxTriggerSetRotation(body%, pitch#, yaw#, roll#)


4. Добавлена очень полезная ф-я для копирования тел
Оказывается создания хулла занимает 6-7 мс. Это очень сильно вредит ФПС-ам. Для устранения этого эффекта была создана ф-я копирования тела. Время её выполнения меньше 1мс. Она копирует тело и пересчитует его центр масс. масса остаётся прежней.

pxCopyBody%(body%) - возвращает Ид нового тела.


5. Добавилась ф-я для определения радиуса колеса в райкаст подвеске
pxWheelGetRadius#(wheel%)
и функция которая проверяет сочление на разрыв
pxJointIsBroken%(joint%) - 1-разорвано. 0 -целое.


6. Появились партикл эмитеры

pxParticleCreateEmitter%() - создаёт партикл генератор
pxParticleEmitSetAngDamping(pEmitter, damp) - устанавливает угловое сопротивление частицам
pxParticleEmitSetLinDamping(pEmitter, damp) - устанавливает линейное сопротивлнеие частицам
pxParticleEmitSetMass(pEmitter%, mass#) - устанавливает массу частиц
pxParticleEmitSetRadius(pEmitter%, radius#) - радиус частиц
pxParticleEmitSetPosition(pEmitter%, x#, y#, z#) - позиция эмитера
pxParticleEmitSetRotation(pEmitter%, pitch#, yaw#, roll#) - поворот
pxParticleEmitSetRandRadius(pEmitter%, radius#) - радиус разброса частиц
pxParticleEmitSetStartSpeed(pEmitter%, min#, max#) - начальная скорость частици. Меняется рандомно от минимальной к максимальной.
pxParticleEmitSetTDAcceleration(pEmitter%, x#, y#, z#) - сила действующая на частици (гравитация)
pxParticleEmitSetScaleFactor(pEmitter%, radius#, rate#) - ф-я для изменения размеров частиц (они как бы растут, используется для дыма). radius - конечный радиус, больше которого частици не ростут. rate - шаг роста.
pxParticleEmitDeleteFirstParticle%(pEmitter%) - удаляет первую частицу с эмитера. При этом возвращает ентити пренадлежащий частице. очень удобно использовать для ограничения числа генерируемых частиц.
pxParticleEmitDeleteParticle(pEmitter%, particle%) - удаляет выбраную частицу

ф-и узнают параметры эмитера
pxParticleEmitGetAngDamping#(pEmitter%)
pxParticleEmitGetLinDamping#(pEmitter%)
pxParticleEmitGetMass#(pEmitter%)
pxParticleEmitGetRadius#(pEmitter%)
pxParticleEmitGetPositionX#(pEmitter%)
pxParticleEmitGetPositionY#(pEmitter%)
pxParticleEmitGetPositionZ#(pEmitter%)
pxParticleEmitGetRotationPitch#(pEmitter%)
pxParticleEmitGetRotationYaw#(pEmitter%)
pxParticleEmitGetRotationRoll#(pEmitter%)
pxParticleEmitGetRandRadius#(pEmitter%)
pxParticleEmitGetStartSpeedMax#(pEmitter%)
pxParticleEmitGetStartSpeedMin#(pEmitter%)
pxParticleEmitGetTDAccelerationX#(pEmitter%)
pxParticleEmitGetTDAccelerationY#(pEmitter%)
pxParticleEmitGetTDAccelerationZ#(pEmitter%)
pxParticleEmitGetScaleFactorRadius#(pEmitter%)
pxParticleEmitGetScaleFactorRate#(pEmitter%)

pxParticleEmitAddParticle%(pEmitter%, entity%) - создайт новую частицу в сцене
pxParticleUpdateEmitter(pEmitter%) - апдейт эмитера
pxParticleGetEntity%(particle%) - получить ентити
pxParticleGetBody%(particle%) - получить боди частици. Следует учитывать что боди это не есть частица. На её боди можно применять все те же команды что и на обычных телах. Даже можно ставить маски и группы колизий.
pxParticleGetradius#(particle%) - получает текущий радиус частици с учётом её увеличения.

Советы по применению:
- желательно не сыпать все частици в большую кучу иначе будет падение фпс
- для одного генератора можно генерировать не больше 10 000 частиц
- учитывайте, что это не флуиды, эти частици медленее работают. Просто над флуидами много работы, и будут готовы они не скоро.
- в дальнейшем планируется применения СинглМеш для частиц.
- По применению частиц смотрите семплы.


Теперь есть две версии врапера. Они поставляются в инсталяторах. В одном из инсталяторов есть райвера. Устанавливать содержимое нужно в папку блитц3д\юзерлибс.
Обновились семплы. Теперь их 55 штук. Когда поправлю демки, то выложу заново.

http://files.swargo.com/render/PhysX(drivers).exe - версия с дровами (желательно потестить) -1.6 метра

http://files.swargo.com/render/PhysX.exe - версия без дров - 600 кил

http://files.swargo.com/render/PhysX_Samples.rar - семплы. Все проверены на работоспособность. 1.6 -матра 55 семплов

За ключиком обращатся ко мне либо по мылу, либо в личку.

Megalan 17.02.2007 20:02

Re: PhysX wrapper
 
У меня ошибка. Семпл с машиной выдает ошибку о том что не найдена либа. (Другие не тестил)

---

После теста выявил что у него ошибка в pxSetGravity(0,-30,0) изменение ничего не даёт

Render 17.02.2007 20:14

Re: PhysX wrapper
 
Цитата:

Сообщение от Megalan
У меня ошибка. Семпл с машиной выдает ошибку о том что не найдена либа. (Другие не тестил)
После теста выявил что у него ошибка в pxSetGravity(0,-30,0) изменение ничего не даёт

Ты качал инсталятор с дровами или без? Если с дровами то проверь в реестре на наличие ключа.
HKEY_LOCAL_MACHINE\SOFTWARE\AGEIA Technologies
"PhysXCore Path"="C:\Program Files\AGEIA Technologies"
Это похоже на то что неустановился драйвер. Странно я вчера лично всё сам проверил. А ты точно в тот Юзерлибс установил :)

Megalan 17.02.2007 20:15

Re: PhysX wrapper
 
Цитата:

Сообщение от Render
Ты качал инсталятор с дровами или без? Если с дровами то проверь в реестре на наличие ключа.
HKEY_LOCAL_MACHINE\SOFTWARE\AGEIA Technologies
"PhysXCore Path"="C:\Program Files\AGEIA Technologies"
Это похоже на то что неустановился драйвер. Странно я вчера лично всё сам проверил. А ты точно в тот Юзерлибс установил :)

Всё точно. У меня стоят оффициальные дрова 6.12

----

PS. Вот бреееееед.... Переустановил дрова и теперь все работает...

Megalan 17.02.2007 20:35

Re: PhysX wrapper
 
Некоторые туторы пытаются залезть в реестр. Но так как нужного юзер либа нету то соответственно туторы не компилятся :)

Render 17.02.2007 20:37

Re: PhysX wrapper
 
Цитата:

Сообщение от Megalan
Некоторые туторы пытаются залезть в реестр. Но так как нужного юзер либа нету то соответственно туторы не компилятся :)

Ой, это случайно, Сорри. Удалите все строки для работы с реестром. Проверь мыло ;)

Megalan 17.02.2007 22:02

Re: PhysX wrapper
 
Слушай можешь сказать как заставить колидится все что есть на уровне с контентом загруженным из 3ds файла? А то сделал дорогу а она прозрачная для всего (Как в half-life когда включен noclip)

Render 18.02.2007 16:04

Re: PhysX wrapper
 
Тебе нужно использовать тримеш. Смотри примеры в папке TriMesh, или пример с машиной Победа.

ЛысыЙ_Чук-Иванчук 20.02.2007 19:26

Re: PhysX wrapper
 
Теперь если что то вот:
http://rubux.swargo.com/rus/

Render 25.02.2007 03:12

Re: PhysX wrapper
 
Релиз 0.7.5.0

Самое главное изменение это переход на новый СДК. так что нужно качать всё полностью с драйверами. И поудалять все старые длл-ки. желательно всё хорошенько проверить, а то я невсиле всё сам проверять на баги.
Поскольку удалось перейти на новый СДК, то возможно скоро появятся флуиды м продвинутые мягкие тела . Так что ждёмс.
В примерах появилось два новых. Один от МадМедика - хорошо демонстрирует контакты (смотреть всем в папке Contact). Второй от меня в папке с машинами. там подвеска на сочлениях. Сильно неругать, я её зделал за 15 минут.

1. Добавлена подвеска на сочлениях

pxJointCreateSuspFront%(body0%, body1%, x#, y#, z#) - сочление для передних колёс
pxJointCreateSuspBack%(body0%, body1%, x#, y#, z#) - для задних колёс
pxJointSuspSetSteerN(joint%, x#, y#, z#) - ось вращения колеса
pxJointSuspSetTurnN(joint%, x#, y#, z#) - ось поворота колеса
pxJointSuspSetLinLimit(joint%, lim#)- линейное ограничение хода
pxJointSuspSetLinParameter(joint%, spring#, rest#, damp#) - параметры линейного огарничения
pxJointSuspSetAngLimit(joint%, lim#) - угловое ограничение
pxJointSuspSetAngParameter(joint%, spring#, rest#, damp#) - параметры
pxJointSuspSetAngle(joint%, angle#) - угол поворота колеса
pxJointSuspSetSpeed(joint%, speed#) - установка скорости вращения (лучше не использовать, поскольку сила вращения прикладывается одновременно и к машине, поэтому она может переварачиватся. Для этого можно использовать Торкуе (желательно) или команды вращения и угловой скорости)
pxJointSuspSetBrake(joint%, mode%) - типа ручник . mode = 0 колесо свободно. mode = 1 - заблокировано

Я особо непытался настроить подвеску. В примере нужно применить материалы с хорошим сцеплением, и колёса вращать Торкуе (моментом вращения). также нужно обратить внимание на то что во всех тел есть ограничение угловой скорости. Для этого нужно будет увеличить pxSetMaxAngularSpeed(body%, speed#). на больших скоростях могут проявлятся баги. Вот вырезка из хелпа к Физиксу

Lets you set the maximum angular velocity permitted for this actor.
Because for various internal computations, very quickly rotating actors introduce error into the simulation, which leads to undesired results.
With NxPhysicsSDK::setParameter(NX_MAX_ANGULAR_VELOCITY
) you can set the default maximum velocity for actors created after the call. Bodies' high angular velocities are clamped to this value.
However, because some actors, such as car wheels, should be able to rotate quickly, you can override the default setting on a per-actor basis with the below call. Note that objects such as wheels which are approximated with spherical or other smooth collision primitives can be simulated with stability at a much higher angular velocity than, say, a box that has corners.
Note: The angular velocity is clamped to the set value before the solver, which means that the limit may still be momentarily exceeded.

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



2. добавилась команда установки групы колизии

pxWheelSetCollisionGroup(NxWheelShape* wheel, int group)


3. Убрал глюк с проваливанием колёс во время засыпания машины


4. Добавились команды для работы с реестром. Конечно немного, но для некоторых мелочей хватит. Сделал специально, что бы нетаскать с собой дополнительную длл-ку для работы с реестром.

pxRegWriteDriverPath%(str$) - записывает в стандартный ключ путь где в текущий момент находятся драйвера. очень полезная ф-я. путь должен указывать на папку с номером версии
pxRegWriteDriverPath("C:\Program Files\AGEIA Technologies")

pxRegWriteString%(RootKey%, Path$, Name$, Data$) - записывает в реестр строку
pxRegWriteInt%(RootKey%, Path$, Name$, Data%) - записывает в реестр целое число
pxRegReadInt%(RootKey%, Path$, Name$) - возвращает целое
pxRegReadString$(RootKey%, Path$, Name$) - возвращает строку
pxRegDeleteValue%(RootKey%, Path$, Name$) - удаляет значение в ключе Name
Значения разделов имеют следующий вид:

RootKey = 0 HKEY_CLASSES_ROOT;
RootKey = 1 HKEY_CURRENT_USER;
RootKey = 2 HKEY_LOCAL_MACHINE;
RootKey = 3 HKEY_USERS;
RootKey = 4 HKEY_PERFORMANCE_DATA;

Все команды проверены.

5. Команда для установки локальной угловой скорости.

pxSetLocalAngularSpeed(body%, lx#, ly#, lz#)

6. Исправлены ошибки с контактами

HolyDel 25.02.2007 11:08

Re: PhysX wrapper
 
а где взять?

Render 25.02.2007 13:56

Re: PhysX wrapper
 
Цитата:

Сообщение от HolyDel
а где взять?

Только здесь http://rubux.swargo.com/rus . В разделе Файлы

Render 06.03.2007 03:38

Re: PhysX wrapper
 
Наконецто готов хелп!!! Качать в разделе файлов.

Новый релиз 0.7.6.0

1. Исправлены ошибки с тригерами. Тригер может определить 200 форм находящихся в нём. Еужно различать формы и тела. Компаунд может иметь несколько форм. Тригер имеет 2 формы. Простые тела имеют по одной. Если количество тел в тригере превышено, то они просто небудут определятся и МАВ больше небудет.

2. Устранён глюк с Удалением мира когда в нём есть тряпки.

3. наконецто нормально работают контакты (надеюсь ошибок больше небудет)


4. Добавлены новые команды для райкаст подвески.
pxWheelGetSuspensionTravel#(wheel%)- узнаёт длину пружины
pxWheelGetSuspensionRestitution#(wheel%) - жёсткость пружины
pxWheelGetSuspensionDamping#(wheel%) - затухание (сопротивление)


5. Добавлена команда для отключения райкасту тела
pxBodySetFlagRayCast(body, stat)


6.
pxBodySetCollisionGroupPair(int group1, int group2) - Команда включает заполнение информациеё о контакте между двумя группами. По умолчанию информация о коллизии (кординаты коллзии, тела и т.д.) получается только между телами с группой 0. Если группа была изменена, то нужно поставить будет ли эта группа заполнятся информацией о контакте.


7. Команда которая отключает проверяемость тела на нахождении в тригере. Тело не будет в нём определятся при
установки флага в ноль
pxBodySetFlagTriggertable(body%, stat%)


8.Добавлена металическая тряпка
pxCreateMetalCloth%(entity%, surf%, coreActor%, impThr#, depth#)
entity% - блитцевский ентити
surf% - сюрфейс данного ентити
coreActor% - физическое тело основы
impThr# - сила удержания
depth# - шаг сминания

Создайт мягкое тело со свойствами металла. Это тело небудет востанавливать прежнюю форму после сминания. Для правильной работы нужно физическое тело основы, оно должно быть похоже по форме на мягкое тело. Тело основы будет задавать области сминания мягкого тела. Мягкое тело сомнётся лиш в том случае когда выйдет за пределы основы. Сила удержания - это та сила с которой мягкое тело привязано к основе. Шаг сминания указывает насколько сомнётся тело за один удар.

moka 06.03.2007 04:01

Re: PhysX wrapper
 
Какие могут быть причины не запуска враппера, если я в клубе, установил драва, поставил блиц (скопировал домашний), и примеры тестяца, а дома нет, выводит MAV на Gravity, как-будто я не ввожу key. Меня это очень даже трогает и не устраивает, да и если я не один такой? Что делать то?

Render 06.03.2007 21:32

Re: PhysX wrapper
 
давно мне нужно было это зделать :)
http://rubux.swargo.com/rus/index.ph...ticles&b=2&a=3

ФАК по установке и решению проблем.

Render 01.04.2007 01:07

Re: PhysX wrapper
 
Новый релиз 0.7.7.0

1. Добавлены Ф-и которые узнают скорость локальной точки на теле.

pxBodyGetLocalPointSpeedX(body%, x#, y#, z#)
pxBodyGetLocalPointSpeedY(body%, x#, y#, z#)
pxBodyGetLocalPointSpeedZ(body%, x#, y#, z#)


2. Расширена работа с тряпкми

pxClothMaskSet(Cloth%, mask%) - устанавливает маску колизии для тряпки. аналогична командам для обычных тел.
pxClothMaskCombineSet(Cloth%, mask%) - продвинутый режим установки масок
pxClothGetEntity%(Cloth%) - получает ентити от тряпки
pxClothSetUserData(Cloth%, userdata%) - устанавливает пользовательские данные тряпке
pxClothGetUserData%(Cloth%) - возвращает пользовательские данные

pxClothAddForceAtPos(Cloth%, pos_x#, pos_y#, pos_z#, magnitude#, radius#) - добавляет силу в позицию
pxClothAddForceAtVertex(Cloth%, nx#, ny#, nz#, vID%) - добавляет силу вершине с индексои ИД.


3. Добавлены две ф-и для партикл эмитеров

pxParticleEmitGetNumberParticles%(pEmitter%) - узнаёт количество частиц в партикл генераторе на даный момент
pxParticleEmitDelete(pEmitter%) - удаляет генератор частиц и все частици.


4. Добавлена функция для удаления pxCreateSpringAndDamperEffector

pxDeleteEffector(effector%)


5. Появились маски на магниты. пример прилагается в семплах

pxMagnetSetMask(mdata%, mask%) - устанавливает маску магниту. Установка идёт в двоичной системе. Например:
Установим магниту маску bin(101) или в десятичной 5.
Возьмём три вида тел
Метал - поставим маску bin(001)
дерево - поставим маску bin(010)
ну и ещё что то - поставим маску bin(110)
Как вы догадались метал и ещё что то будет магнитится , а дерево - нет. Проверка идёт по логическому "И"

pxMagnetGetMask%(mdata%) - узнаёт маску магниту
pxBodySetMagnetMask(body%, mask%) - ставит маску магнетизма на иело
pxBodyGetMagnetMask%(body%) - узнаёт маску магнетизма из тела

6. Исправлены баги в тригерах. И для ускорения работы добавлена ф-я

pxUpdateTriggers() - обновляет тригера в сцене.


7. Проведены оптимизации, отладка, шлифовка врапера и переделаны примеры.


Всё качать по старым ссылкам. Внимание!!!! теперь драйвера и и врапер раздельно. Установку нужно производить в паку блитц3д, а дальше инсталятор сам поставит в юзерлиб. Также с виндовса можно поудалять ФизиксЛоадер и НхКукинг. Врапер приобрёл уже комерческий вид и больше в винду ставится ничего не будет, так что советую поудалять всё лишнее.
Примено в таком виде всё и останется в дальнейшем. Возможны мелкие штрихи.

Также есть полный английский хелп. Он шире чем русский и дополненый. Если бы его кто то проверил ещё, я был бы безмерно благодарен!!! У самого плохо с английским. Кому нужно, могу выложить.

Render 18.04.2007 00:26

Re: PhysX wrapper
 
Релиз 1.0

1. Исправлены мелкие недочёты и уменьшен обьём занимаемой памяти каждым телом :)


2. Исправлена ошибка возникающая в тригере типа хулл.


3. Доработаны материалы и добавлены новые ф-и.

pxCreateAnisotripicMaterial%(nx#, ny#, nz#) - изменился синтаксис. теперь материал
присваивается командой pxMaterialSetToBody(body%, mat%)

Команды устанавливают режим выбора материала при взаимодействии двух тел. Известно что каждое

тело имеет свой материал, как тогда в этом случае будет считатся результирующий? Эти команды

помогут в этом деле:
pxMaterialSetRestitutionCombineMode(mat%, mode%) - для упругости
pxMaterialSetFrictionCombineMode(mat%, mode%) - для трения

mode%:
0 - среднее значение: (a + b)/2. - по умолчанию
1 - материал с минимальным значением: min(a,b).
2 - значение материалов перемножаются: a*b.
3 - максимальное значание из двух материалов: max(a,b).
4 - This is not a valid combine mode, it is a sentinel to denote the number of possible values.

We assert that the variable's value is smaller than this.

pxMaterialSetFlagStrongFriction(mat%) - устанавливает флаг материалу. С этим флагом материалы

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


4. добавлены новые ф-и для контактов

pxContactEventsOnStartTouch%(body%) - устанавливается в 1 когда тело вступает в контакт. 1 - действует на протяжении одного цикла. Используется для озвучки падающих предметов. Например,

когда нужно узнать начало проигрования ролика со звуком удара.
pxContactEventsOnEndTouch%(body%) - устанавливается в 1 когда тело выходит с контакта. Даже незнаю зачеи она нужна )))


5. Добавилась команда

pxSetTiming(maxTimeStep#, maxIter%, StepMethod%) - команда для настройки дельтатайма мира.
по умолчанию имеет вид pxSetTiming(1/60, 8, 0)

method%:
0 - TIMESTEP FIXED.
1- TIMESTEP VARIABLE.
2 - TIMESTEP INHERIT. Inherit timing settings from primary scene. Only valid for compartments.


6. Внимание!!!!!!!!!!!!!
Поменялся синтаксис основной команды

pxRenderPhysic(time#, sinc%) - новый синтаксиси команды


Обновлены семплы и хелп.

moka 03.07.2007 20:41

Re: PhysX wrapper
 
Есть новости с фронта?

Render 03.07.2007 23:16

Re: PhysX wrapper
 
Ну канечно, уже давно можно скачать версию 1.1 с сайта. Там организована подержка всех существующих двигов. В том числе БлитцМакс, Блитц3д СДК ну и так далее. работает всё вплоть до тряпок.
Сегодня появился СДК 2.7.2. так что ждите обьёмные поля сил, и улучшеные тряпки.

johnk 04.07.2007 12:21

Re: PhysX wrapper
 
Молодец! Немедлено же проплюсадиню твои мессаги! Ибо хоть какая то мера благодраности.

jimon 04.07.2007 13:06

Re: PhysX wrapper
 
Render
они гады не выложили заметки к 2.7.2 :)
расказывай что изменили или банально Release Notes выложи

Render 04.07.2007 15:25

Re: PhysX wrapper
 
http://www.ageia.com/developers/sdk_rn.html

было выложено ещё 2 месяцы назад

ABTOMAT 04.07.2007 17:20

Re: PhysX wrapper
 
Render? а почему русского хелпа нет?

Может, я чем могу помочь? (например пару обучений напишу или переводов)? Если что стукни в асю :)

438-012-412

Render 04.07.2007 21:08

Re: PhysX wrapper
 
Есть наброски рус хелпа в екселе. Там много ошибок неточностей, просто не желания не времени заниматся этим нету. Разработка хелпа это такая нудная и надоедливая работа. С меня английской версии хватило :)
Также есть проблема с руским шрифтом, во время перегонки с екселя в нормальный вид.

ABTOMAT 05.07.2007 13:56

Re: PhysX wrapper
 
Обнаружены ошибки в хэлпе:

Нет описания к командам:
  • GetCompoundFromMesh
  • pxBodySetEntity

Ошибки в примерах:
  • В примере Compound в функции GetCompoundFromMesh нельзя указать статический объект или динамический
  • В этом же примере не работает и масса - что ни указываешь - всё одно.

И ещё наверное пары. Буду по мере читканья Хэлпа дописывать в этот пост.
З.Ы. Если мне обьяснят что это за команды могу дописать их в хэлп :)

Render 06.07.2007 13:01

Re: PhysX wrapper
 
Полезное дело делаеш!

Цитата:

Обнаружены ошибки в хэлпе:
Нет описания к командам:
GetCompoundFromMesh
pxBodySetEntity
GetCompoundFromMesh - это команда из парсера 3дМоделей, она не от Физикса :). Команда разбирает модель по установленым рнее ключам и создаёт из неё физ тело. Я как то давно описовал работу парсера, нужно поискать :)

pxBodySetEntity - в самом деле пропустил. исправлю :)
А вообще в хелпе ещё неописаны команды из релиза 1.1

Цитата:

Ошибки в примерах:
В примере Compound в функции GetCompoundFromMesh нельзя указать статический объект или динамический
В этом же примере не работает и масса - что ни указываешь - всё одно.
Ну дак правильно. Можно указывать только тело обьект специально подготовленый для парсера.

Render 06.07.2007 13:04

Re: PhysX wrapper
 
Вообщем сейчас делаю обьёмные поля сил. Уже более менее разобрался, поидее ничего сложного. А вот для юзеров будет сложновато. Там, что бы настроить желаемый эфект нужно устанавливать элемены матрици в определёные значения. Проблема ещё в том, что эту самую матрицу придётся тащить в блитц как-то.
Также нужно понимание аксеальной, радиальной и тангегсиальной составляющей. В доках примеров нету, приходится самому разбиратся.

ABTOMAT 06.07.2007 16:22

Re: PhysX wrapper
 
Render, стараюсь :-) Буду дописывать тот пост где написал обнаруженные ошибки по мере их обнаружения.
Огорчает отсутствие обучений (не описания команд а именно обучений) на русском языке. Я по мере изучения враппера мог бы написать парочку :)

Render 02.09.2007 19:22

Re: PhysX wrapper
 
Апдейт 1.2.

1. исправлены контакты, теперь для машин в контакте не участвуют райкаст колёса.

2. И СофтоБоди :)

pxCreateSoftBody%(OBJfile$, TETfile$, vbank*, numVert%, pos_x#, pos_y#, pos_z#, rot_x#, rot_y#, rot_z#) - Создаём софтоБоди
OBJfile - файл который юзается дл генерации тетрагонов и построение связей с граф мешем физического
TETfile - файл с тетрагонами
vbank - банк вершин от блитцмеша, нужен для связи блитц меша с физическим
дальше идёт позиция и поворот СБ

pxSoftBodyGetNumVert%(SB%) - получает количество вершин СБ
pxSoftBodyGetVertexPos(SB%, vbank*, numVert%) - получает банк позиций всех вершин
pxSoftBodyGetNormals(SB%, nbank*, numVert%) - возвращает банк нормалей
pxSoftBodyIsSleeping%(SB%) - определяет спит СБ или нет
pxSoftBodyPutToSleep(SB%) - усыпляет СБ (если юзается ядро, то СБ нельзя усыпить)
pxSoftBodyWakeUp(SB%, interval%) - будит СБ

pxSoftBodySetAttachmentResponseCoefficient(softBod y%, coef#) - Коефициент связи с телом к которому привязано СБ
pxSoftBodySetAttachmentTearFactor(softBody%, coef#) - сила, которую нужно приложить, что бы оторвать СБ от тела
pxSoftBodySetCollisionResponseCoefficient(softBody %, coef#) - хз, в доке ничего нельзя понять =)
pxSoftBodySetDampingCoefficient(softBody%, coef#) - сопротивление среды
pxSoftBodySetExternalAcceleration(softBody%, x#, y#, z#) - приложение внешнего ускорения
pxSoftBodySetFriction(softBody%, fric#) - трение
pxSoftBodySetLinkRadius(radius#) - используется до создания СБ. Для создания СБ необходимо постороить связь между физ телом и мешем. Если некоторые вершины не привязаны, то нужно увеличить этот радиус.
pxSoftBodySetMask(softBody%, mask%) - ставит маску колизии
pxSoftBodySetMaskCombine(softBody%, mask%) - ставит маску колизии, аналогична с обычными телами
pxSoftBodyMaskClear(softBody%) - убирает маску
pxSoftBodySetName(softBody%, name$) - устанавливает нейм
pxSoftBodySetParticleRadius(softBody%, radius#) - ставит радиус колизии частици
pxSoftBodySetSleepLinearVelocity(softBody%, vel#) - скорость на засыпание
pxSoftBodySetSolverIterations(softBody%, iter%) - количество проходов (просчётов) СБ за цикл, чем меньше это число тем быстрее работает.
pxSoftBodySetStretchingStiffness(softBody%, coef#) - тянучесть, гибкость
pxSoftBodySetVolumeStiffness(softBody%, coef#) - обьём СБ, Если быть точным, то это как бы давление внутри Тетрагона

Команды получают даные от СБ:
pxSoftBodyGetAttachmentResponseCoefficient#(softBo dy%)
pxSoftBodyGetAttachmentTearFactor#(softBody%)
pxSoftBodyGetCollisionResponseCoefficient#(softBod y%)
pxSoftBodyGetDampingCoefficient#(softBody%)
pxSoftBodyGetFriction#(softBody%)
pxSoftBodyGetName$(softBody%)
pxSoftBodyGetParticleRadius#(softBody%)
pxSoftBodyGetSleepLinearVelocity#(softBody%)
pxSoftBodyGetSolverIterations%(softBody%)
pxSoftBodyGetStretchingStiffness#(softBody%)
pxSoftBodyGetVolumeStiffness#(softBody%)

pxSoftBodyAttachToShape(softBody%, body%) - Крепит СБ к боди, Если юзать эту команду, то СБ и боди будут иметь взаимное влияние. Тоесть Когда СБ вступит в колизию, то ядро на неё отреагирует.
pxSoftBodyAttachToCollidingShapes(softBody%, tearable%) - крепит СБ ко всем телам, что пересекают его. В этом случае обратной связи нет.
pxSoftBodyDetachFromShape(softBody%, body%) - отделяет СБ от тела
pxSoftBodyAttachVertexToGlobalPosition(softBody%, vertID%, x#, y#, z#) - фтачит вершину в позицию
pxSoftBodyFreeVertex(softBody%, vertID%) - освобождает вершину
pxSoftBodyAddForceAtPos(softBody%, pos_x#, pos_y#, pos_z#, magnitude#, radius#, mode%) - прикладывает силу в позиции
pxSoftBodyAddForceAtVertex(softBody%, x#, y#, z#, vertID%, mode%) - прикладывает силу.



Инструкция как создавать СБ и файл тетрагонов:

1. Открываем 3дмакс или любой другой редактор и создаём модель
1.1 После создания ставим центр модели в её геометрический центр с помощью кнопки "Use selection Center"

1.2 Перемещаем модель так, что бы её центр совпал с центром координат 3дМакса

1.3 Сохраняем модель в Model.b3d и Model.obj. Б3Д можно заменить любым другим.

С 3дмаксом закончили.

2. Открываем утилиту PhysXViewer
2.1 Импортируем Model.obj
2.2 Создаём тетрагоны. Порядок действий на рисунке. Качество модели можно регулировать ползунками. После перемещение ползунков, нужно заново сгенерировать тетрагоны.

Должна быть следующая картина

2.3 Експортим всё в файлы Model_SB.obj и Model_SB.tet


3. Открываем блитц, и по примерам создаём своё СБ

Если наловчится, то вся процедура занимает меньше 2 минут. Просто нужно потренироатся немного :)



PhysXViewer качаем здеся (ели выковырял его с Агеевского СДК) http://files.swargo.com/render/PhysXViewer.rar

Новый врапер: http://files.swargo.com/render/PhysX(Pro).exe

И семплы с софтободями: http://files.swargo.com/render/SoftBodiesSamples.rar
Советую посмотреть семпл Funny.bb. Класная штука, я долго наслаждался. Там шляпа на анимированой голове, короче смотрите сами. Также прикольный пример Бубле
З.Ы. Примеры, только в исходниках.

Render 02.09.2007 19:22

Re: PhysX wrapper
 
Хочу также поправить Доку, принимаю предложения по оформлению. Просто сейчас не нравится тем что, нету возможности поиска. Думаю определёные групы команд вынести на один листик, а там уже поиск по страничке рулит. Также думаю рускую версию закончить, но самому времени писать нету.

И ещё замечание по СБ, чем меньше вершин в Физ моделе, тем быстрее работает. Количество тетрагонов почти не влияет.
Жду отзывов и сообщений о глюках, если таковы будут.

ЛысыЙ_Чук-Иванчук 03.09.2007 00:03

Re: PhysX wrapper
 
Есть вопрос, врапер с реестром?_ все ОК=)
Позже:
А ето правельно что у клоуна постепенно съежала шляпа в сторону?

Render 03.09.2007 00:52

Re: PhysX wrapper
 
Версия без реестра лично от меня.
Цитата:

А ето правельно что у клоуна постепенно съежала шляпа в сторону?
Нет :)
Поставь масу голове в 0, или отключи гравитацию. Я заметил когда уже всё выложил.

ЛысыЙ_Чук-Иванчук 03.09.2007 15:19

Re: PhysX wrapper
 
Штука однозначно прекольная, НО люди у которх есть чувство меры, и богатая фонтазия скажите как ето чудо можно использовать в игре!-???
ЗЫ\ я придумал можно как колёса=)

moka 03.09.2007 15:38

Re: PhysX wrapper
 
Ну прикинь, у тебя шутер с indoor сценами, тут ты вбегаешь в комнату, и давай палить по всему что видишь из колаша! Тут у тебя плюшевый мишка, сворачивается в трубочку и ударяясь об стену красиво падает и отскакивает. Да много где, или же если сделать чтото подобие Little Big Planet, только не отдельными персонажами а мышкой, там всякие объекты кидать ну и т.п. да Много где мона, только фантазию включить ;)

johnk 03.09.2007 15:57

Re: PhysX wrapper
 
Делай не рушимую органику.

Render 03.09.2007 18:35

Re: PhysX wrapper
 
Поиграть в футбол мягким мячиком. Сделать грузовик, который перевозит огромное желу в кузове. Создать пальму с листвой которая реагирует на мир. Разбросать по уровню разные мягкие тела и ХЛ2 тупо отдыхает.
Даже в крайнем случае приделать шляпу как в примере. Ну я даже незнаю, поидее поле для идей просто неограниченое, учитывая что аналогичных игр почти нету.

moka 03.09.2007 19:05

Re: PhysX wrapper
 
Или такая игруха, перед тобой морда била гейца, и видишь свои кулаки, и ДАВАЙ ЕМУ ПО МОРДЕ! Вот это расслабон! :D Так его с кулака Цмык, а у него по коже Волна! :D Как в матрице блин.

Render 23.09.2007 15:24

Re: PhysX wrapper
 
Вот официальный апдейт 1.2
http://rubux.swargo.com/rus/?module=...on=topic&id=52

З.Ы. Если кто хочет занятся переводом хелпа на русский, буду очень благодарен, да и все остальные думаю тоже будут благодарны :)

SeJay 20.10.2007 13:49

Re: PhysX wrapper
 
сайт http://rubux.swargo.com ваще не работает! Кто знае где еще моно найти PhysX?

Render 20.10.2007 14:07

Re: PhysX wrapper
 
Сорри, совсем забыл сказать. Старый сайт был утерян, вот пришлось переехать на новый хост ну и заодно новый домен прикупил.
http://rubux.net
Если будет время, то поставлю версию для рус пользователей.

ЛысыЙ_Чук-Иванчук 21.10.2007 19:22

Re: PhysX wrapper
 
Вложений: 2
Решил не создовать новой темы а отпесатся тут,
Просек баг, или не баг, короче мучался 2 дня, и понял почему ето-
Проблема с поплывком:
предыстория=)
Я в 3Д масе создою объект и в его имени прописываю пораметы, затем в блице объект создоётся и по пораметрам добовляются фишки:)
Короче создаю я поплывок, присоеденяется все окей, но это окей было до одного момента. Суть в том что пока объект который не поворачивался в 3Д масе работает прекррасно, т.е. все нормально, но если я поворачиваю объект то потом в блице происходит косяк- поплывак какбы разворачивает объект затем пресоеденяется и возврощяет на исходную, может звучит глупо но так оно и есть
Прикрепил картинку там все наресовано
1- Прямоугольник серый и зелёный поплывок(если так экспортнуть то все ОК)
2- Но если развернуть объект то
3- уже в блице по идеии поплывок должен присондалится туды где перечёркнуто синим крестом, а нее он находится выше, кабута я поворачивал не тока объект- НО и поплывок тожа.
Мне конечно былобы не лень просто выровнить всем объектам в максе напровления(кнопочка есть)
Но у меня появились проблемы при сохронении.

Render 22.10.2007 01:04

Re: PhysX wrapper
 
Видимо загружал модель как анимированую. Там с поворотами нужно быть очень осторожным. Проверь всё 10 раз, 100% где то накосячил при получении поворота модели с макса.

ЛысыЙ_Чук-Иванчук 22.10.2007 10:21

Re: PhysX wrapper
 
Цитата:

Сообщение от Render
Видимо загружал модель как анимированую. Там с поворотами нужно быть очень осторожным. Проверь всё 10 раз, 100% где то накосячил при получении поворота модели с макса.

возможно, но проверял уже 9 раз точно:)
Ладна покушаю потом соберу пример, ато может и правду где в коде не углядел.И еще наверна нада попробывать перед пределыванием поплывка сделать объект как кинематику.

SeJay 22.10.2007 15:24

Re: PhysX wrapper
 
Люди!!! подскажите какой враппер лучше использовать PhysX или Ньютона?

moka 22.10.2007 15:36

Re: PhysX wrapper
 
SeJay, смотря для чего :) Я попробовал токамак, оде, ньютон и физикс. И выбрал физикс, имхо: он лучший, во первых скорость и функционал превосходит все другие, во вторых, ограничения костей, в третьих,... ну так можно долго продолжать. ИМХО: Физикс.

SeJay 22.10.2007 16:35

Re: PhysX wrapper
 
Спасибо за совет, Moka. А знаеш где взять хелп и примеры для ФизИКС?

moka 22.10.2007 16:48

Re: PhysX wrapper
 
Вот, http://rubux.net/
только к автору тоже нужно обращаться ;)

CRASHER 28.10.2007 18:28

Re: PhysX wrapper
 
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
PhysXViewer качаем здеся (ели выковырял его с Агеевского СДК) http://files.swargo.com/render/PhysXViewer.rar

Новый врапер: http://files.swargo.com/render/PhysX(Pro).exe

И семплы с софтободями: http://files.swargo.com/render/SoftBodiesSamples.rar
Советую посмотреть семпл Funny.bb. Класная штука, я долго наслаждался. Там шляпа на анимированой голове, короче смотрите сами. Также прикольный пример Бубле
З.Ы. Примеры, только в исходниках.
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

а уменя ссылки не работаюююют:''((

Черный крыс 29.10.2007 02:33

Re: PhysX wrapper
 
Рендер здарова!!!
Эта самое.....ээээ....на сайте у тебя надпись на картинке написана с ошибкой....=))) (Rubux Sofware)

Render 30.10.2007 01:02

Re: PhysX wrapper
 
ЛысыЙ_Чук-Иванчук, а что там собственно было?

CRASHER, вот вроде оно http://rubux.net/downloads/Soft_Bodies.rar

Diablo1909, твою.. В самом деле ошибка )) Я не замечал, да и видимо никто другой тоже ))

ЛысыЙ_Чук-Иванчук 30.10.2007 13:02

Re: PhysX wrapper
 
Цитата:

Сообщение от Render
ЛысыЙ_Чук-Иванчук, а что там собственно было?

Render- не суть такая есть объект(к примеру машина) у машины перед тяжелее по этому поплывок нада ствить ближе к заду:)
Но тут вознакает ОЧЕНЬ нехороший косяк, есть команда позиционирущяя поплывок в глобальном отношении НО она зависит от того на скока повернут объект Т.Е. если мы машину Не поворачивает то все окей(при этом даже если в максе повернуть то буде тоже само) что получается, короче щяс покажу опять пример который тада кидал:)
там две строки
1- грузит базу 1 НЕ повернут
2- объект был повернут на 90 но поплывок встает так- какбудто мы не поворачивали объект(я думаю в физиксе при позиционировании поплывка делается так- объект к которому приделыается объект поворачивается 0,0,0 затем поплывак ставится в позицию(при этом я его ставлю как ГЛОБАЛ) и после етого объект поворачивается на исходную!!!!)
ЗЫ\ блин пример на буке- а тама щя Жописта ставится:-D , к вечеру кину пример.

Терминатор01 01.11.2007 06:11

Re: PhysX wrapper
 
Скачал таки за 2 дня эту бороду и исходники
к ней. Всё закинул в нужные папки как написано
а оно ничего не работает.
Пишет:
"Function PxCreateWorld not found"
Версия lBlitz3D 1.99

ЛысыЙ_Чук-Иванчук 01.11.2007 10:49

Re: PhysX wrapper
 
Дравишки криво лежат(ацкая проблема для разработчиков- тоесть нас;))
Проси у автара бездровную версию!

moka 01.11.2007 11:41

Re: PhysX wrapper
 
Терминатор01, открой реестр (Win+R; "regedit"; Ok;) далее, го по пути:
HKEY_LOCAL_MACHINE > SFTWARE > AGEIA Tehnologies
Там смотри будет переменная, она может не проставиться (пустая), так вот поменяй ещё на путь к дравам, обычно это "C:\Program Files\AGEIA Technologies".

А так если "Function PxCreateWorld not found", то проблемма не в драйверах.

Stabilitron 01.11.2007 15:01

Re: PhysX wrapper
 
А в чем тада? у меня таже проблемма=( дрова стоят, dll-ки лежат. А примеры не пашут. с той же ошибко1 ( функция psx нот фоунд)

moka 01.11.2007 15:38

Re: PhysX wrapper
 
Stabilitron, читай на оффе статью о подрублении, там всё отлично понятно.

Render 02.11.2007 02:11

Re: PhysX wrapper
 
Анука загляните в деклс, а то в кого то в деклсе были ф-и левые. Мож что от каких других враперов осталось.
А ещё лучше ко мне в асю.

Терминатор01 02.11.2007 10:13

Re: PhysX wrapper
 
HKEY_LOCAL_MACHINE > SFTWARE > AGEIA Tehnologies - такой ветки у меня нету.
HKEY_LOCAL_MACHINE>SOFTWARE а дальше ничего похожего.

Никаких левых Длл-ок у меня тоже нет. Только недавно переустановил
систему и поставил абсолютно чистый и голый Blitz3D 1.99.
До этого раньше ставил Ньютона на 1.98, всё работало без всяких траблов,
но сейчас папка была пустая до установки.

Скачивал версию с оф сайта. Версии без дров (как тут писали) там нету
так что поставил то что есть. Инсталлировал в C:\Program Files
а потом скопировал папки в Блиц. Может надо было сразу в Блиц
инсталлировать, но там небыло написано инсталлируйте в Блиц.

Ася - ещё одна возможность мучить друг другу мозги.
Я хоть и начинающий, но Ньютон то у меня ставился без проблем.
Проблема есть и надо её решать.
Кстати проблема не только у меня. В этом топике тоже народ
жалуется http://igrostroenie.my1.ru/forum/3-195-1


Вычитал что разработчик изменил синтаксис команд.
Получается что старые примеры можно выбросить?
Хотя я качал всё одновременно с оф сайта, почему бы им не работать.
Или он перемудрил с ключом и версия получилась не шароварная
а вообще не работающая без ключа.
У кого есть старая работающая версия и возможность залить
выложите пожалуйста.

Терминатор01 02.11.2007 10:51

Re: PhysX wrapper
 
Нашёл ещё одну тему с теми же проблемами.
"Horror, посмтри на той же страничке, в самом низу. Там лежат дрова. Вот их поставь и будет всё ок."
Получается я скачал версию без этих самых "дров".
Внизу на оф сайте никаких "дров" не нашёл.
Дайте пожалуйста прямую ссылку.

moka 02.11.2007 11:56

Re: PhysX wrapper
 
Терминатор01, извени, но ты немножко замудряешь всё.
1. Качаешь драва, они инсталяться в Program Files/AGEIA Technologies/....
Не нужно их трогать вообще.
При инсталяции дров, будет кидаться в реестре по тому где я сказал пути линка, если не нашёл, юзай поиск по слову ageia.
2. Качаешь враппер, ставишь в папку блица.
3. Юзаешь, и всё. Я непонимаю что вы там навыдумываете и намудряете, чтобы напроч врапер себе Не поставить.
Никаких проблемм нету, всё работает идеально, не нужно только себя запутывать.

jimon 02.11.2007 12:22

Re: PhysX wrapper
 
если ваще туго - качаем дрова отсюда http://www.ageia.com/drivers/drivers.html
там на все версии сразу :)

Render 02.11.2007 18:26

Re: PhysX wrapper
 
Да вот сейчас для версии 1.3 делаю дровно-бездровный врапер. По теории будет работать в двух режимах )), но покамись ничего хорошего не получается.

arman3dg 02.11.2007 20:23

Re: PhysX wrapper
 
Привет всем, у меня к вам просьба, в Blidz3D я ни спец, но что та получается, вот у меня есть вопрос, делаю в Max-е (render to texture) но как сделать чтоб сам Blidz видел е (render to texture) ? плииииииз помагите…

Render 02.11.2007 20:47

Re: PhysX wrapper
 
arman3dg, мне кажется вы ошиблись разделом.

Все у кого не работает Физикс. первая Дровно-Бездроная тестовая версия
http://blitz.pp.ru/forum/showthread....&threadid=2890


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

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