Меш это quadtree сетка, на весь океан (например на 100 км) в самой детальной версии около 2 миллионов треугольников, но на экране где-то пару сотен тысяч максимум.
Пересчет нормалей быстрый и не проблема, но в сцене вообще для теста использую производные. Это позволяет считать нормали из вершинной анимации бесплатно.
Сам алгоритм симуляции воды невероятно быстр. Это 2d текстура хранящая уровень воды и вектор скорости. Для локации 200 метров достаточно текстуры 400 пикселей. Обновление текстуры (2 прохода в 60фпс) это настолько быстро, что даже на мобилках это не проблема.
Вот gpu частицы и брызги и обновление карты теней уже серьёзно, но это всё оптимизируется.
Ага.
Да и не надо Вот эти ваши рейтинги хуейтинги только убивают человечность в людях
Да, помню в первой доте, когда была ещё гарена и без рейтинга.
Стартануть можно было раза с 5, потому что дегенераты вечно ливали, ибо "мне пуджа не дали".
90% игр заканчивалось ливом после первого убийства на 1 минуте.
99% игр никогда не заканчивались тем, что вместо 10 игроков оставалось всего пара человек.
Игры без рейтинга и штрафов - это отличный способ отбить всякое желание играть с реальными людьми.
И точно такая же статистика была в парагоне и overprime. Переигрывать можно было раз 10, пока "всех всё не устроит". А потом всё равно твари ливали после пары минут, потому что их опять что-то не устроило. Ведь штрафов то нет.
Боюсь тебе не стоит открывать любую мморгп или моба, если даже такое для тебя "слишком цветасто"
Не тороплюсь, но поверь, технически ничто не мешает уже в ближайшие годы генерировать часть контента в игре нейросеткой. Тот же задний фон из гор/облаков/горизонта/воды.... А последнее как раз уже то, чем я занимаюсь.
Она ещё вначале пыталась сначала камеру найти, потом полторы минуты дверь искала xD
Не верю что нужно было объяснятьТак он игрок в фортнайт, чего ты ожидал?
А чё, тут можно свои эффекты показывать без зазрения совести?
Ну так и мои тогда сюда вставляйте.
https://youtu.be/b-vqp0J2Aeo
Сегодня арты генерирует, завтра условные игры. И вот геймдев программисты, моделлеры, vfx артисты и т.д. не нужны. Так же как и штат разработчиков игровых движков, игровых видеокарт и алгоритмов не нужен. Это миллионы людей по всему миру.
Потом нейросети заменят кассирш, водителей, бюрократов, банковских работниц и ещё тысячи профессий либо будут дополнены, либо полностью заменены нейросетями, как только это будет финансово выгодно.
Говорю как VFX артист и геймдев программист, заменить меня рано или поздно смогут. Возможно не полностью, но точно что-то изменится.
За такой базарОх как мы заговорили, уже по фене. Кстати если любишь ауе сленг и тематику, то там, вечно ноющим стукачам, не выжить. Поэтому рекомендую сменить либо риторику, либо поведение.
Хотел было тебя поздравить, с первым комментарием где ты не токсично ноешь, но ты прошёлся по моим комментам и отправил жалобку аж на целые сутки. Вот это ты конечно насолил xD.
Чекнул его комменты, у него 95% комментов нытьё. Буквально за 30 комментов не нашёл ничего нейтрально-положительного.
Вот только x86 в разы прожорилее armПроцессор может быть, но львиную долю потребления будет составлять GPU, а там архитектура та же.
и к такому шлему ещё и рюкзак с аккумулятором понадобитсяК стимдеку же не нужен. С новым техпроцессом и архитектурой, производительность нового GPU будет раза в 2-3 выше при том же потреблении. 90% игр VR, (тот же скайрим) запустится из коробки без всяких танцев с бубном, это прям огонь.
На картинке выключен ambient occlusion.
Ещё одна классная аналитика. Я лет 7 назад работал над metro exodus в Европе.
Ты сейчас пытаешься подъебать меня и мой уровень навыков, что выглядит весьма комично, учитывая что всё что ты знаешь о геймдеве это "я сравнил героев 5 и 7".
Если вы — инженер по графикеЯ разработчик шейдеров и ассетов под кроссплатформы, от древних мобилок, до настольных ПК и консолей.
И разработка под остальные платформы (консоли, мобилки, Web) выглядит как одна большая шутка.
Моё любимое, на metal не работает компилятор шейдеров, если в названиях переменных встречается слово "_output", то есть нельзя написать "displacement_output1", и такое выясняется методом тыка и мне потребовался целый день на поиск этого.
Вот так выглядит разработка под любые не x86 платформы, где разработчики проприетарных GPU и API сами себе на уме, чё хотят, то и делают.
Если вы делаете проект под мобилы Мобильные GPU давно могут рендерить современные игры. Например resident evil village на айфоне.
Проект под мобилки и проект под пк (в плане рендеринга) не должен отличаться. Другой интерфейс, геймплей, окружение - естественно. Но рендеринг и фичи должны быть одинаковые. Просто потому что ВСЕ современные мобильные GPU на бумаге указывают полную поддержку того же самого API что и на ПК.
Гугл кладёт хер, производители телефонов (которые должны писать драйвера) кладут хер, и в итоге всё это разгребает обычный разработчик. В то время как майкрософт 30 лет назад сделали directx и буквально сняли с разработчика целый пласт проблем. Это именно что УСЛОЖНЕНИЕ, а не ограничение.
проект с оглядкой на несколько платформ, сложность сведется исключительно к сборке.Ты разрабатывал на несколько платформ? Или просто придумал?
Я не согласен с определением 'усложняет' и предпочел бы заменить его на 'определяет рамки'Ну да, не усложняет. Теперь мы просто вместо структурных буферов будем использовать массивы и переписывать половину когда (если это вообще возможно).
Вместо forward+ освещения на GPU мы будем костылить свой многопоточный и глючный CPU софтварный кластерный рендеринг, который медленее.
Вместо быстрых gpu частиц с depth коллизиями/декалями/инстансингом мы будем писать свою систему с нуля на CPU, которая медленее или вовсе отказываться.
Вместо z-occlusion culling, мы будем использовать медленный рендеринг.
От рендеринга частиц (без проблемы микротреугольников, а чисто на interlocked операциях с пикселями) мы отказываемся, потому что хардварные реализации медленее в несколько раз, иногда в сотни раз.
Там ещё сотни фич, которые надо будет или переписать под старый рендеринг, или вообще отказаться.
Это как строить дом, когда у тебя максимум разрешено использовать ведерко и молоток.
Поэтому мобильные игры все и выглядят как кусок говна времен dx9. А любые интересные фичи требуют колоссальной работы от разработчиков, либо вовсе невозможны.
Да, умерить. Уменьшить разрядность куллинга,Какую разрядность? О чём ты? Не имея доступа к вычислительному шейдеру, ты физически не сможешь использовать Z-occlusion culling.
сократить количество весов на вертексВо сколько раз ты сократишь? В 2-3? GPU скининг в сотни/тысячи раз быстрее чем CPU скининг.
упростить системы частицТы не можешь упростить систему частиц. Она или работает на GPU или нет. Ты будешь её переписывать на CPU. Плюс у тебя нет доступа к буферу глубины, у тебя нет коллизий, нет декалей, нет физики, нет инстансинга.
Технология должна служить креативуМобильная технология не служит креативу. Там стабильное API времен DX9. Он уже 15 лет как устаревший, но всё равно все ограничены технологиями динозавров. Какой креатив, когда у тебя нет никаких инструментов, ни фич?
Собирать сборки под разные платформы не представляет никаких сложностейА причём тут сложность сборки?
Я писал про сложность разработки, а не сборки билда.
Разумеется, никто не отменяет требования думать о производительности и умерять хотелки-перделки.Всё это только усложняет разработку, о чём я вначале и сказал.
x86 архитектура стабильна, изучена и можно проверить здесь и сейчас, андроид это лотерея и черный ящик, где нет документации по GPU, нет инструментария для глубокого профилирования, нет ничего.
Ты буквально не сможешь сказать что у тебя будет работать, а что нет, без тестирования на конкретном устройстве, не говоря уж о глубоких способах оптимизации. Ты просто как обезьянка, должен догадываться что сработает и перебирать все варианты.
Умереть хотелки-перделки? Это ты про z-oclussion culling, скиннинг и частицы на GPU? То есть оптимизация рендеринга, дающая огромный буст - это просто хотелки? Ок.
Нет, это чуть сложнее чем просто "выбрать билд под адроид".
1) андроид как API это кусок говна. Спасибо гуглу, что он разрешил разработчикам самим решать какие фичи будут на GPU. Теперь мы имеем проблему курицы и яйца: разработчики не используют фичи которые не работают, производители не добавляют фичи, потому что разработчики их не используют.
Яркий тому пример - вычислительные шейдера (которым уже лет 15, начиная с Directx10). На мобильных платформах никогда с 100% уверенностью не скажешь, будут ли они работать и какие будут проблемы. Это просто сраная рулетка. За 15(!) блять лет так и не могут добавить её реализацию.
Напоминаю, вычислительные шейдера юзаются в каждой ААА игре по многим причинам, от Z отбраковки, до физики, скининга, симуляции частиц и т.д.
2) под x86 полно инструментов профилирования + можно без развертывания на устройстве уже примерно оценить производительность. Потому что одна платформа и один способ рендеринга/работы с памятью. На мобильных платформах тайловый рендеринг, куча подводных камней и ограничений. То что отлично работает на x86 (например discard и cutout шейдера листвы), может напрочь убить производительность на андроид.
В целом уже достаточно, что бы оценить что разработка и тестирование под андроид сложнее.
Вот это аналитика конечно, от человека далекого даже от скилбокса.
VR магазин стим со своим дектопным GPU это прям интересное решение.
Во-первых у окулуса нет ни возвратов, ни региональных цен.
Во-вторых, там меньше приложений.
В-третьих, это может дать сильный буст VR разработке под автономные устройства, потому что разработка под андроид сложнее, чем под x86. Тупо даже GPU профилировка и развертывание уже целая задача.
уж за столько лет можно было сделать нормальный движокНа основе чего ты сделал такой вывод? На рынке есть хоть один нормальный движок с реалтайм освещением и рендерингом миллиарда скринспейс треугольников? Unreal 5 релизнулся 2 года назад, имея киллер фичи, которых нет ни у одного существующего движка.
Для примера, обливион даже на 2-х видеокартах 45 фпс с 1280*1024, крайзиз на 2-х видяхах 40 фпс в Fullhd.
И ведь щас такое релизни, пиздец будет.
Вот реально, я только одну игру помню, с которой у меня не было траблов с производительностью на этом движке1) 5 версия вышла недавно, у разрабов толком нет опыта. А исправления в движке появляются не быстро.
2) сенуа 2, фортнайт, макака, у них нормальная в целом производительность.
3) игр на 5 версии вышло очень мало, что бы собирать какую-то релевантную статистику.
4) куча других игр с хуёвейшей производительностью, не на анриле. Такой нынче тренд.
5) помним что всегда новые ААА игры часто показывали хуёвейшую производительность. Например обливион или крайзис 1 в момент выхода безбожно лагали, что на radeon 9600(oblivion), что на nvidia 8800 (crysis)
Динамичный свет*Тени
Но вообще я думаю догадываюсь почему нет тени от фонарика.
1) версия анрила 5.1 очень нестабильная. Там много артефактов теней, гостинга и ограничений.
https://youtu.be/yTRUfe-zvnQ?t=13
2) рендеринг тени от фонарика требует перерисовки всех объектов, попавших в радиус фонарика (для z-буфера теней)
Возможно они оценили риски "не добавить тени фонарику на релизе ИЛИ пустить производительность по пизде, а вместе с ней ещё более хуёвые обзоры/продажи". Я бы тоже фонарик не включал на релизе тогда, возможно позже, с оптимизациями и новыми версиями движка (с новой фичей теней от сотен источников света).
Что этот пост-высер школьника (с тройкой по русскому) делает в разделе железо?
Надо сделать раздел "нытьё" и помещать туда 90% тупого контента.
Типо это показывает, что на UE5 можно просто быть соло додиком и сделать что-то такое.Соло додики считают что создать игру это тоже самое что расставить модельки скриптом на сцене.
Нанимаете менеджера Васю. Даете ему клиента, а он приходит через 5 минут "готово"И виноват конечно же не вася, нужно запретить тильду? Я правильно понял твой ход мыслей?
Пересчет нормалей?
Например вот. http://www.aclockworkberry.com/shader-derivative-functions/
Если в кратце, то любой GPU обрабатывает пиксели блоками 2 на 2 пикселя (что бы определять какой уровень mip выбрать). Это так же позволяет выяснить "насколько соседний пиксель ниже/выше", а нормаль на экране как раз это и показывает.
Вот простейший код для расчета нормалей из мировой позиции (можно в целом брать любую позицию)
float3 normal = normalize(cross(ddx(pos), ddy(pos) * _ProjectionParams.x)); //В unity _ProjectionParams.x показывает направление directx или opengl, и переворачивает нормаль автоматически.
Но у такого подхода есть минус, то что нормали не сглажены. Но при высокой плотности сетки это не сильно видно.