Unity объявила о партнёрстве с Havok для создания физического движка

Компании выпустят два продукта.

В закладки
Аудио

На конференции GDC 2019 компания Unity объявила о партнёрстве с производителем физического движка Havok. Вместе они займутся созданием собственной технологии для обработки физических взаимодействий.

В рамках сотрудничества компании выпустят два продукта. Первый — Unity Physics — это базовая физическая система движка для проектов, основанных на технологии DOTS. Она будет иметь открытый исходный код.

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

Разработчикам, которые в данный момент делают игры на существующем решении, не нужно начинать всё с нуля. По словам вице-президента Unity Эндрю Боуэлла, компания предоставит разработчикам конверторы, которые позволят им перейти на DOTS-фреймворки. Сейчас Unity Physics доступна в качестве превью.

Второй продукт — Havok Physics. Он будет полностью интегрирован в движок и, как отмечают в Unity, пригодится тем, кому нужно решать более комплексные физические задачи. Он также использует DOTS-фреймворк, но создан на прориетарном движке Havok. Этот продукт будет доступен в конце лета.

#unity

Спасибо за наводку Andrey Apanasik
{ "author_name": "Andrey Apanasik", "author_type": "self", "tags": ["unity"], "comments": 37, "likes": 97, "favorites": 26, "is_advertisement": false, "subsite_label": "gameindustry", "id": 43405, "is_wide": false, "is_ugc": false, "date": "Tue, 19 Mar 2019 12:35:12 +0300" }
{ "id": 43405, "author_id": 1922, "diff_limit": 1000, "urls": {"diff":"\/comments\/43405\/get","add":"\/comments\/43405\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/43405"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 87855, "last_count_and_date": null }

37 комментариев 37 комм.

Популярные

По порядку

Написать комментарий...
9

Очень надеюсь, что наконец-то запилят double precision физику. Ну вот прям очень-очень

Ответить
0

Тебе нужно чтобы машинка на расстоянии 10000 метров ехала также, как и на 50 метрах от камеры?

Ответить
3

Например да. Хотя в случае с машинками это не совсем полезно, а вот в случае с самолетиками-корабликами-звездолетиками - уже полезнее

Ответить
0

Всегда можно точку отчета перемещать и тогда проблем будет на порядок меньше

Ответить
0

Что делать если самолетики-кораблики-звездолетики распределены равномерно по игроаому миру?
Но к одному точку отсчета переместили, другим чего делать-то в 100000 км.
В KSP сколько не перемещали и не исхитрялись, а Кракены все равно нет-нет, да нападали на ничего не подозревающих кербонавтов

Ответить
0

Дробить мир на домены и в каждом заводить свою систему отсчёта. Благо как раз в KSP всё существует внутри сфер влияния, которые просто напрашиваются на такие центры. А ещё физика действует только в километре от активного крафта, так что он - кандитат на центр мира. Так что кракен там из-за чего угодно, но не из-за Float.

Ответить
1

Так что кракен там из-за чего угодно, но не из-за Float.

Все Кракены появляются именно из-за single precision. Инфа 145%
Вот классический Кракен, который разрушал корабли ещё в 0.17:
The high velocities caused floating point errors in the code which caused parts to be slightly misaligned or misplaced on the ship which would in turn cause the physics engine to detect the parts breaking off or colliding.

Разработчики с тех пор налаживают костыли, старые Кракены исчезают, новые плрдятся: когда выходишь из варп-режима, переключаешь сцены, меняешься между крафтами, переходишь из одной сферы влияния в другую и т.д. и т.п.
Вот тут он появляется при переключении тайм варпов: сначала корабль начинает разваливается (как буд-то бы от удара), а потом на него налетает астероид, при этом и корабль изначально покоится относитсительно астероида
https://youtu.be/k8KXdqVlHsQ
Типичные условия появления Кракенов: высокая скорость движения крафта и его большая удалённость от Кербина, ну или там спецефический сочетания скоростей и расстояний (есть, например Кракен, который нападает на высоте в 6000 метров Кербина при определённых скоростях)

Ответить
0

Стандартными средствами unity такое не провернуть.

Ответить
0

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

Ответить
0

Я имею в виду, что сейчас не поделить мир на домены чтобы посчитать в каждом достоверную физику в один момент времени. Вариант ксп это вынужденный компромисс с фундаментальными ограничениями 32 битной физики в unity.

Ответить
0

А. Сорри. Видимо изначально не понял Вас.
Ну да, что бы физика продолжалась обсчитываться в каждом домене - есть проблема. Но не только у Юнити, у Анреала также. Во всем виноват коварный ФизИкс.
Я вот как раз последнее время сейчас и думаю над этим - как продолжать обсчет физики во всех доменах, в итоге пока получается что проще самому написать физический движок и обрабатывать на CPU (на самом деле видюхи тоже умеют в даблы, но перфоманс заметно упадёт, домой приеду - могу посмотреть во сколько раз, раза в 2-4 примерно).

Ответить
0

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

Ответить
0

С лёгкостью.
Вон можете посмотреть Space Graphic Toolkit - все сделано стандартными средствами.
Тут на DTF один человек отписывался как он делает очередной космосим на Юнити

Ответить
0

Но банально физически достоверное движение планет, лун, астероидов таким хаком уже не сделать. Только хаками и ручной упрощенной "физикой" как в KSP.

Ответить
0

Если ты чего-то не видишь, зачем для положения этого объекта нужна большая точность?
Пусть кракен не дремлет для дальних невидимых объектов, главное, чтобы игрок этого не видел.
Физически достоверное движения планет сделать реально, но только в масштабе солнечной системы, а не человечка на ней.
Если хочешь человечка, то временно упрощаешь расчеты дальних объектов вселенной, пока не выйдешь из масштаба человечка.

Ответить
0

Если ты чего-то не видишь, зачем для положения этого объекта нужна большая точность?

Ну во-первых начнем с того, что бы определить что мы видим, а что нет, и отсечь лишнее, нам нужно пройти геометрический этап: vertex и geometry processing, и произвести на объектами необходимые трансформации. Фактически обрезка происходит перед растеризацией и большую часть графического пайплайна при первом проходе Вы уже прошли. Можно, конечно сказать "Фигня-война, давайте подсунем видеокарте только часть", ну в таком случае будите осуществлять геометрический этап уже на CPU, но я уверяю Вас, что GPU уже как 15 лет назад умела делать быстрее (может быть и еще раньше). Собственно по этой же причине популярные физические движки стараются крутятся именно на GPU последние лет 10.

И тут, во-вторых, мы подходим к тому, что объекты влияют друг на друга даже на больших расстояниях, причем как с точки механики движения, так и с точки зрения графики.
Например, Венеру вы уже видите на небе при заходе Солнца, а расстояние до нее от 38 до 261 млн км.
А наличие новой 9-ой планеты у которой предполагаемый перигелий и афелий составляет от 200 до 2000 а.е. (это дохрена) с периодом вращения в десятки тысяч лет, косвенно найдена именно по поведению транснептуновых объектов (все обособленные транснептуновые объекты находятся в орбитальном резонансе друг с другом, такого случайно произойти не может). Более того, эта же 9-ая планета вероятно влияет и на угол наклона оси вращения Солнца - другими способами объяснить аномальный наклон Солнца пока не получилось.

Следовательно, в третьих, хотелось бы работать с однородной и изотропной физической моделью, т.е. решения во всех уголках были одинаковыми и предсказуемыми не зависимо от того где сейчас находится камера и активный игровой объект (а если игровых объектов много и они разбросаны по всей Галактике?)

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

Тут видите ли в чем проблема. Single precision - это всего 6-7 значимых знаков.

Возьмем, например, Юпитер, разность расстояния до Солнца в перигелии и афелии составляет 76*10^6 км, а их собственные значения - эточисла порядка 10^8 км (несколько а.е.) - так что ошибки будут соизмеримы не просто с человечками, ошибки расчетов будут достигать километров и совпадать с размерами тех же астероидов средних размеров (больше Тунгусского метеорита в десятки раз). Все, добавили орбиту Юпитера. выкинули половину астероидов. Человечков на орбите Юпитера тоже придется выкинуть - он [орбита] тоже окажется на столько большой, шо погрешности будут соизмеримы и больше чем размеры человеков.

Если мы возьмем Плутон у которого перигелий и афелий уже исчисляется в 30-50 а.е, то там размер ошибки на его орбите будет уже больше размеров самого Плутона. Все, добавили Плутон и приходится вычеркивать его же самого из-за погрешности вычислений :-)

Вообще для приемлемых расчетов движения Луны требуется точность примерно в 11 знаков после запятой, double это обеспечивает, single - уже нет.

Собственно по этой причине в KSP все планеты и орбиты на которых они расположены значительно меньше реальных (например, Кербин меньше Луны в 3 раза), а при знакомстве с Real Solar System Кракен заманает по самое не хочу. Оно то, конечно, решаемо, но у других спейсимов как Elite, Orbiter, и даже Space Engineers и т.д. используется уже самописные физические движки, обеспечивающие расчеты с двойной точностью и при этом разработчики тоже хитрят естественно.

Реально, всех этих PhysX и Havok, вместе с UE и Unity3D хватит только для корректной работы без бубна на квадрате примерно 10x10 км, ну вот на PUBG хватает и слава богу :-) Авиа-симы и спейс-симы тут в пролете: либо масштабы будут далеки от реалных, либо свои костыли с Кракенами как в KSP, либо свой физический движок (на самом деле что CPU, что GPU глубоко пофиг, можно в них запихивать и quadruple-precision floating-point или BigInt, чем я на работе и пользуюсь чаще чем хотелось бы).

Чойт я как-то совсем дохрена написал...

Ответить
0

Это и есть та самая Нибиру, на которой живут рептилоиды, и которые заберут нафармленное людьми золото во время следующего ближайшего витка, начиная Кали-югу?

Ответить
1

Это забавно, но период обращения у этой планеты - от 10 и до 20 тысяч лет, при радиусе около 20 тысяч километров и массе от 10 и до 50 масс Земли, т.е. это реально супер-земля, либо газово-ледяной гигант.
А в перигилии она может находится на расстоянии (предположительно) в 200 а.е. - это не так уж и далеко - за орбитой Плутона, только она заметно больше его по размерам. Так что потенциально эту планету могли наблюдать наши предки, причём и как звёздочку на небе, так и косвенно ощущать её влияние на окружающие планеты, а влияние у неё нехилое - она смещает ось вращения Солнца (пока наличие массивной 9-ой планеты - единственное объяснение аномально го наклона Солнца), формирует орбиты транснептуновых объектов и возможно оказывает существенное влияние на орбиты Урана и Нептуна. Но сейчас она находится недалеко от афелия, дальше 1000 а.е.
Ну т.е. Это реально здоровая и плотная планета с очень вытянутой орбитой. На обратном витке она вполне может вернуться с нафармленными ею за эти тысячи лет астероидами и кометами, которые увидев какая тут движуха и веселье, начнут разбегаться и делать обнимашки с другими планетами на больших скоростях от радости. Или она немного подрегулирует орбиты, а может и ничего не будет - тут ваще хз, все зависит от реальных параметров планеты и орбиты.
Но на ней слишком холодно, а ящерки хладнокровные и при низких температурах впадают в анабиоз - так что если они туда как-то попали и их не расплющело, то они будут тупо дрыхнуть во льдах...

В общем по консервативным моделям пока за свое золото землянам можно не боятся :-)

https://en.m.wikipedia.org/wiki/Planet_Nine

Ответить
0

И все равно не смотря на все хаки Кракен не дремлит...

Ответить
0

Кракен возникает не из-за того, что рассчёты не в Double, а из-за того, что физикой не правильно пользуются. Если бы был контроль сохранения энергии-импульса, то кракенским метаниям было бы просто неоткуда бы браться.

Ответить
1

Врядли. Потребительские GPU все же заточены под синглы. И прикол в том, что нельзя просто так взять и туже абстрактную физику на даблах повесить на CPU - надо же как-то потом эти объекты отрисовывать, да и если уж на то пошло, если юзать SIMD то и на CPU синглы оказываются более предпочтительными.
В общем тут сходится сразу все - ожидаемый перфоманс и поддержка производителем. Всё же даблы и выше актуальный только для научных расчётов.

Ответить
0

Что-то маловероятно, если учесть, что потребительские gpu считают double с изрядным штрафом, а популярные nvidia чуть ли не на порядок медленнее.

Ответить
0

Ну можно же помечтать? :)

Ответить

Комментарий удален

Комментарий удален

3

тем не менее RF Guerilla на Havok из 2009 года так и остается королем интерактивности..

Ответить
0

Ну, говнокод говнокодом, но лучше физики не найти. С юнитековской и нвидиевско-анриловской не сравнится - то если судить за конечную реализацию просто лютое говно, которое в игру встроит частью кор-механики только совсем отчаянный психопат, но для ни на что не влияющих свистоперделок пойдёт, но код может быть там и отлично написан, но не в нём беда.

Ответить
0

А есть целиком обзорная статья про GDC Unity?

Ответить
3

Спасибо. Эхъ, а нетворкинга походу еще года два не будет.

Ответить
1

Я планирую чуть позже, но, вероятно, более профильные сайты про это напишут раньше. Я то этим чисто по фану занимаюсь (:

Ответить
–1

как мило. глядишь скоро сделают норм движок и смогут с анрилом тягатся

Ответить
0

Havok всегда был быстрым и шустрым физ.движком и при это работал везде и только physX прориетарное г - тормозящее на всём подряд. Вот бы, авторы Havok взялись бы и за DXR, глядишь у них получилось что-то шустрое и красивое.

Ответить
1

PhysX вроде стал опенсорсным же, нет?

Ответить
0

DXR у майкрософта, а не у Nvidia, и его аналог на vulkan скоро релизнут

Ответить
0

И анонс Fable на новом движке! РАУНД!

Ответить
0

Я конечно понимаю что дело не в самом Havok, а в людях которые умеют его готовить, но субъективно проекты на Havok мне как-то приятнее заходили чем на PhysX, возможно, даже из-за того что Havok ведет себя более аркадно.

Ответить
0

Теперь будет и дёшево, и ноги всегда полусогнуты?)

Ответить
–1

Что и следовало доказать.

Ответить
0

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjog" } } }, { "id": 10, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-250597-0", "render_to": "inpage_VI-250597-0-1134314964", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=clmf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudo", "p2": "ftjf" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvc" } } } ]
10 самых лучших блюд
(согласно инстаграму Хидео Кодзимы)
Подписаться на push-уведомления