Comments 94
В среднем в Думе2016 открытых пространств даже больше, пожалуй.
Жрет как не в себя.
Как раз таки использует видеокарту на полную, бегает даже на устаревших процессорах. А про повторение геймплея 20летней давности – это что-то про траву и её RGB?
Спасибо за перевод. Кластерный рендеринг — для меня что-то новое, надо будет попробовать. Жалко, что ничего нет по SVO (Sparse Voxel Octree). Хотя, я догадываюсь, почему — всю информацию, содержащуюся в статье, автор выцепил из вызовов API, а вот как оно устроено внутри — нужно декомпилировать код. Ну и больше всего удивило, что на интерфейс ушло почти 10% вызовов API, они ведь далеко не бесплатные (ну, по крайней мере в OpenGL, не знаю насчет Vulkan), интересно, почему незаоптимизировали. Хотя, наверное, по сравнению с рендерингом сцены — это пренебрежимо мало.
Потом и начинается штамповка других игр на этом современном движке idTech 6.
А то что дуум стал похож на своего кровного брата Quake, итак понятно, динамика игры слишком быстрая!
А так, реально порадовало — что наконец-то появились открытые пространства! :-)
Я так и не понял, какую проблему решает мегатекстура.
А с мегатекстурами теперь понятно почему дум такой прожорливый по части видеопамяти. :)
И мегатекстуры как раз не требуют много памяти, т.к. им нужен всего лишь буфер фиксированного размера, куда вовремя будут подгружаться нужные куски. Дум много видеопамяти ест, потому что это современная игра с очень качественными текстурами, PBR, кластерным рендером, качественными моделями и миллионом постэффектов. А от мегатекстур привычных там осталось уже не так много, это далеко не Rage. Все современные игры требуют много видеопамяти, потому что у консолей ее теперь очень много. Намного больше, чем у среднестатистического ПК. А значит можно развернуться разработчикам.
Не понятны 2 вещи:
1) Зачем нужны мега текстуры? В чём их плюс в данной случаи по сравнению с отдельными текстурами. А сейчас тем более уже есть Texture Array.
2) Для чего двигающиеся объекты, статические и оружие рисуются отдельно?
2) Для чего двигающиеся объекты, статические и оружие рисуются отдельно?
Чтобы использовать результат вычисления предыдущего кадра для отрисовки текущего
Но тут есть обратная сторона медали — это слишком большая работа и, можно сказать, она себя не окупает. В Rage технология явно была еще молодая и, я не помню конкретно почему, но именно из-за нее все освещение было статическим. Даже прямой свет от солнца там был статический, хотя сейчас в играх совмещение этих вещей уже обязательная программа
К Doom они существенно упростили и ограничили использование виртуальных текстур. Добавили привычный тайлинг и detail maps. Вроде как раз ради динамического освещения. Подозреваю, что и PBR повлиял, будучи более требовательным к количеству текстур на материал. К сожалению, полноценной презентации на эту тему я не видел.
По мне, оно того не стоит. Тем более если посмотреть на то, чего можно достичь с обычным текстурированием вкупе с фотограмметрией. Примеры, которые вспомнил, star wars battlefront, order 1886 (может они немного по-другому делали, но PBR текстуры они снимали именно с реальных материалов) и вот скоро выходящий forza horizon 3.
www.youtube.com/watch?v=YeX-20DAA0I
Мб задумка и хорошая — типа уникальный вид каждого уголка мира, но это экономически невыгодно и в итоге все равно все сводится к натянутым везде одинаковым текстурам + дополнительные артефакты.
В Rage технология явно была еще молодая и, я не помню конкретно почему, но именно из-за нее все освещение было статическим. Даже прямой свет от солнца там был статический, хотя сейчас в играх совмещение этих вещей уже обязательная программа
Что вы подразумеваете под статическим освещением, лайтмапы? Их в рэйдже нет 100% дебагером можно посмотреть, а динамическое освещение вообще никак не зависит от текстур если не считать нормал мапы. А DS(deferred shading) вообще практически снимает ограничения на количество лайтов.
Далее бред про PBR, эта технология расчитана на то что практически любой материал (за исключением тех у которых есть sss прозрачность или свечение) можно рассчитать при помощи Albedo, gloss (или roughness), metalic. Если альбедо ещё можно вытащить из фотографии то показатели gloss и metalic как ты вытащишь? А ведь именно они задают то как BRDF будет отрабатывать. Ну и как следствие вы должны понять почему вот это ваше предложение на фоне новых фактов является неверным
PBR повлиял, будучи более требовательным к количеству текстур на материал.
Надо будет какнибудь написать про свою реализацию PBR правда она не для игр а для рейтрейсера, но принципы одинаковые, для GL вьюпорта я тоже писал PBR шейдеры
Ну про освещение и PBR конечно не в тему. Но вот как раз ради уникальности — таки да. Смысл в том, чтобы уместить в видеопамяти только нужные mip уровни тысяч текстур вместо того, чтобы размещать в видеопамяти сотню текстур, но со всеми mip уровнями.
Но вот беда, что все эти теоретически разные текстуры как раз выглядят одинаково. Никто не оплатит художнику 10 лет труда, чтобы он рисовал везде разные решетки и травинки. Он просто натянет одну и туже текстуру то, там то тут. В итоге выглядит так же, но с дополнительными косяками.
И если уж авторы технологии не смогли сделать нормально, а больше никто эту технологию и не использует, то проблема возможно в самой технологии (ну не так просто быстро постоянно пересылать данные в видеопамять, вместо того, чтобы сразу загрузить все необходимое).
1. Уникальность текстур www.telegraph.co.uk/technology/video-games/8143874/Rage-developer-interview-John-Carmack.html techreport.com/news/9886/carmack-devises-globally-unique-texturing-scheme Цитаты автора технологии, надеюсь, найдете сами
2. Статическое освящение — я в курсе как и что это работает, но это больше все слухи и предположения. Раз там рендер не такой, то чего поделаешь. А пошло все от полной технической убогости Rage, который выглядел как пустая коробка с прибитыми текстурами и выкрученным на максимум амбиентом. Рядом с проектами, которые щеголяли тогда уже отраженным светом навроде lightmass и ему подобных, выглядело это жутко убого. Скайбокс отдельный позор был.
3. Опять же, я в курсе PBR, иначе бы вообще не заикался про него. Я говорил про Ready At Dawn и их 3д сканер материалов. Судя по всему, они получают с него нормали и альбедо, но вот о roughness ни слова. Вполне могли собирать из сканов, а может и руками рисовали. Почему-то эта часть опущена во всех их презентациях. Тем не менее, наиболее впечатляющие результаты сейчас имеют именно те, кто прибегает к фотограмметрии и точному сканированию реальных материалов.
Возможно Вы что-то другое имеете в виду? Потому что LOD не генерируются на лету, а все заранее сгенерированные mip-уровни хранятся в dds-текстуре (обычно)
Bloom и тональная компрессия радикально меняют эффект от игры, как и отражения. Чего далеко ходить — Alien Isolation (который идет на средних, без лагов, на HD5500).
Но вот чего не хватает… Doom 3 со своими убогими тенями и отсуствием глубины и кривыми отражениями заставлял срать кирпичами, ибо черное было по настоящему черным и звук там радикальный. У меня он стоит на внешнем харде и раз в год (c 2005 года) я его запускаю и до-прохожу сюжет. В далеком 2005м меня не хватило надолго фонарик-пистолет-дробовик, в итоге поставил мод фонарик+пистолет и фонарик+дробовок. Именно эта игра (на максимальной сложности и в больших наухниках) заставляла матерится, имея арсенал оружия.
К примеру упомянутый выше AI добивается такого эффекта в силу проработанного звука и… беспомощности героя (чужого не убить, оружия крохи..).
отщепятки
всё это произошло меньше чем за 16 миллисекунд.
Давайте, любители Java, .NET, Python, Javascript и прочего, расскажите мне ещё о смерти С и С++.
Всему свой инструментарий и не более того.
А компилирующиеся в нативный код языки никуда не уйдут, у них огромная кодовая база и сообщество. Может, Rust что-то сможет предложить, время покажет.
Так же стоит отметить, что Unity проект может собрать разными способами, в том числе, по сути, не используя компилятор mono, а используя свой, который делает из C# IL кода С++ (условно). И у самих работников Unity получалось добиться производительности ~ обычного С++ кода, при этом используя почти все возможности mono .Net 3.5, коих много больше чем у С++.
Чуточку о сборщике мусора. Они могут быть разными. Обычный подходит для сервера или офисной программы, а для приближенных к обработке данных в реалтайме или таковых же, его можно и подпилить, ну или наделить нужным функционалом. Что во всех игровых движках на C# постоянно и делают. Всё таки GC не основа С#, а скорее просто способ собрать программу. Кстати, JIT так же не обязателен, есть NGen.
PS: Гораздо чаще сталкиваюсь с тем, что нужно сделать проект быстрее, и производительность далеко не на 1 местах(тут разве что для айфонов исключение было). А этому больше помог бы C# 6 и .Net 4.5+, а они всё пилят С++ компилятор из IL. А ведь можно было бы и кривоту архитектуры Unity и её же ограничения легко поправить c async/await, что убрало бы множество костылей.
Зато вот Rust начинает прокладывать дорогу в GameDev!
По мне, так разница между поколениями сейчас не настолько большая, чтобы считать карты трёх-четырёхлетней давности «средними».
Моя GT645M на 1366x768 по производительности примерно как 750Ti в FullHD. И я не требую от игры 60 fps, я и на 30 согласен, лишь бы поиграть.
Но ладно, пусть моя видеокарта и процессор жуткй лоу-энд, я не спорю. Но вот почему-то я на этом жутком лоу-энде относительно комфортно играю подавляющее большинство современных AAA-игр, порой даже позволяя себе включить такие красоты, как SSAO и отражения. Так чего же игра на движке, чуть более старая версия которого у меня летала на высоких (последних два вольфенштейна, особенно Old Blood), не может нормально идти на самом минимуме?
P.S. Сейчас ещё скачаю демку новодума и посмотрю на графики загруженности процессора, аж интересно вспомнить, насколько он у меня лоу-эндовый :)
Что до комфортной игры. Современные игры это какие? Я вот сейчас посмотрел ролик ведьмака 3 на 640m, что, по сути, таже самая карта. 15 фпс даже на низких настройках. Это нормально, потому что это low-end решение по всем статьям и это современная игра. У нас тут наступило новое поколение консолей и требования игр довольно сильно изменились с тех пор. Не имеет смысла даже смотреть на игры, которые способны идти на прошлом поколении консолей. Это не показатель. Doom показатель, потому что это чертовски шустро бегающая игра на среднем железе на момент выхода этой игры. Опять же, 480 и 1060 это бюджетные средние решения, и они тянут эту игру в 4к на максах.
Современные игры — это, например, Alien: Isolation, где оптимизация была настолько хороша, что я даже включал DX11 глубину резкости вместо обычной гауссовой размывки, которая обычно отнимает 10-15 fps. Или вот прямо сейчас прохожу Far Cry 4, на средних 25-40 fps, но ровных. Могу ещё бету The Division вспомнить — шла на удивление хорошо, и выглядела тоже приятно. Mad Max и Shadow of Mordor — обе шли хорошо, 30-50 fps на средневысоких, а это игры с открытым миром. Новый Вор — тот шёл просто идеально, на полном максимуме (без SSAA и с тенями попроще) 50-60 fps почти везде. Да много их.
Могу вспомнить, что шло не очень: Dying Light — ну никак не получалось выжать из игры 30 fps на открытых локациях, хотя игралось всё равно относительно неплохо. XCOM 2 — тормозило жутко, без особых на то причин, хотя, если спустить до минимума, то до 45 fps поднять можно было. Rainbow Six: Siege бета — при никакой графике минимальных настроек 60 fps выжать никак не получалось, а при разрушениях всё тормозило просто адски. Unreal Tournament новый и почти всё на UE4 — что они сделали с божественным UE3, который летал на кофеварках, не пойму. AC: Unity и Black Flag — с первым понятно, он тормозил практически у всех, а вот что не так со вторым — неясно (хотя играть можно, если привыкнуть).
Так вот, даже то, что тормозило, в основном тормозило адекватно (Unity — великолепная детализация и открытый мир, Siege — разрушения, UE4 — шейдеры сильно некстгеновые, наверное?), а вот что не так с коридорным новодумом, который использует тот же движок, что и чуть ли не летавший у меня последний Wolfenstein: Old Blood, не пойму. Вот это и раздражает.
1) тормозит меньше — 20-30 fps на минимуме с родным разрешением экрана.
2) идёт ровно! Играть можно :)
3) починился Vulkan! Ранее дум с ним работал только в меню. Увы, быстродействия он не добавляет (в моём случае).
В целом, я очень рад, ведь очень хотел поиграть и теперь, наконец, могу :) Спасибо за то, что заставили меня проверить.
Насчёт процессора и его лоу-эндовости — игра его не особо-то и кушает, как и видеокарту, что не мешает ей выдавать 43-52 fps в меню: OGL, Vulkan и во время игрового процесса: OGL, Vulkan.
Wolfenstein: Old Blood сделан на предыдущей версии ID Tech, а Doom на новой. Не нужно проводить здесь параллели. С тех пор рендер очень сильно изменился. Как минимум, они перешли на PBR и вроде бы HDR (судя по интервью, только в думе появлось), что кардинально повлияло на графон, но и на прожорливость тоже.
Поэтому, опять же, не стоит мерить по своему медленному железу новые игры. Если какая-то игра не масштабируется до совсем low-end железа, то это не проблема игры или движка. Некоторые вещи просто невозможно ужать в такой формат, чтобы сохранить какое-то подобие изначального продукта. Для этого и есть минимальные требования. Ну и конечно есть просто не очень качественно сделанные проекты, это да. К слову, не сказал бы, что Unity сюда относится. Да, там конечно были проблемы, но там было чему тормозить, что им аж пришлось резать графон к следующей части.
>Wolfenstein: Old Blood сделан на предыдущей версии ID Tech, а Doom на новой
Это я узнал уже после того, как написал комментарий :)
>HDR (судя по интервью, только в думе появлось)
HDR существует ещё с третьих шейдеров. Как сейчас помню проблему первых решений, когда не могли совместить HDR и антиалиасинг. Это было с десяток лет назад. Или вы о каком-то другом HDR говорите?
Совсем лоу-энд — это всё, что ниже GT*40 по видеокартам и i3 2.2 ГГц по процессорам. Вот там совсем ни во что поиграть нормально нельзя. А то, что у меня — просто ниже среднего, учитывая разрешение экрана.
Про минимальные требования — их часто завышают и/или пишут для игры на FullHD. Я вполне себе играю многие современные игры на моей системе, которая почти везде ниже минимальных требований, о чём я уже писал. Но проблема дума не в этом. Он просто оптимизирован исключительно на три последних поколения видеокарт. Уже на 6xx серии нвидий начинаются проблемы, например — почти ничего не дающий в производительности (а донедавна и вообще работавший только в меню) Vulkan, а уж на поколениях постарше там всё ещё хуже, наверное. Это я не только по своему железу сужу, в сети полно отзывов.
Насчёт AC: Unity я, в принципе, ничего не возражаю, там таки есть, чему тормозить. У меня больше недоумения от Black Flag.
. И если не по слабому железу судить, то по какому же? На мощном железе и так тормозов не будет, на то оно и мощное
Совсем лоу-энд — это всё, что ниже GT*40 по видеокартам и i3 2.2 ГГц по процессорам
Я понимаю, что вам хочется, чтобы на вашем железе бегало все быстро. И естественно закрадываются мысли о недобросовестных разработчиками и понатыканных слипах для старых видеокарт, чтобы на них все тормозило. Но так не бывает. Идет прогресс. Опять же, вышли консоли, произошел очень сильный скачек в том, что разработчики понимают под минимальными и средними возможностями железа, а с ними очень сильно изменились современные движки. Да, бывают делают не честно, но в данном случае нет ничего удивительного, а ваше железо просто морально устарело. Идут на нем еле еле только те игры, которые не являются современными. Это закономерно. И дум нельзя никаким образом назвать прожорливой игрой. Все с точностью до наоборот.
Сейчас вот вышла пс4 про. В следующем году выйдет обновленный иксбокс. Это еще сильнее подтолкнет прогресс и требования игр. От этого никуда не деться.
И если не по слабому железу судить, то по какому же?
Мне сложно назвать ваше железо даже слабым.
HDR существует ещё с третьих шейдеров. Как сейчас помню проблему первых решений, когда не могли совместить HDR и антиалиасинг. Это было с десяток лет назад. Или вы о каком-то другом HDR говорите?
Существовал он еще раньше. Дело в том, что реализовывать его все равно разработчикам своими руками. В интервью они говорили, что это одна из новых фич движка. Да и HDR это слишком размытое понятие и реализовать его можно очень сильно по-разному. В каком виде он существовал до этого не знаю. Могло не быть вообще, а могло быть его жалкое подобие. Вариантов там достаточно.
почти ничего не дающий в производительности (а донедавна и вообще работавший только в меню) Vulkan
Вулкан и dx12 дают прирост в строго определенных случаях, это не silver bullet. Отрицательные отзывы здесь всегда исходят от того, что люди не понимают, как эти вещи работают и когда они дают прирост. Я это вижу уже многие годы. Люди лезут в эту тему, которая, вообще-то, предназначена для разработчиков, а не игроков, и делают выводы, не имея малейшего понимания темы. Это было при d10, это было при dx11. Это происходит сейчас. Во всех случаях игроки все еще не могут ничего понять, хотя информация подается ну уж в очень упрощенном виде в пресс релизах.
Все дело в том, что это сложные вещи и их невозможно просто взять и объяснить. И здесь нет такого, что было 30 фпс, включил вулкан, и стало 60 фпс. Как минимум, могу сказать, что наибольший эффект получает новое железо, потому что оно имеет более совершенную архитектуру. Новые API эту архитектуру умеют использовать. Конкретно, async compute. У нвидии на нее способным толком только паскаль чипы. Это лишь одна деталь, но очень важная. Опять же, здесь нет никаких заговоров. Все закономерно и понятно, но только для тех, кто немножко в этой теме.
И да, взгляните на мои скриншоты выше. Как вы обьясните менее 60 fps в меню, где ничего нету кроме пары текстур дыма и частиц, при загрузке видеокарты в 70-80%? Мне вот кажется, что некая недобросовестность всё же присутствует. Или даже заговор, кто знает? ;)
Мне сложно назвать ваше железо даже слабым.
Ну да, если иметь в распоряжении машину, способную на 60 fps в 1080p в любых играх — то да, с такой колокольни моя машина вообще ерунда :) А если ещё и зарплата в долларах…
А вот для вчерашнего студента, так и не нашёдшего работу, это вполне приличный агрегат, на котором можно поиграть во всё современное… можно было :(
Интересно, какого вы мнения будете о людях, которые на интелах встроенных играют :)
Про HDR — погуглил. Подозреваю, что это как-то имеет отношение к недавнему Dolby Vision, который последними (и только самыми
Про DX12 и Vulkan — вы так жирно намекаете, что я нуб и сужу о том, в чём ничего не смыслю, что мне аж смешно :) Тем временем, я по меньшей мере неплохо понимаю, что из себя представляют эти новые API. Всё, что в них нового — более низкоуровневый доступ к железу видюхи, а именно — перекладывание (почти всех) забот по переносу инфы от процессора к видеокарте на плечи (и головы) программистов игровых движков. Это приводит к более быстрой обработке draw calls, использовании ресурсов нескольких разных ГП и более прямому доступу к данным в видеопямяти, что открывает возможность различных оптимизаций, недоступных на старых API — это если разработчик сумеет это всё реализовать. Это я понимаю, как и понимаю, что часто далеко не всё можно оптимизировать даже на новых API. Но вот почти всегда можно снизить нагрузку на ЦП, например (оптимизация пресловутых draw calls же). И да, даже на видеокартах, которые не поддерживают этот вот async compute. Включая мою GT645M! Чёрт, да я перешёл на Win10 только из-за того, что в (моём любимом) эмуляторе GameCube/Wii под названием Dolphin реализовали DX12 бэкэнд, и он в некоторых играх выдаёт аж 50% прирост по сравнению с DX11! Это означает, что я наконец смог нормально поиграть во многие шедевры в фуллспиде без заиканий звука (которое неизбежно при падении fps ниже 60 для NTSC / 50 для PAL из-за жесткой синхронизации в железе консолей). Да, можно сказать, что эмулятор — довольно специфичный случай, но я не верю, что хотя бы некоторые методы, использованные разработчиками Dolphin, нельзя использовать в обычных играх.
И в этот момент с тебя снимают шлем виртуальной реальности и вытаскивают из ванны с питательным гелем:
— с пробуждением, как всё прошло? вы довольны прожитой жизнью?
— сколько я здесь провёл?
(если верить фильму «Начало», то соотношение течения времени сна и реала 1:12, т.е. 72 года вирта это 6 лет реала)
— около 6 лет, не беспокойтесь, вашему мозгу нужно пару дней на адаптацию и принятие этой реальности.
Вот как я хочу, почти фильм Начало, но более правдоподобно и это походу будет реально дорого.
Как рендерится кадр нового Doom