|
|
|
|
Физика.
| |
Krogoth | Дата: Вс, 05 Апр 2009, 23:21 | Сообщение # 1 |
5 Поколение
Группа: Основной состав
Сообщений: 553
Статус: Offline
| Линейное движение глайдера. где: а) Fс – лобовое сопротивление воздуха. б) k0 – коэффициент лобового сопротивления. Характеризует обтекаемость вне зависимости от размеров. (Их характеризует лобовая площадь) в) ρ – средняя плотность воздуха. Является константой для данного сектора. Т.к. плотности могут быть разными, в разных секторах могут быть развиты различные максимальные скорости. г) V – скорость глайдера в данный момент. д) S – лобовая площадь глайдера. е) k – обобщенный коэффициент, включающий в себя k0 и S. Является константой для данного глайдера. где: а) Fт – сила тяги двигателей, установленных на глайдере. Является константой для данных двигателей; б) m – снаряженная масса глайдера; в) a – ускорение глайдера в данный момент. При неравномерном движении постоянно изменяется; где: а) aт – ускорение, сообщаемое силой тяги. Пересчитывается только при смене двигателей/изменении массы. б) ∆aс – отрицательное ускорение, сообщаемое лобовым сопротивлением при скорости, равной 1 м/с. Пересчитывается только при загрузке локации/смене глайдера/изменении массы. в) V – скорость глайдера в данный момент. При неравномерном движении постоянно изменяется. Тогда максимальная скорость глайдера будет определяться по формуле: Вращение глайдера. При вращении глайдера участвуют маневровые двигатели, обладающие своей силой тяги. Они обеспечивают определенное угловое ускорение, а макс. угловая скорость ограничивается сопротивлением воздуха. где: а) Fвc – сила сопротивления вращению. б) kв0 – коэффициент сопротивления при вращении. Характеризует боковую обтекаемость. в) ρ – средняя плотность воздуха. Является константой для данного сектора. г) ω – угловая скорость глайдера в данный момент. д) r – «радиус» глайдера. е) Sв – боковая площадь глайдера. ё) kв – обобщенный коэффициент, включающий в себя kв0, r2 и Sв. Является константой для данного глайдера. где: а) Fвт – сила тяги маневровых двигателей. Является константой для данного глайдера; б) m – снаряженная масса глайдера; в) ε – угловое ускорение глайдера в данный момент; где: а) εт – угловое ускорение, сообщаемое силой тяги маневровых двигателей. Пересчитывается только при смене глайдера/изменении массы. б) ∆εс – отрицательное ускорение, сообщаемое сопротивлением при угловой скорости, равной 1 рад/с. Пересчитывается только при загрузке локации/смене глайдера/изменении массы. Тогда максимальная угловая скорость глайдера будет определяться по формуле: З.Ы. Я вообще хоть что-нибудь правильно написал?
|
|
| |
Yandersen | Дата: Пн, 06 Апр 2009, 08:54 | Сообщение # 2 |
1 Поколение
Группа: Доверенные
Сообщений: 196
Статус: Offline
| Эм, отмечусь в этом разделе. Помниться, когда-то мы все кричали о точечных повреждениях там и т.д. Графическую модель глайдера, т.е. набор треугольничков, можно довольно просто использовать в расчётах физики. К примеру, для расчётов точки попадания снаряда в глайдер. Всё, что нужно для этого - данные о снаряде (положение и направление, т.е. точка и вектор), и набор треугольников, образующих поверхность глайдера (набор сгруппированных по три координат вершин модели). Если нужно, у меня есть наработки по геометрии, позволяющие расчитывать пересечения треугольников (с известными координатами 3-х вершин), линий (точка и вектор), отрезков (2 точки) и т.д. Так что описывайте задачу, напишу функцию по расчёту геометрии.
[Беженец со Скаев]
|
|
| |
Krogoth | Дата: Пн, 06 Апр 2009, 15:54 | Сообщение # 3 |
5 Поколение
Группа: Основной состав
Сообщений: 553
Статус: Offline
| Практический смысл у меня имеют только конечные результаты 3 и 7 формул для описания движения и 4 и 8 формула для вывода информации о глайдере. В правильности остального не уверен, но она особо и не требуется. (Основа будет базироваться не на реальных константах, а на тех, что будут удовлетворять геймплею и, в результате, опытным путем и действительности) Yandersen, имхо, по треугольничкам это будет очень сложно, потому что их много. Проще и, наверное, правильнее для игрока будет разбить глайдер на составные части как левое двигло, правое двигло, передняя часть, самая передняя часть и т.д. Добавлено (2009-04-06, 3:54 Pm) --------------------------------------------- Сложно просто не потому, что это сложно, а потому что не надо.
|
|
| |
Razum | Дата: Пн, 06 Апр 2009, 16:47 | Сообщение # 4 |
Second Admin
Группа: Доверенные
Сообщений: 439
Статус: Offline
| Yandersen, А как расчет идет? При помощи функции, перебирающей все треугольники, и выдающей в итоге, в какой было попадание? Если так, то надо делать специальный невидимый объект для расчета физики и попаданий, как в халфе. Quote (Krogoth) Является константой для данных двигателей; А как насчет изменяемой тяги двигателей? Ну, или хотя бы сделать несколько дискретных состояний - какой-нето экономный режим, позволяющий двигаться с максимальной скоростью при условии пополнения аккумулятора, режим полного хода - при котором энергии тратится столько, что она из аккумулятора не расходуется и не пополняется. И форсаж - максимальная тяга. Кстати, неплохо бы придумать какую-нето формулу, которая свяжет энергопотребление с тягой. Если она будет интересной и нелинейной, мона будет придумать интересные возможности, типа поставить 2 более дохлых двигателя заместо одного мощного, которые будут давать, например, больше тяги в стандартном режиме при меньшей трате энергии, но будут хуже на форсаже.
Я говорю то, и только то, что я хочу сказать.
|
|
| |
Krogoth | Дата: Пн, 06 Апр 2009, 23:01 | Сообщение # 5 |
5 Поколение
Группа: Основной состав
Сообщений: 553
Статус: Offline
| Первая скорость - крейсерская. При ней достигается максимальный КПД для данного двигателя. При дальнейшем повышении мощности (для перехода в форсаж) КПД, определяемое коэффициентами kg (константа глайдера, характеризующая качество сопел) и kd (константа двигателя, характеризующая его собств. качество), уменьшается. Pr = P * kg * kd * корень_(ng+nd)-й_степени(P0/P), где: а) Pr - эффективная мощность. б) P - потребляемая мощность. в) P0 - крейсерская мощность. г) ng и nd - константы глайдера и двигателя соответственно, характеризующие уменьшение КПД с возрастанием мощности. Вопрос: как определять крейсерскую скорость (и мощность при ней)? Она, наверное, должна зависеть от глайдера, снаряженной массы и двигателя. Добавлено (2009-04-06, 10:52 Pm) --------------------------------------------- Хм... А если рассуждать так? Если двигатель очень-очень качественный, то крейсерской мощностью будет являться максимальная. (Или нет???) Тогда крейсерскую мощность можно определить как произведение максимальной на kg и kd, чтобы не вводить лишние параметры для двигателя. Добавлено (2009-04-06, 11:01 Pm) --------------------------------------------- Короче, чтобы не вводить в заблуждение, вот: где: а) Peff - эффективная мощность в данный момент времени. б) P - потребляемая мощность в данный момент времени. в) Pc - крейсерская мощность. г) Pmax - максимальная мощность. Является константой для данного двигателя.
|
|
| |
Razum | Дата: Вт, 07 Апр 2009, 07:11 | Сообщение # 6 |
Second Admin
Группа: Доверенные
Сообщений: 439
Статус: Offline
| Не, это как-то имхо, чрезмерно сложно. Если только ввести износ двигателя, хотя в рамках задумываемой арены это ненужно. А так вообще человека-то мало волнует, какое там у двигателя или сопла качество, его волнует только лишь соотношение тяги и потребляемой энергии. И привязка к КПД мне тоже не нравится, так как в мехах меня мало это интересовало, меня волновало больше, что там с аккумулятором делается. Может, проще и интереснее сделать свободное изменение тяги, как в авиасимах? Кому оно не понравится, тот может назначить три клавиши - на 0% на 100% и на форсаж. А что касается непосредственно формулы, то я не понял, почему зависимость именно такая? Ты сам ее придумал или откуда-то взял? Может, стоит найти графики потребления топлива в зависимости от тяги авиационных двиглов, и ориентироваться на них? Кстати, в верхней формуле ng+nf - это степень корня, что-ли?
Я говорю то, и только то, что я хочу сказать.
|
|
| |
Yandersen | Дата: Вт, 07 Апр 2009, 14:14 | Сообщение # 7 |
1 Поколение
Группа: Доверенные
Сообщений: 196
Статус: Offline
| 2 Razum: да, перебор всех треугольников модели. Алгоритм такой: сперва ищется может ли быть вообще попадание в модель (в сферу, содержащую модель). В мехах на том и заканчивается расчёт повреждений. Но для точечных повреждений нужно перебрать все треугольники модели. На каждый будет затрачено по предварительным расчётам около 70 простейших операций (сложение/умножение), а результатом будет ID треугольника и координаты точки пересечения. Насчёт использования упрощённой модели для физики: при этом точки поверхности реальной модели и упрощенной не везде будут совпадать. В результате анимация взрыва, координаты которого рассчитаны на упрощённой модели, может быть вне глайдера либо внутри. Кстати, в OpenGL можно как-то считывать координаты точки под экранным пикселом. Так что можно просто повернуть модель временно (рисуя в другой буффер) и спроецировать траекторию полёта снаряда, но мне всё ж больше первый способ расчётов нравится.
[Беженец со Скаев]
|
|
| |
Krogoth | Дата: Вт, 07 Апр 2009, 16:04 | Сообщение # 8 |
5 Поколение
Группа: Основной состав
Сообщений: 553
Статус: Offline
| Quote (Razum) Кстати, в верхней формуле ng+nf - это степень корня, что-ли? Да.Quote (Razum) А так вообще человека-то мало волнует, какое там у двигателя или сопла качество, его волнует только лишь соотношение тяги и потребляемой энергии. А это мы игроку показывать не будем. Это для вычислений надо. Quote (Razum) Ты сам ее придумал или откуда-то взял? Придумал сам. Такая формула позволит сделать разную зависимость у разных глайдеров. Чем больше коэффициент двигателя kd, тем двигатель эффективнее в каком-либо глайдере, т.е. если он маленький, то двигатель потребляет много энергии, а тягу создает маленькую. Коэффициент kg определяет эффективность этого двигателя уже в конкретном глайдере, т.е. как бы характеризует качество энергоснабжения двигателя, сопел и прочего, т.е. один и тот же двигатель может давать разную мощность в разных глайдерах. (Скажем, в той же Молнии двигло будет работать лучше, чем в Ястребе) Коэффициенты ng и nd будут определять то, насколько возрастает относительное уменьшение эффективной мощности при возрастании потребляемой. Например: двигатель может быть очень экономичным на низких скоростях, но на высоких его энергозатраты будут настолько высоки, что его применение будет целесообразно лишь в некоторых глайдерах. Вообще, я думаю, что формула несложная и считаться будет достаточно быстро. Добавлено (2009-04-07, 3:56 Pm) --------------------------------------------- Quote (Razum) Может, стоит найти графики потребления топлива в зависимости от тяги авиационных двиглов, и ориентироваться на них? Просто интересно сделать так, чтобы для всех двигателей и глайдеров зависимости были разными. Чтобы не было такой однозначности как "ионный - отстой, плазма рулит" и прочее. Добавлено (2009-04-07, 4:04 Pm) --------------------------------------------- Вот простой пример. Ионный двигатель, как известно, обладает маленькой тягой, но большим КПД. Из этого следует (по моему ранее изложенному принципу), что крейсерская мощность не намного меньше максимальной, т.е. форсаж увеличивает макс. скорость максимум раза в 1,5-2 (что меньше, чем у других). С плазменным наоборот. Так что если глайдер атакующий, и на него навешены всякие противоракетные системы, хороший щит и лазер, целесообразнее будет поставить ионный двигатель, потому что ему будет достаточно энергии и на нормальный режим работы, и на форсаж, и это будет лучше, чем еле-еле мотаться на плазменном, через каждые два метра давая реактору отдышаться.
|
|
| |
Razum | Дата: Ср, 08 Апр 2009, 03:25 | Сообщение # 9 |
Second Admin
Группа: Доверенные
Сообщений: 439
Статус: Offline
| Quote (Krogoth) "ионный - отстой, плазма рулит" Ну, даже и не знаю, подобные вещи целесообразны, когда есть еще стандарты, чтобы небыло такого, что начальный двигатель может с успехом использоваться до конца игры. Quote (Yandersen) : при этом точки поверхности реальной модели и упрощенной не везде будут совпадать. В результате анимация взрыва, координаты которого рассчитаны на упрощённой модели, может быть вне глайдера либо внутри. Ну и что? А не треснет проц рассчитывать повреждения от какой-нето атомки скорострельной в большой толпе глайдеров? Да и небольшое несовпадение эффекта с поверхностью вряд ли будут сильно заметны. Хотя, это смотря какой эффект... например, крупные взрывы и т.д. совершенно нормально будут смотреться, хуже дело обстоит с чем-то, что надо на поверхность модели рисовать, дырки от пуль, например...
Я говорю то, и только то, что я хочу сказать.
|
|
| |
smt005 | Дата: Пн, 27 Июл 2009, 02:30 | Сообщение # 10 |
Admin
Группа: Администраторы
Сообщений: 936
Статус: Offline
| Разобрался я с PhysX без посторонней помощи.
|
|
| |
Frozen_Light | Дата: Вт, 28 Июл 2009, 13:14 | Сообщение # 11 |
4 Поколение
Группа: Доверенные
Сообщений: 194
Статус: Offline
| Ух ты! Круто, молодец! Добавлено (28 Июл 2009, 13:14) --------------------------------------------- А вот теперь ты сможешь пришить полученный результат к графическому движку?
Я полон оптимизма. Человечество преодолело законы морали, почему бы ему не преодолеть законы физики?
|
|
| |
PA3UJIb | Дата: Вт, 28 Июл 2009, 15:00 | Сообщение # 12 |
1 Поколение
Группа: Основной состав
Сообщений: 105
Статус: Offline
| А разве он уже не пришил? Видео-то как-то тоже надо снимать. А я пока сижу за ODE - вышла новая версия, разрабы сменили коллижн-двигло. Прежние руководства теперь ни к черту, а качество в новой сборке повысилось - не охото как-то на старом OPCODE прогать.
|
|
| |
smt005 | Дата: Вт, 28 Июл 2009, 15:35 | Сообщение # 13 |
Admin
Группа: Администраторы
Сообщений: 936
Статус: Offline
| Quote (Frozen_Light) А вот теперь ты сможешь пришить полученный результат к графическому движку? Quote (PA3UJIb) А разве он уже не пришил? Видео-то как-то тоже надо снимать. Плоскость и розовые объекты отображены отладочными средствами (функции) PhysX, а чайник (который вы должны были заметить), это уже "графический движок".Добавлено (28 Июл 2009, 15:35) ---------------------------------------------
А как же OGRE ? ODE - это то что Микс показывал - видео демку ?
|
|
| |
PA3UJIb | Дата: Пт, 21 Авг 2009, 14:12 | Сообщение # 14 |
1 Поколение
Группа: Основной состав
Сообщений: 105
Статус: Offline
| Quote (smt005) А как же OGRE ? ODE - это то что Микс показывал - видео демку ? Не, ОДЕ это тоже физический двигло. http://ode.orgДобавлено (16 Авг 2009, 07:26) --------------------------------------------- мда.. ОДЕ конеш двигло, но чот у мну фигово выходит с коллижинами. Там какие-то настройки мутные. Делал падение кубика на пол, а оно у мну падает нормально, но лишь до тех пор пока не дотронется до пола, тогда начинает все происходит как в ускоренной съемке. Помудохался, помудохался, и решил перейти на ФизХ. Почти два дня игрался с демками ткани )) А тот же самый пример с падающим кубиком теперь работает корректно, только надо ща NxMaterial понять, чтобы трение и упругость контролировать, а то предметы падают на пол и дальше как по льду скользят )) Кстати, меши в ОГРЕ очень легко выдают инфу о вершинах-индексах, так что сложную модель в два счета мона "обвести" физ-рамкой (то есть некоторым пространством, которое и участвует в расчете столкновений). Добавлено (20 Авг 2009, 15:50) --------------------------------------------- Пока дела продвигаются удачно - победил масштабирование Shape при создании Сonvex либо Triangle мешей простым домножением каждого вертекса на требуемый масштаб, НО... Потом я обнаружил в библиотеке NxCookikng процедуру масштабирования NxScaleCookedConvexMesh(), %-). Правда оно это масштабирование делает копируя все в новый stream, что не есть удобно и расточительно в плане памяти. Теперь осталось "победить" террайн, и можно мою "любимую" демку перевести на физические рельсы Добавлено (21 Авг 2009, 14:12) --------------------------------------------- Пока не разобрался с картой высот. сКладбище <_< : СтрессТест на кол-во объектов:
|
|
| |
smt005 | Дата: Вт, 25 Авг 2009, 00:57 | Сообщение # 15 |
Admin
Группа: Администраторы
Сообщений: 936
Статус: Offline
| Я почти неделю осваивал PhysX, полностью не понял, но дошёл до этого: Добавлено (25 Авг 2009, 00:51) --------------------------------------------- Сделал что-то типа редактора. PA3UJIb, что-то я не понял сути твоих скриншотов. Добавлено (25 Авг 2009, 00:57) --------------------------------------------- У меня выдюха "полетела", пришлось купить новую - GeForce GTS250 1Gb, КОТОРАЯ поддерживает PhysX. И поэтому, все остальные физ. движки у меня исключаются.
|
|
| |
PA3UJIb | Дата: Ср, 26 Авг 2009, 16:02 | Сообщение # 16 |
1 Поколение
Группа: Основной состав
Сообщений: 105
Статус: Offline
| Quote (smt005) PA3UJIb, что-то я не понял сути твоих скриншотов. Да что уж тут понимать, они как бы больше для меня самого. Так сказать, символизируют, что я еще тут, все еще работаю. Плин, какая-то фигня у мну, не могу закачать демку ни на один файл-хостинг. Я кароч победил NxHeightField и хотел похвастать этим. В демке террайн, несколько кубиков и возможность стрелять "из камеры" несколькими объектами. Добавлено (26 Авг 2009, 16:02) --------------------------------------------- Вот собстна, поизвращалсяв WinRAR, вроде влезло на народ: AIM3_demoPhysX_exe.zip AIM3_demoPhysX_dll_graph.part1.rar AIM3_demoPhysX_dll_graph.part2.rar AIM3_demoPhysX_scripts.zip AIM3_demoPhysX_dll_physx.zip AIM3_demoPhysX_textures.part1.rar AIM3_demoPhysX_textures.part2.rar AIM3_demoPhysX_textures.part3.rar AIM3_demoPhysX_textures.part4.rar AIM3_demoPhysX_textures.part5.rar AIM3_demoPhysX_textures.part6.rar Рекомендую извлекать тем же WinRAR'ом, а иначе.. а иначе я не знаю еще как. Складываем все файлы в укромное местечко, выделяем все скопом, и жмем "извлечь в текущую папку". Управа все та же WASD и QE. "Стрельба" глайдером "Меч Судьбы" на левую кнопку мыши, глайдером "Скарабей-2" - на правую кнопку мыши, на среднюю - "стрельба" быстрым тестовым шариком.
|
|
| |
smt005 | Дата: Ср, 26 Авг 2009, 19:13 | Сообщение # 17 |
Admin
Группа: Администраторы
Сообщений: 936
Статус: Offline
| Меньше магабайта, можно было на этот форум заливать. Добавлено (26 Авг 2009, 18:52) ---------------------------------------------
Quote (PA3UJIb) Я кароч победил NxHeightField и хотел похвастать этим. Дай код. Или лучше объясни.Добавлено (26 Авг 2009, 19:13) --------------------------------------------- PA3UJIb, не работает ! Надо использовать старый проект ? Чёрный экран и звук ошибки... Как файлы распихивать?
|
|
| |
PA3UJIb | Дата: Чт, 27 Авг 2009, 14:46 | Сообщение # 18 |
1 Поколение
Группа: Основной состав
Сообщений: 105
Статус: Offline
| Нет. Старый проект использовать не надо. Я по архивам раскидал две папки всего: bin и data. В первой экзешник, библы и конфиги к ОГРУ, во второй все остальное. Вот когда в укромном месте распакуешь все (для этого лучше всего создать отдельную папку и там распаковывать), то заходишь в bin и там запускаешь экзешник. Проблемы могут быть только с отсутсвием PhysX либо (что маловероятно) с отсутствием VC библиотек. но, так как с PhysX ты работаешь, то точно установил себе СДК.
|
|
| |
smt005 | Дата: Чт, 27 Авг 2009, 19:55 | Сообщение # 19 |
Admin
Группа: Администраторы
Сообщений: 936
Статус: Offline
| Посмотрел.............. Какие физ. модели у глайдеров ? Покажи код.
|
|
| |
PA3UJIb | Дата: Пт, 28 Авг 2009, 04:03 | Сообщение # 20 |
1 Поколение
Группа: Основной состав
Сообщений: 105
Статус: Offline
| Я все средствами ОГРА гружу, так что мало что он тебе даст. Code функуия addConvex(имя, вектр позиции, масштаб) { // PhysObject это структура из двух объектов: узла ОГРА и NxActor PhysObject convex; //гружу модель глайда ... тут загрузка модели // uint vertexCount = 0; uint indexCount = 0; //получаю кол-мо вершин и индексов, в цикле пробегаясь по всем подмоделям модели. ... тут был цикл // NxVec3* meshVertices = new NxVec3[vertexCount]; NxU32* meshIndices = new NxU32[indexCount]; NxMaterialIndex* meshMaterials = new NxMaterialIndex[indexCount]; // теперь опять прохожу по всем подмоделям, собираю сначала координаты вершин ... типа цикл по j от 0 до колва вершин в подмодели meshVertices[curr_offset+j] = _scale*NxVec3(p[0], p[1], p[2]); // // и инфу об индексах ... тут был цикл // NxConvexMeshDesc* convexMeshDesc = new NxConvexMeshDesc(); assert(convexMeshDesc); convexMeshDesc->numVertices = vertexCount; convexMeshDesc->points = meshVertices; convexMeshDesc->pointStrideBytes = sizeof(NxVec3); // оказывается convex инфа об индексах не то, чтобы и нужна <img src="http://s1.ucoz.net/sm/23/smile.gif" border="0" align="absmiddle" alt="smile"> //convexMeshDesc->numTriangles = indexCount/3; //convexMeshDesc->triangles = meshIndices; //convexMeshDesc->triangleStrideBytes = 3*sizeof(NxU32); convexMeshDesc->flags = NX_CF_COMPUTE_CONVEX;
NxInitCooking();
// вытащим теперь все из памяти NxConvexShapeDesc convexShapeDesc; MemoryWriteBuffer buff; bool status = NxCookConvexMesh(*convexMeshDesc, buff); if (!status) return false; convexShapeDesc.meshData = mPhysXSDK->createConvexMesh(MemoryReadBuffer(buff.data)); convexShapeDesc.userData = convexMeshDesc;
NxActorDesc actorDesc; NxBodyDesc bodyDesc; actorDesc.shapes.push_back(&convexShapeDesc); bodyDesc.mass = 50.0; actorDesc.body = &bodyDesc; actorDesc.globalPose.t = toNx(_pos); assert(actorDesc.isValid()); convex.actor = mPhysXScene->createActor(actorDesc); NxCloseCooking();
return true; } Ну вот так. То есть модели глайдов у мну это convex с помощью NxCooking приготовленные
|
|
| |
smt005 | Дата: Пт, 28 Авг 2009, 20:03 | Сообщение # 21 |
Admin
Группа: Администраторы
Сообщений: 936
Статус: Offline
| Т.е. у тебя какой нибудь объект не может пролететь между "палками" у глайдера "меч судьбы" ?
|
|
| |
PA3UJIb | Дата: Сб, 29 Авг 2009, 04:58 | Сообщение # 22 |
1 Поколение
Группа: Основной состав
Сообщений: 105
Статус: Offline
| Не может. Да и зачем оно? Если уж так надо будет, то потом переделаем не через Cooking, а через XML в Maya. Добавлено (29 Авг 2009, 04:58) --------------------------------------------- Или 3dMax.
|
|
| |
smt005 | Дата: Сб, 29 Авг 2009, 09:41 | Сообщение # 23 |
Admin
Группа: Администраторы
Сообщений: 936
Статус: Offline
| Quote (PA3UJIb) Не может. Да и зачем оно? Для глайдера не обязательно, но иногда может понадобиться. Я написал классы с которыми можно делать "псевдо" НЕвыпуклые объекты - использование наскольких выпуклых объектов. Модели загружаются из двух файлов OBJ (конвертируя сраза в мой формат). Могу поделиться кодом.
|
|
| |
Yandersen | Дата: Сб, 29 Авг 2009, 13:52 | Сообщение # 24 |
1 Поколение
Группа: Доверенные
Сообщений: 196
Статус: Offline
| PA3UJIb, грузи, плиз, на этот хостинг. Он относительно чистый и даёт аплоадать много: http://www.mediafire.com/
[Беженец со Скаев]
|
|
| |
PA3UJIb | Дата: Сб, 29 Авг 2009, 14:15 | Сообщение # 25 |
1 Поколение
Группа: Основной состав
Сообщений: 105
Статус: Offline
| Quote (smt005) Я написал классы с которыми можно делать "псевдо" НЕвыпуклые объекты - использование наскольких выпуклых объектов. Модели загружаются из двух файлов OBJ (конвертируя сраза в мой формат). Интересно стало как это. Давай, показывай уже код.Добавлено (29 Авг 2009, 14:15) ---------------------------------------------
Quote (Yandersen) PA3UJIb, грузи, плиз, на этот хостинг. Ок, в следующий раз буду туда.
|
|
| |
Yandersen | Дата: Сб, 29 Авг 2009, 14:20 | Сообщение # 26 |
1 Поколение
Группа: Доверенные
Сообщений: 196
Статус: Offline
| Блин, стока намаялси грузя, а вылетело даже приветственно ручкой не помахав!
[Беженец со Скаев]
|
|
| |
smt005 | Дата: Сб, 29 Авг 2009, 16:21 | Сообщение # 27 |
Admin
Группа: Администраторы
Сообщений: 936
Статус: Offline
| model.h CModel - класс модели, загрузка происходит из файла *.3DK. *.3DK может быть трёх видов. 1. Только отображаемая модель (её конечно тоже можно использовать как физ. модель). 2. Состоит. из отобр. модели, физ. модели. Физ. модель состоит из группы выпуклых объектов - convex. 3. Состоит. из отобр. модели, физ. модели типа triangles. Для того чтобы получить второй вариант, надо создать создать второй файл и в конце названия добавить "pc" - PhysXTriangles. Для третьего варианта, окончаине должно быть "pt" - PhysXConvex. Пример. model.obj - отображаемая модель. modelpc.obj - физ. мод. convex modelpt.obj - физ. мод. triangles
|
|
| |
smt005 | Дата: Сб, 29 Авг 2009, 16:27 | Сообщение # 28 |
Admin
Группа: Администраторы
Сообщений: 936
Статус: Offline
| PhysX.h" и PhysXactors.h" CphysX - класс создания сцены, актёров и т.д. В PhysXactors.h код создания актёров. Добавлено (29 Авг 2009, 16:24) --------------------------------------------- Сразу предупреждаю, код сырой, нет даже деструкторов!!!!!!!!! Добавлено (29 Авг 2009, 16:27) --------------------------------------------- Там куча ошибок и коментарий от изменённого кода, поэтому спрашивайте если не понятно.
|
|
| |
smt005 | Дата: Сб, 29 Авг 2009, 23:29 | Сообщение # 29 |
Admin
Группа: Администраторы
Сообщений: 936
Статус: Offline
| Вот что можно сделать.
|
|
| |
PA3UJIb | Дата: Вс, 30 Авг 2009, 05:47 | Сообщение # 30 |
1 Поколение
Группа: Основной состав
Сообщений: 105
Статус: Offline
| Quote (Yandersen) а вылетело даже приветственно ручкой не помахав! OGRErender.log создался? давай сюдаю
|
|
| |
Yandersen | Дата: Вс, 30 Авг 2009, 15:01 | Сообщение # 31 |
1 Поколение
Группа: Доверенные
Сообщений: 196
Статус: Offline
| Quote (PA3UJIb) OGRErender.log создался? давай сюдаю
[Беженец со Скаев]
|
|
| |
smt005 | Дата: Вс, 30 Авг 2009, 18:15 | Сообщение # 32 |
Admin
Группа: Администраторы
Сообщений: 936
Статус: Offline
| Вот демка моего PhysX. Два архива... F3 Запуск. Управление WASD, пробел - прыжок, Shift - форсаж F7 - переключение режима камеры, от глайдера и свободный вид. F5 - вход в режим редактора. Управление - HKJU LO F6 - сохранение F1 - окно/полноэкр.
|
|
| |
smt005 | Дата: Вс, 30 Авг 2009, 18:20 | Сообщение # 33 |
Admin
Группа: Администраторы
Сообщений: 936
Статус: Offline
| Вторая половинка архива.
|
|
| |
PA3UJIb | Дата: Вс, 30 Авг 2009, 18:32 | Сообщение # 34 |
1 Поколение
Группа: Основной состав
Сообщений: 105
Статус: Offline
| По-моему, твоей ноутбучной карте банально не хватило памяти вместить текстуру всю. Точнее оно ее вместило, но предварительно изменив размер. хм... Если у тебя сохранился от предыдущей моей демы RenderSystem_GL дллка, то попробуй ее закинуть в папку bin\Release, раскомментируй в plugins.cfg и запусти, предварительно удалив OGRErender.cfg - что выдаст?Добавлено (30 Авг 2009, 18:32) ---------------------------------------------
Quote (smt005) Вот демка моего PhysX. Жаль у тя визуалиция для Remote debugger выключена - хочу на форму физобъектов глянуть. А еще меня очень интересует физическая модель антиграва. У меня сейчас всего две силы используются, от чего глайд постоянно цепляется за все выпуклости и неровности и начинает крутиться, то есть трабла в стабилизации.
|
|
| |
smt005 | Дата: Вс, 30 Авг 2009, 22:45 | Сообщение # 35 |
Admin
Группа: Администраторы
Сообщений: 936
Статус: Offline
| Quote (PA3UJIb) Жаль у тя визуалиция для Remote debugger выключена Вот, замени этим экзешниом. F2 - перееключение режима отображения. Quote (PA3UJIb) А еще меня очень интересует физическая модель антиграва. У меня сейчас всего две силы используются, от чего глайд постоянно цепляется за все выпуклости и неровности и начинает крутиться, то есть трабла в стабилизации. Как определить растояние объекта (глайдер) до объектов, по вертикали ?Добавлено (30 Авг 2009, 22:44) --------------------------------------------- Забыл написать. В файле Object.bd данные о объектах. В папке models2 есть примеры моделей. Triangles: base.obj basept.obj Convex: base2.obj base2pt.obj Добавлено (30 Авг 2009, 22:45) --------------------------------------------- Файлы конвертятся автоматически.
|
|
| |
Yandersen | Дата: Пн, 31 Авг 2009, 14:06 | Сообщение # 36 |
1 Поколение
Группа: Доверенные
Сообщений: 196
Статус: Offline
| Quote (PA3UJIb) По-моему, твоей ноутбучной карте банально не хватило памяти вместить текстуру всю. Точнее оно ее вместило, но предварительно изменив размер. хм... Если у тебя сохранился от предыдущей моей демы RenderSystem_GL дллка, то попробуй ее закинуть в папку bin\Release, раскомментируй в plugins.cfg и запусти, предварительно удалив OGRErender.cfg - что выдаст? Визуально результ под ОпенГЛ тот же, но см. лог в прикреплении. Кстати говоря, из предыдущей демы пошёл лишь demo4.exe под ОпенГЛ. Но остальные хотя бы полоску загрузки показывали, а щас - флюстратиццо чёрный экран, пропадает мыша, затем снова появляется, но вместе с эксепшеном. Сушь, мож дрова ФизХ надо мне поставить?.. И ещё одно "кстати" насчёт той старой демки: после выхода из "игры" десктоп обсерает - разрешение экрана, вроде, написано в настройках всё то же, но правая часть обрезана, панель то же. Может, дело в том, что ноут мой широкоэкранный, а это нужно как-то где-то учитывать?.. Добавлено (31 Авг 2009, 14:06) --------------------------------------------- smt005, Не запустилось, бо "приложение неверно настроено" или что-то в этом роде. Не знаю, чё эт такое, но, вроде, у тя не в первый раз уже...
[Беженец со Скаев]
Сообщение отредактировал Yandersen - Пн, 31 Авг 2009, 14:11 |
|
| |
smt005 | Дата: Пн, 31 Авг 2009, 20:28 | Сообщение # 37 |
Admin
Группа: Администраторы
Сообщений: 936
Статус: Offline
| Quote (Yandersen) smt005, Не запустилось, бо "приложение неверно настроено" или что-то в этом роде. Не знаю, чё эт такое, но, вроде, у тя не в первый раз уже... Для моей демки нужна Vista или Visual C++ 2008.
|
|
| |
smt005 | Дата: Пн, 31 Авг 2009, 20:38 | Сообщение # 38 |
Admin
Группа: Администраторы
Сообщений: 936
Статус: Offline
| Попробуй кинуть эти библиотеки к экзешнику.
|
|
| |
PA3UJIb | Дата: Вт, 01 Сен 2009, 20:28 | Сообщение # 39 |
1 Поколение
Группа: Основной состав
Сообщений: 105
Статус: Offline
| Шаман, попробуй кстати эти же дллки с моим экзешником совокупить.
|
|
| |
Yandersen | Дата: Ср, 02 Сен 2009, 01:43 | Сообщение # 40 |
1 Поколение
Группа: Доверенные
Сообщений: 196
Статус: Offline
| Нифика не помогло, ни там, ни там. Добавлено (02 Сен 2009, 01:42) ---------------------------------------------
Добавлено (02 Сен 2009, 01:43) ---------------------------------------------
[Беженец со Скаев]
|
|
| |
|
|