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

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

Классно написано, читается легко. Хочется продолжения )

Спасибо! Сложу в избранное пригодится

«Ничего не понятно, но очень интересно»


Очень хорошо написано. Даже не понимая большей части происходящего все равно интересно читать

Очень интересно!
К самой воде претензий нет.
Вот видео вверху — которое NVIDIA wave works — когда вода с пеной — то граница вода-корабль выглядит хорошо. А когда вода спокойная — скажем на 0:20 то ощущение, что корабль просто воткнули в воду. С чем это связано?

А там у них привязка интенсивности пены к шкале Бофорта. Малое волнение — нет пены. Больше — пена появляется. Уверен, пенный след и пена вокруг корабля сделаны так же как и у меня: через маску. Так что на малом волнении этого следа и не видно (как и всей пены)

www.youtube.com/watch?v=P4ordwdSv6o
Вот тут видно, что корабль влияет на воду, хотя движется медленно.

Есть одно маленькое различие. То компьютерная симуляция, а это реальное видео :) Не все (пока) можно просимулировать в реалтайме, чтобы было как в жизни

Вот фиг знает. Я смотрел, смотрел… и думал — то ли реальное, то ли симуляция. На самом кораблике деталей как-то мало, но люди вроде иногда шевелятся. В принципе отличия-то понятные — образуется пена у носа и далее, в воде есть отражение, и за кораблем идут волны от него. Думается это можно сделать сейчас. Хотя… я знаю как это делать в плане CFD (правда без пены), но это явно не реал-тайм. Возможно есть какие-то принципиальные ограничения. Скажем — поверхность же постоянно деформируется, значит постоянно меняется освещение, и это гораздо хуже и чем «целый взвод лысых спецназовцев» и чем «одна маленькая, пушистая мышка».
чтобы было как в жизни
Позвольте согласиться с Daddy_Cool. Может и правильная вода на первом видео, но общее впечатление никакое. Корабль действительно «воткнули» в воду, кажется что он дрейфует. Но потом из трубы валит дым, он взбирается на волны не оставляя никаких следов на воде, даже от работающего винта. А позже выясняется что и винт не крутится, а дым для красоты. Вода не заливает палубу и т.д.

Вы же не математическую модель океана делаете, а красоту создаете. Мне, как дилетанту, кажется что картинка не должна быть «как в жизни». Небольшое утрирование и подчеркивание деталей (как в хороших мультфильмах), на которые все обращают внимание, сделает ее более «жизненной». Пена от винта, волны от форштевня. Все знают что «Форштевнем режет бриг игривую волну ...» и сразу обращают внимание — не режет. И хоть какая вода будет — зритель в нее уже не поверит.

Я не критикую Вашу воду, игру я ещё не успел посмотреть. Всё сказанное относится к ролику NVIDIA.
Вау! Даже маленькие вихри-водоворотики образуются
Отлично получилось! Мне еще очень нравится как сделана вода в Sea of Thieves, тоже, кстати, на юнити. Только за ради вида воды и моря возвращаюсь в игру снова и снова.
Sea of Thieves на Unreal Engine
Точно, понял почему перепутал. В одном из разработческих видео они показывали прототипы на юнити (механику ломания мачт), и потом переносили на основной движок. Вот юнити и засел в памяти.
Да в Sea of Thieves классная вода. Мне нравится как там пена нарисована, и то что её сдувает с высоких волн. Нигде больше такого не видел.
меня люто разочаровала вода в Сабнавтике. Казалось бы, игра про бескрайний океан, стоило бы проработать физику воды. Ан нет. Вялые волны и все.
Справедливости ради, в Сабнотике по поверхности очень мало ходишь, большая часть игры все таки под водой. А уж про подводный мир можно много говорить, что как бы и заложено в названии)
Учитывая как в целом отполированно ощущается игра во многих аспектах, я думаю, если б они взялись за волны, то вышло бы что-то на уровне Моря Воров.
Спасибо.
Пощупал, забавно. Хотя некоторые вещи вызывают недоумение. Вроде как симулятор, но корабль можно ремонтировать прямо в бою.
И может ещё подскажете. Вдруг слышали от коллег.
В моём понимании макс скорость корабля в зависимости от парусного вооружения будет при угле к ветру 90-180 градусов. Но в игре есть корабли, максимальная скорость которых достигается примерно под углом около 45 градусов к ветру. Т.е. против ветра.
И мне ни в тот вариант, что это правда (я не понимаю как это может работать, теоретический предел должен быть 90 градусов к ветру)
И я не верю что кто-то мог ТАК налажать. Это-же контринтуитивно-плавать быстрее против ветра.
плавать против ветра можно, за счет того, что сопротивление воде у корпуса корабля неодинаковое по продольному и поперечному направлениям. Вообще пишут, что у хороших парусных судов лучшая скорость достигается где-то при 30 градусах к направлению ветра
Тут подробнее
ru.wikipedia.org/wiki/%D0%9A%D1%83%D1%80%D1%81_%D0%BE%D1%82%D0%BD%D0%BE%D1%81%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE_%D0%B2%D0%B5%D1%82%D1%80%D0%B0
По вашей-же ссылке не 30 градусов.
Выделяют курс полный бакштаг, при котором угол превышает 135° градусов, то есть приближающийся к фордевинду, и крутой бакштаг (менее 135°). Парус устанавливается под углом к ветру. Обычно на этом курсе парусное судно развивает наивысшую скорость.
То, что ходить против ветра можно я знаю, более того сам ходил. Вопрос только по скорости.
Бейдеви́нд (нидерл. bij de wind), или на ветер — курс, при котором угол между направлением ветра и направлением движения судна составляет менее 90° (меньше 8 румбов)[4][1]. Выделяют бейдевинд полный и крутой. Границу между ними разные источники проводят по-разному (в диапазоне от 45 до 67,5°). Тяга паруса при бейдевинде целиком определяется его подъёмной силой, при увеличении давления ветра сила тяги уменьшается, зато возрастает сила дрейфа. Таким образом, на этом курсе парус, устанавливаемый с минимальным углом атаки к вымпельному ветру (5—10°), работает полностью как аэродинамическое крыло[5].

Лучшие парусные суда ходят под углом 30—35° к направлению вымпельного ветра. Вследствие сложения векторов скорости ветра и встречного потока воздуха, скорость вымпельного ветра на курсе бейдевинд оказывается максимальной, также как и подъёмная сила на парусе, пропорциональная квадрату скорости ветра. Максимальной величины достигает и сила дрейфа. Если попытаться идти под более острым углом к ветру, то скорость судна будет снижаться, парус станет заполаскивать[6], подъёмная сила снизится и, наконец, наступит момент, когда дрейф и сопротивление воды движению намного превысят тягу. Судно потеряет ход.


По ссылке именно это. Насчет достоверности информации по скорости стопроцентной гарантии дать не могу, из парусного опыта у меня только пара дней на виндсерфе
По вашей цитате лучшие СУДА ходят под 30-35 градусов к ВЫМПЕЛЬНОМУ ветру.
А НЕ лучшая СКОРОСТЬ при 30-35 градусах. И ветер вымпельный, а не истинный.
Кстати в цитате есть логическая ошибка. Вот эта часть не откуда не следует «также как и подъёмная сила на парусе» т.к. подъёмная сила паруса пропорциональна не только квадрату скорости ветра.
Хотя цитата заставила задуматься. Наверно действительно теоретически возможно, что максимальная скорость будет при угле к ветру меньше 90 градусов.
Т.к. чем меньше данный угол, тем больше будет скорость вымпельного ветра при равной скорости истинного. Правда ограничений видится куча, но теоретически, наверное, возможно.

да, согласен, ходят != достигается максимальная скорость
… Когда понимаешь, что формула воды ни разу не H2O…
Правильно. H2O это формула одной молекулы воды, а тут океан, минимум H2O^овердофига, а в нем же ещё соли всякие…
К слову интересно физика и отрисовка воды в From Dust сделаны. Жаль не выходит ничего похожего уже много лет.
Ну игру я не видел эту, но судя по видео там никакой физики нет. А есть там Flow Map (http://graphicsrunner.blogspot.com/2010/08/water-using-flow-maps.html). А геометрия статичная, с небольшим vertex displacement.
Ну зато там вода реально течёт, переливается из резервуара в резервуар, сохраняя общий объём и размывая при этом берега, перенося грунт в другое место.
да ну, там же вроде простецкое смещение текстуры по деформированным УВ координатам плюс фейд возле суши по карте глубин
Отличная статья. Сам для себя как-то делал волны, взяв за основу информацию из nVidia GPU Gems: developer.nvidia.com/gpugems/GPUGems/gpugems_ch01.html, на основе волн Герстнера, без особых проблем собирается в UE4 на нодах.

Как же это жутко интересно, сложно и непонятно без знания математики. Может быть есть какая-то отправная точка с чего можно начать изучение? Или если математический базис упущен, то можно забыть про программирование графики? Конечно можно начать с самого начала изучить линейную алгебру и тригонометрию, но тогда есть шанс утонить в математике так и не начав :)
Без знания математики такие системы не создашь, это 100%. Но можно начать с простого, постепенно осваивая новые моменты, принципы, архитектуру 3D рендера и т.д. Я, например, с туториалов и всяких там обучалок начинал.
Спасибо, можете поделиться ссылками на туториалы? Может быть можете какие-то книги порекомендовать?
Материалы для начинающих я рекомендовать не буду, так как я ими уже много лет не интересовался. Книги: Серии ShaderX, GPU Pro, GPU Zen, GPU Gems. Real-Time Rendering. Но это все для подготовленного читателя.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории