Как стать автором
Обновить

Комментарии 94

Выглядит потрясно, но очень прокалываются на пене и отсутствии пузырей в воде. Хотя думаю это вещи относительно просто поправить.
Главное чтобы отдельную видяшку под воду не пришлось покупать.
Почему нет? Под воду, волосы и огонь. :)
И под симуляцию одежды!
А у кого не будет именно такой видяшки для симуляции одежды, все персонажи игрушки будут без одежды.
И без волос =0
На этом видео уже заметны неточности модели.
а это не та же технология, что на презентации nVidia год назад? www.youtube.com/watch?v=h5mRRElXy-w
Еще бы добавить смачивание и «намокание» объектов для демки (подозреваю, что сравнительно не сложно).
Шейдеры. Это точно просто.
Как и шейдерную пену
Одно дело нарисовать а другое дело вычислить место, где необходимо рисование.
Я простой алгоритм придумал во время просмотра, думаю для тамошних спецов вообще никакого труда не составит придумать гораздо более уверенный алгоритм
Простой?
Если действительно простой — реализуйте.
А так, идея без реализации стоят ровно столько-же, сколько разговоры за барной стойкой. Это уже избитая тут тема.
Во первых я не в команде разработчиков, что бы реализовывать свои идеи в проекте к которому у меня нет доступа, во вторых если вы действительно сомневаетесь, я, дабы не разводить здесь флуд, могу вам в личку наипсать простейший алгоритм определение позиции генерации пены
Опишете ли вы его мне словесно тут или в личке, это так и останется пустословством. Если у вас есть алгоритм генерации пены, то вы знаете требования для его работы, и т.о. вы можете сами его реализовать, смоделировав условия. Даже если ваша симуляция будет медленнее чем на видео, она покажет что ваш алгоритм работает или не работает. И вовсе необязательно для этого быть в команде разработчиков NVidia.
Называть пустословством то о чем вы вообще не вкурсе, такое же пустословство. Однако хватит разводить флуд ниочем
Мне еще понравилось как они аквариумы в реальном времени разрушали
А вот с аквариумами как раз может и красиво, но совершенно не реалистично. Физика воды есть, а вот физика стекла крайне убога, да еще и нет влияния воды на стекло (есть только стекла на воду). Это если докапываться, конечно. А так, да, красиво.
Все верно, но я о самом факте реалтамового обсчета разбиения обьекта
Гидродинамика сглаженный частиц — очень мощный аппарат, позволяющий моделировать механическое поведение не только воды, но и почвы, кровеных сосудов, процессы роста растений, плазмотронов, металлов, обрабатываемых фрезами и др.

Извиняюсь за ссылку на ВК, но вот тут можно посмотреть на результаты моделирования этим методом ССЫЛКА Сразу скажу, ресурс не мой.
процессы роста растений, плазмотронов

Эх, хотел бы я посмотреть на процесс роста плазмотронов :)
Момент с разбиванием аквариума, это… потрясающе!
Не терпится опробовать какую нибудь игру с использованием этой технологии ;D
Симулятор ручейка! Как в детстве)
А вот на симуляторе ручейка кто-то сделает свой первый миллион.
НЛО прилетело и опубликовало эту надпись здесь
… и пускать по нему бумажные кораблики.
Чем больше унифицированных ядер в видео-карте — тем реалистичнее будут вода / дым / трассировка лучей / глобальное освещение / прочие красивые штуки. Именно эти вычисления прекрасно распараллеливаются.
Мне кажется физику воды все же не так просто распараллелить, так как частицы с одного края могут зависеть от частиц с другого края.
Это если в одном сосуде и физика «честная».

Для игр конечно можно упрощенную модель сделать (с более вязкой водой).
PhysX умеет самостоятельно работать через CUDA, для этого просто нужно поставить где надо «галочку».
да вроде всю жизнь её параллелили
До реальной воды далеко в плане намокания других объектов.
Намокание объектов — это уже не к физике симуляции воды. Достаточно мокрую текстуру (со всеми слоями, шейдерами) наложить в тех местах, где жидкость соприкасалась с объектом. Если жидкости попало много, то она и так стекает согласно этой демке.
Ещё нужно отнять объём впитанной воды от общего, если совсем быть точным.
Раз уж такая пьянка, то вот ссылочка на видео с кафедры компьютерной графики моего универа. Я уже когда-то кидал, но может не видел кто. Вообще советую просмотреть весь канал.
я думал что вуз российский, хотел удивиться, а потом прочитал название канала
Потрясающе. Если не секрет, в чем создавалось и визуализировалось?
Я учусь и работаю не на этой кафедре, но исходя из того, что я знаю, то симулятор называется Coin (Open Inventor). Это объектно-ориентированная библиотечка для программирования графики. Подробнее можно посмотреть во вводной лекции.

Сам метод от и до написан на с++, но подробностей я не знаю. Как бы там ни было, как в любой физической симуляции воды, скорее всего, дискретизировались уравнения Навье Стокса, но как — это уже нужно читать соответстующую публикацию.
В общем-то, если у хабрасообщества есть интерес, я могу ее найти и перевести (если она конечно в открытом доступе).

Вообще, кому интересно вот сайт каферды со всеми лекциями, которые можно самостоятельно почитать и разобраться. Я недавно сдавал этот предмет, на лекции не ходил, учил неделю перед экзаменом и сдал на отлично, так что лекции вполне подъемные при должном желании.
Вас интересуют разделы Advanced Computer Graphics и Simulation in Computer Graphics
Впечатляет!
Очень круто.
Только кролике выглядит скорее как желе чем вода.
Мне показалось, что это очень жидкое масло. :)
В принципе, вывод достаточно прост: хочешь красивую воду — пиши воксельный движок. А одна из основных их проблем – производительность. Даже учитывая уменьшение количества вокселей за счет увеличения их размера.
Кстати, в варианте с маяком вспомнился последний биошок, но там море было до горизонта и оно съело бы всю мощность современного железа. Хотя, возможно, за счет отсечения невидимых планов и загрубления рассчетов при удалении получилось бы ничего.
Вы случайно воксели с партиклами не перепутали?
НЛО прилетело и опубликовало эту надпись здесь
Почти уверен что у niosus не реалтайм рендер, потому можно более точно просчитывать частицы.
Да, вы правы, то видео, что у меня — не реалтайм. И это объясняет так же почему вода более вязкая в видео в теме. Вязкость позволяет использовать более грубую разностную схему. Для того, чтобы запускать все это в реалтайм это важно.
В некоторых играх и реки крови симулировать уместно будет.
У меня дежавю или я это пару лет назад уже видел.
Меня в свое время поразил рендер в реальном времени на этом видео: www.youtube.com/watch?v=OiGADgezjC8 Да и до сих пор поражает…
Ну тут все же шейдеры.
Наверно глупый вопрос: все просчитывается в реальном времени?
В видосе указано число FPS, что было бы бессмысленно в случае пререндера. Но! Не понятно, на каком компе это дело…
там указана видяха
НЛО прилетело и опубликовало эту надпись здесь
Люди, которые радовались переходу с CGA на EGA считают ваш комментарий немного напыщенным.
НЛО прилетело и опубликовало эту надпись здесь
Остается надеется, что PhysX будет использоваться в большем количестве игр. Пока, к сожалению, их мало и большая часть из них не достойны внимания.
Насколько я понимаю PhysX работает только на видеокартах чипа Nvidia, могу ошибаться.
Ошибаетесь, это кажется самый популярный кроссплатформенный физический движок, потом идёт Havok. На видеокартах от NVIDIA просто есть аппаратная поддержка.
Уточню, PhysX самый популярный среди игр с большим бюджетом. Среди других популярен Bullet.
Частично он прав. Полноценный PhysX с аппартным ускорением работает только на картах NVIDIA, причем даже заблокирована возможность просчитывать физику на карте Нвидиа, а графику на карте другого производителя. Раньше выпускались патчи для дров, позволяющие активизировать PhysX в системах с видеокартами от АМД, но давно уже новых версий патчей не появляется.
www.nvidia.ru/object/physx_faq_ru.html
То, что показано в демке явно будет только в системах с аппаратным ускорением, там где его не будет, все будет выглядеть гораздо проще. Что касается консолей, то судя по новостям у PlayStation4 вполне может быть и полноценная аппаратная поддержка PhysX, не смотря на железо на AMD. Т.к. в принципе с технической стороны препятствий нет никаких заставить PhysX аппаратно ускорятся на железе от AMD. Вопросы тут только финансовые.
Жалко что они демки сами не выкладывают, я бы с аквариумом поигрался.
Кстати, вот тут тоже риалтайм на 1 GPU в 2010 году (кажется еще и в 3D) www.youtube.com/watch?v=1JrM4ujLY_A&hd=1
Круто. Но смущает подход, т.к. в игрушках объемы воды как правило куда больше, да и кроме воды — еще куча всякого разного…
Почему капли воды не остаются на объектах?
Думаю, потому, что тут моделируется вода, а не смачиваемость ею поверхностей.
Капли воды движутся с одинаковой скоростью, особенно заметно на аквариуме с постаментом.
Похоже, что смачивание вообще игнорируется.
В документе по ссылке не увидел ничего принципиально нового. А вот адекватно плавающие объекты было бы интересно увидеть. А сам алгоритм достаточно простой и 1300 раз реализованный, с небольшими модификациями, да вот хотя-бы http://wonderfl.net/c/pKTB.
Тут смысл не в том, что разработан новый алгоритм, которого нигде не было и ничего подобного мы даже близко не видели. Видели и лучше, но не в играх. NVIDIA в данном случае показывает новые возможности своего физического движка для игр. Таким образом разработчики игр получают в руки готовый инструмент для создания подобной воды в своих играх.
Адекватно плавающие объекты требуют просчета гидростатического давления. В показанных иллюстрациях его, похоже, нет.
Ниже я обратил внимание на то, что при расстреле аквариума струя вытекающей воды не меняется с изменением уровня воды в аквариуме.
Вот бы в Корсаров да с такой водой :)
НЛО прилетело и опубликовало эту надпись здесь
Вблизи моделировать маленькими, вдали — большими. Этакий LOD для физики. Такие сцены надо или показывать издали, чтобы шло на большем числе компов и выглядело пафоснее, или рендерить заранее.
НЛО прилетело и опубликовало эту надпись здесь
Шариков-то в демках на финальных визуализациях не видно. Они показываются скорее для демонстрации того, для каких объемов воды рассчитывается взаимодействие с другими единичными объемами и твердыми телами, а в итоге окончательное местоположение в тот или иной момент времени. Окончательно же каждый единичный объем в виде шарика не отрисовывается-то.
Хватит-не хватит. Прежде чем об этом говорить, надо понять сколько этой памяти нужно. Так же моделирование и визуализация в играх должна быть качественной и подробной близкой к игроку, а чем дальше от него, тем проще они могут быть. Памяти же на видеокартах сейчас довольно много.
Да и это просто очередное развитие физического движка для игр и призвано оно не сделать какие-то точные лабораторные расчеты, а показать более реалистичную воду в играх по сравнению с той, которую мы видим сейчас. Хотя сейчас PhysX и в текущем виде мало где где используется полностью. К слову, в Крайзисе 3 PhysX вообще не используется.

Использовать тот же подход, что и при разбиении объектов на вокселы: крупные массы воды, не контактирующие с другими объектами (в т.ч. атмосферой) моделировать крупными субъединицами, мелкие порции воды, контактирующие с другими телами и/или отрывающиеся от основных масс — более мелкими субъединицами. Но при моделировании больших объемов все равно нужно будет на каком-то этапе переходить от частиц к геометрии+ текстурам (начиная с той дальности, где зритель разницы не заметит)
автор статьи написал же, почитайте там, вот и ответ! (
Может кто игру про серфинг напишет? м?
Это выглядит «неплохо», но на воду похоже лишь отчасти. Сразу же бросается в глаза:
1) отсутствие поверхностного натяжения (в некоторых сценах вода разлетается не на брызги, а на «сопли»
2) отсутствие смачивания поверхностей
3) Отсутствие гидростатического давления (дальность полета и сила струи из разбитого аквариума не зависит от высоты столба оставшейся в аквариуме жидкости).
Да и вязкость явно не соответствует воде. Сильно больше.
До развития воды в играх до уровня «несоответствия по сравнению с реальностью не бросаются в глаза» еще очень далеко. Но печально не это, а то, что в современных играх даже близко к демке ничего не встречается. Все очень и очень убого.
В Half-Life 2, вода на первый взгляд выглядела красиво, и объекты в ней плавали тоже очень реалистично, но вот брызги все портили, и вид на океан с высоты, когда было видно что волны рисуются квадратными полигонами. В каком-то томб райдере было реализовано намокание, но вот не помню только самой Лары ) или же всех объектов. Так в целом и получается, что где-то красиво выглядит, где-то красиво переливается, а все вместе так и нет (
фу, в майнкрафте реалистичнее!
Удивительные люди… Как будто я им наврал.
Насколько я понял, глянув статью по ссылке, это одна из модификаций SPH. Знаю ребят, которые смазочный слой в подшипниках скольжения этим методом пытаются моделировать.
Эх, а я помню восторг от воды в Age of empires 3 — она тогда казалась такой реалистичной! Или даже раньше — в Morrowind.
В Morrowind действительно хорошая вода была.
Помню, начитался про воду, побежал за диском от 1С — а вода выглядит как говно. Потом только узнал, что такое пиксельные шейдеры и почему Geforce 2MX 400 не держит их :)
Временами на кисель похожа эта вода
Самая красивая вода, что я видел в жизни — в Dear Esther. (Там и небо самое красивое, и скалы, и пещеры, и кристаллы и вообще природа)
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.