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 семплов За ключиком обращатся ко мне либо по мылу, либо в личку. |
Re: PhysX wrapper
У меня ошибка. Семпл с машиной выдает ошибку о том что не найдена либа. (Другие не тестил)
--- После теста выявил что у него ошибка в pxSetGravity(0,-30,0) изменение ничего не даёт |
Re: PhysX wrapper
Цитата:
HKEY_LOCAL_MACHINE\SOFTWARE\AGEIA Technologies "PhysXCore Path"="C:\Program Files\AGEIA Technologies" Это похоже на то что неустановился драйвер. Странно я вчера лично всё сам проверил. А ты точно в тот Юзерлибс установил :) |
Re: PhysX wrapper
Цитата:
---- PS. Вот бреееееед.... Переустановил дрова и теперь все работает... |
Re: PhysX wrapper
Некоторые туторы пытаются залезть в реестр. Но так как нужного юзер либа нету то соответственно туторы не компилятся :)
|
Re: PhysX wrapper
Цитата:
|
Re: PhysX wrapper
Слушай можешь сказать как заставить колидится все что есть на уровне с контентом загруженным из 3ds файла? А то сделал дорогу а она прозрачная для всего (Как в half-life когда включен noclip)
|
Re: PhysX wrapper
Тебе нужно использовать тримеш. Смотри примеры в папке TriMesh, или пример с машиной Победа.
|
Re: PhysX wrapper
Теперь если что то вот:
http://rubux.swargo.com/rus/ |
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. Исправлены ошибки с контактами |
Re: PhysX wrapper
а где взять?
|
Re: PhysX wrapper
Цитата:
|
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# - шаг сминания Создайт мягкое тело со свойствами металла. Это тело небудет востанавливать прежнюю форму после сминания. Для правильной работы нужно физическое тело основы, оно должно быть похоже по форме на мягкое тело. Тело основы будет задавать области сминания мягкого тела. Мягкое тело сомнётся лиш в том случае когда выйдет за пределы основы. Сила удержания - это та сила с которой мягкое тело привязано к основе. Шаг сминания указывает насколько сомнётся тело за один удар. |
Re: PhysX wrapper
Какие могут быть причины не запуска враппера, если я в клубе, установил драва, поставил блиц (скопировал домашний), и примеры тестяца, а дома нет, выводит MAV на Gravity, как-будто я не ввожу key. Меня это очень даже трогает и не устраивает, да и если я не один такой? Что делать то?
|
Re: PhysX wrapper
давно мне нужно было это зделать :)
http://rubux.swargo.com/rus/index.ph...ticles&b=2&a=3 ФАК по установке и решению проблем. |
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д, а дальше инсталятор сам поставит в юзерлиб. Также с виндовса можно поудалять ФизиксЛоадер и НхКукинг. Врапер приобрёл уже комерческий вид и больше в винду ставится ничего не будет, так что советую поудалять всё лишнее. Примено в таком виде всё и останется в дальнейшем. Возможны мелкие штрихи. Также есть полный английский хелп. Он шире чем русский и дополненый. Если бы его кто то проверил ещё, я был бы безмерно благодарен!!! У самого плохо с английским. Кому нужно, могу выложить. |
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%) - новый синтаксиси команды Обновлены семплы и хелп. |
Re: PhysX wrapper
Есть новости с фронта?
|
Re: PhysX wrapper
Ну канечно, уже давно можно скачать версию 1.1 с сайта. Там организована подержка всех существующих двигов. В том числе БлитцМакс, Блитц3д СДК ну и так далее. работает всё вплоть до тряпок.
Сегодня появился СДК 2.7.2. так что ждите обьёмные поля сил, и улучшеные тряпки. |
Re: PhysX wrapper
Молодец! Немедлено же проплюсадиню твои мессаги! Ибо хоть какая то мера благодраности.
|
Re: PhysX wrapper
Render
они гады не выложили заметки к 2.7.2 :) расказывай что изменили или банально Release Notes выложи |
Re: PhysX wrapper
|
Re: PhysX wrapper
Render? а почему русского хелпа нет?
Может, я чем могу помочь? (например пару обучений напишу или переводов)? Если что стукни в асю :) 438-012-412 |
Re: PhysX wrapper
Есть наброски рус хелпа в екселе. Там много ошибок неточностей, просто не желания не времени заниматся этим нету. Разработка хелпа это такая нудная и надоедливая работа. С меня английской версии хватило :)
Также есть проблема с руским шрифтом, во время перегонки с екселя в нормальный вид. |
Re: PhysX wrapper
Обнаружены ошибки в хэлпе:
Нет описания к командам:
Ошибки в примерах:
И ещё наверное пары. Буду по мере читканья Хэлпа дописывать в этот пост. З.Ы. Если мне обьяснят что это за команды могу дописать их в хэлп :) |
Re: PhysX wrapper
Полезное дело делаеш!
Цитата:
pxBodySetEntity - в самом деле пропустил. исправлю :) А вообще в хелпе ещё неописаны команды из релиза 1.1 Цитата:
|
Re: PhysX wrapper
Вообщем сейчас делаю обьёмные поля сил. Уже более менее разобрался, поидее ничего сложного. А вот для юзеров будет сложновато. Там, что бы настроить желаемый эфект нужно устанавливать элемены матрици в определёные значения. Проблема ещё в том, что эту самую матрицу придётся тащить в блитц как-то.
Также нужно понимание аксеальной, радиальной и тангегсиальной составляющей. В доках примеров нету, приходится самому разбиратся. |
Re: PhysX wrapper
Render, стараюсь :-) Буду дописывать тот пост где написал обнаруженные ошибки по мере их обнаружения.
Огорчает отсутствие обучений (не описания команд а именно обучений) на русском языке. Я по мере изучения враппера мог бы написать парочку :) |
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. Класная штука, я долго наслаждался. Там шляпа на анимированой голове, короче смотрите сами. Также прикольный пример Бубле З.Ы. Примеры, только в исходниках. |
Re: PhysX wrapper
Хочу также поправить Доку, принимаю предложения по оформлению. Просто сейчас не нравится тем что, нету возможности поиска. Думаю определёные групы команд вынести на один листик, а там уже поиск по страничке рулит. Также думаю рускую версию закончить, но самому времени писать нету.
И ещё замечание по СБ, чем меньше вершин в Физ моделе, тем быстрее работает. Количество тетрагонов почти не влияет. Жду отзывов и сообщений о глюках, если таковы будут. |
Re: PhysX wrapper
Есть вопрос, врапер с реестром?_ все ОК=)
Позже: А ето правельно что у клоуна постепенно съежала шляпа в сторону? |
Re: PhysX wrapper
Версия без реестра лично от меня.
Цитата:
Поставь масу голове в 0, или отключи гравитацию. Я заметил когда уже всё выложил. |
Re: PhysX wrapper
Штука однозначно прекольная, НО люди у которх есть чувство меры, и богатая фонтазия скажите как ето чудо можно использовать в игре!-???
ЗЫ\ я придумал можно как колёса=) |
Re: PhysX wrapper
Ну прикинь, у тебя шутер с indoor сценами, тут ты вбегаешь в комнату, и давай палить по всему что видишь из колаша! Тут у тебя плюшевый мишка, сворачивается в трубочку и ударяясь об стену красиво падает и отскакивает. Да много где, или же если сделать чтото подобие Little Big Planet, только не отдельными персонажами а мышкой, там всякие объекты кидать ну и т.п. да Много где мона, только фантазию включить ;)
|
Re: PhysX wrapper
Делай не рушимую органику.
|
Re: PhysX wrapper
Поиграть в футбол мягким мячиком. Сделать грузовик, который перевозит огромное желу в кузове. Создать пальму с листвой которая реагирует на мир. Разбросать по уровню разные мягкие тела и ХЛ2 тупо отдыхает.
Даже в крайнем случае приделать шляпу как в примере. Ну я даже незнаю, поидее поле для идей просто неограниченое, учитывая что аналогичных игр почти нету. |
Re: PhysX wrapper
|
Re: PhysX wrapper
Вот официальный апдейт 1.2
http://rubux.swargo.com/rus/?module=...on=topic&id=52 З.Ы. Если кто хочет занятся переводом хелпа на русский, буду очень благодарен, да и все остальные думаю тоже будут благодарны :) |
Re: PhysX wrapper
сайт http://rubux.swargo.com ваще не работает! Кто знае где еще моно найти PhysX?
|
Re: PhysX wrapper
Сорри, совсем забыл сказать. Старый сайт был утерян, вот пришлось переехать на новый хост ну и заодно новый домен прикупил.
http://rubux.net Если будет время, то поставлю версию для рус пользователей. |
Re: PhysX wrapper
Вложений: 2
Решил не создовать новой темы а отпесатся тут,
Просек баг, или не баг, короче мучался 2 дня, и понял почему ето- Проблема с поплывком: предыстория=) Я в 3Д масе создою объект и в его имени прописываю пораметы, затем в блице объект создоётся и по пораметрам добовляются фишки:) Короче создаю я поплывок, присоеденяется все окей, но это окей было до одного момента. Суть в том что пока объект который не поворачивался в 3Д масе работает прекррасно, т.е. все нормально, но если я поворачиваю объект то потом в блице происходит косяк- поплывак какбы разворачивает объект затем пресоеденяется и возврощяет на исходную, может звучит глупо но так оно и есть Прикрепил картинку там все наресовано 1- Прямоугольник серый и зелёный поплывок(если так экспортнуть то все ОК) 2- Но если развернуть объект то 3- уже в блице по идеии поплывок должен присондалится туды где перечёркнуто синим крестом, а нее он находится выше, кабута я поворачивал не тока объект- НО и поплывок тожа. Мне конечно былобы не лень просто выровнить всем объектам в максе напровления(кнопочка есть) Но у меня появились проблемы при сохронении. |
Re: PhysX wrapper
Видимо загружал модель как анимированую. Там с поворотами нужно быть очень осторожным. Проверь всё 10 раз, 100% где то накосячил при получении поворота модели с макса.
|
Re: PhysX wrapper
Цитата:
Ладна покушаю потом соберу пример, ато может и правду где в коде не углядел.И еще наверна нада попробывать перед пределыванием поплывка сделать объект как кинематику. |
Re: PhysX wrapper
Люди!!! подскажите какой враппер лучше использовать PhysX или Ньютона?
|
Re: PhysX wrapper
SeJay, смотря для чего :) Я попробовал токамак, оде, ньютон и физикс. И выбрал физикс, имхо: он лучший, во первых скорость и функционал превосходит все другие, во вторых, ограничения костей, в третьих,... ну так можно долго продолжать. ИМХО: Физикс.
|
Re: PhysX wrapper
Спасибо за совет, Moka. А знаеш где взять хелп и примеры для ФизИКС?
|
Re: PhysX wrapper
Вот, http://rubux.net/
только к автору тоже нужно обращаться ;) |
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. Класная штука, я долго наслаждался. Там шляпа на анимированой голове, короче смотрите сами. Также прикольный пример Бубле З.Ы. Примеры, только в исходниках. <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< а уменя ссылки не работаюююют:''(( |
Re: PhysX wrapper
Рендер здарова!!!
Эта самое.....ээээ....на сайте у тебя надпись на картинке написана с ошибкой....=))) (Rubux Sofware) |
Re: PhysX wrapper
ЛысыЙ_Чук-Иванчук, а что там собственно было?
CRASHER, вот вроде оно http://rubux.net/downloads/Soft_Bodies.rar Diablo1909, твою.. В самом деле ошибка )) Я не замечал, да и видимо никто другой тоже )) |
Re: PhysX wrapper
Цитата:
Но тут вознакает ОЧЕНЬ нехороший косяк, есть команда позиционирущяя поплывок в глобальном отношении НО она зависит от того на скока повернут объект Т.Е. если мы машину Не поворачивает то все окей(при этом даже если в максе повернуть то буде тоже само) что получается, короче щяс покажу опять пример который тада кидал:) там две строки 1- грузит базу 1 НЕ повернут 2- объект был повернут на 90 но поплывок встает так- какбудто мы не поворачивали объект(я думаю в физиксе при позиционировании поплывка делается так- объект к которому приделыается объект поворачивается 0,0,0 затем поплывак ставится в позицию(при этом я его ставлю как ГЛОБАЛ) и после етого объект поворачивается на исходную!!!!) ЗЫ\ блин пример на буке- а тама щя Жописта ставится:-D , к вечеру кину пример. |
Re: PhysX wrapper
Скачал таки за 2 дня эту бороду и исходники
к ней. Всё закинул в нужные папки как написано а оно ничего не работает. Пишет: "Function PxCreateWorld not found" Версия lBlitz3D 1.99 |
Re: PhysX wrapper
Дравишки криво лежат(ацкая проблема для разработчиков- тоесть нас;))
Проси у автара бездровную версию! |
Re: PhysX wrapper
Терминатор01, открой реестр (Win+R; "regedit"; Ok;) далее, го по пути:
HKEY_LOCAL_MACHINE > SFTWARE > AGEIA Tehnologies Там смотри будет переменная, она может не проставиться (пустая), так вот поменяй ещё на путь к дравам, обычно это "C:\Program Files\AGEIA Technologies". А так если "Function PxCreateWorld not found", то проблемма не в драйверах. |
Re: PhysX wrapper
А в чем тада? у меня таже проблемма=( дрова стоят, dll-ки лежат. А примеры не пашут. с той же ошибко1 ( функция psx нот фоунд)
|
Re: PhysX wrapper
Stabilitron, читай на оффе статью о подрублении, там всё отлично понятно.
|
Re: PhysX wrapper
Анука загляните в деклс, а то в кого то в деклсе были ф-и левые. Мож что от каких других враперов осталось.
А ещё лучше ко мне в асю. |
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 Вычитал что разработчик изменил синтаксис команд. Получается что старые примеры можно выбросить? Хотя я качал всё одновременно с оф сайта, почему бы им не работать. Или он перемудрил с ключом и версия получилась не шароварная а вообще не работающая без ключа. У кого есть старая работающая версия и возможность залить выложите пожалуйста. |
Re: PhysX wrapper
Нашёл ещё одну тему с теми же проблемами.
"Horror, посмтри на той же страничке, в самом низу. Там лежат дрова. Вот их поставь и будет всё ок." Получается я скачал версию без этих самых "дров". Внизу на оф сайте никаких "дров" не нашёл. Дайте пожалуйста прямую ссылку. |
Re: PhysX wrapper
Терминатор01, извени, но ты немножко замудряешь всё.
1. Качаешь драва, они инсталяться в Program Files/AGEIA Technologies/.... Не нужно их трогать вообще. При инсталяции дров, будет кидаться в реестре по тому где я сказал пути линка, если не нашёл, юзай поиск по слову ageia. 2. Качаешь враппер, ставишь в папку блица. 3. Юзаешь, и всё. Я непонимаю что вы там навыдумываете и намудряете, чтобы напроч врапер себе Не поставить. Никаких проблемм нету, всё работает идеально, не нужно только себя запутывать. |
Re: PhysX wrapper
если ваще туго - качаем дрова отсюда http://www.ageia.com/drivers/drivers.html
там на все версии сразу :) |
Re: PhysX wrapper
Да вот сейчас для версии 1.3 делаю дровно-бездровный врапер. По теории будет работать в двух режимах )), но покамись ничего хорошего не получается.
|
Re: PhysX wrapper
Привет всем, у меня к вам просьба, в Blidz3D я ни спец, но что та получается, вот у меня есть вопрос, делаю в Max-е (render to texture) но как сделать чтоб сам Blidz видел е (render to texture) ? плииииииз помагите…
|
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