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
Хочу также поправить Доку, принимаю предложения по оформлению. Просто сейчас не нравится тем что, нету возможности поиска. Думаю определёные групы команд вынести на один листик, а там уже поиск по страничке рулит. Также думаю рускую версию закончить, но самому времени писать нету.
И ещё замечание по СБ, чем меньше вершин в Физ моделе, тем быстрее работает. Количество тетрагонов почти не влияет. Жду отзывов и сообщений о глюках, если таковы будут. |
Часовой пояс GMT +4, время: 14:53. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot