Comments 36
процессом визуализации в Doom Eternal заведует прямой рендеринг
Что за надмозг? Зачем переводить название технологии? Вы ж название игры не пишете как «Обречённый Извечный»? И Vulcan API не называете «Вулканический ПИП».
Правильно говорить «в Doom Eternal используется forward rendering pipeline».
Дальше вы вроде не страдаете этим и статья хорошая, так что плюс.
Прямой рендеринг является противоположностью отложенного рендеринга (deferred shading).
Давайте тогда уже всё называть своими именами:
С выходом созданной на engine id Tech 5 игры Rage мир познакомился с concept of реализации textrure под названием «megatextures». Этот метод применяется в Doom 2016 и на каждый frame он renders так называемую «virtual texture» с информацией о видимых texture. Виртуальная texture анализируется в следующем frame, чтобы определить какие texture следует подгрузить с диска. Однако у megatexture есть очевидная проблема: как только texture попадает поле зрения, подгружать ее уже поздновато, поэтому на первых нескольких frames после появления texture выглядит размыто. С выходом id Tech 7 developers отказались от такого метода.
Давайте тогда уже всё называть своими именами
А давайте. Так гуглить удобнее.
Зря человека заминусили. Я не поленился и составил список косяков перевода. Хоть я в графике уже 15 лет, но надмозговый перевод привычных терминов заставлял зависнуть буквально в каждом абзаце. Если не знакомы с терминологией, лучше оставляйте английский, ей-богу!
несвязанными ресурсами (bindless resources) -> надо было оставить bindless ресурсы. Дословный смысл — несвязываемые, а не несвязанные.
Z-иерархическая глубина -> иерархический z-буфер
mip-цепи -> пирамида мип-уровней
сетки -> меши (ну не говорят же "сетки")
Отбрасывание света -> шейдинг что ли?
кластерного отбрасываения света -> clustered shading (кластеризованный шейдинг, или просто кластерный)
Преграждение окружающего света -> ambient occlusion
Непрозрачный прямой проход -> прямой проход для непрозрачной геометрии
вместо привязки размытия, отражений -> вместо бинда размытия, отражений
неровности текстуры -> текстура неровностей
отражений экранного пространства -> отражения в экранном пространстве, или screen-space отражения
в прямом шейдере -> эээ… это что-то новое))
разрешение частиц освещения -> разрешение [текстуры] освещения частиц. Неверный порядок слов полностью поменял смысл фразы.
цель рендера -> рендер таргет
целевое воздействие -> это вообще шедевр. По всей видимости, имелось в виду автоэкспозиция (auto exposure)
при вычислении воздействия в ходе тональной компрессии -> при вычислении экспозиции в ходе тональной компрессии
И это ещё не всё. Ниже ещё приводили примеры.
Тем что это общепринятые "термины" (ну или сленг) в среде программистов графики. По сути англицизмы. Профессионалы вас не поймут (ну или заминусят), новички только запутаются.
Излишнее использование англицизмов появляется чаще всего из-за не достаточно хорошего знания языков и подрожания. К примеру, тот же меш не редко и просто сетью зовут, и используется та же структура не только для отрисовки. Это создаёт не правильное понимание уже в контексте иностранного языка. И в таких случаях не стоит использовать иностранные слова. Другое дело, когда иностранное слово значимо отличается по смыслу или его вообще нет языке.
Ну и ещё один аргумент, по мне так решающий. Хорошее название на русском донесёт смысл точнее и большему кол-ву людей, чем существует сейчас специалистов. Этот принцип в любом случае побеждает, т.к. является закономерностью развития языка. Так все старые слова, являющиеся локальной спецификой и не несущие нового смысла, умирают.
Не знаю как где, но геймдев.ру у нас вроде один, и все программисты графики так или иначе через него проходили, и "выучились" именно на тамошней терминологии.
Если уж цепляться за точность перевода, то shading — это отбрасывание тени (затенение), а не света. А использование слова "отбрасывание" вызывает путаницу, т.к. есть ещё culling — отбрасывание (исключение из рендера) невидимых поверхностей/объектов. В обсуждаемой статье весь раздел "Отбрасывание света и декалей" вызывает недоумение, т.к. не понятно, о чём идёт речь. Там смешался кластерный шейдинг и куллинг источников света, не видимых камере. Весь раздел надо раза три перечитать, чтобы врубиться. И я вроде не новичок в графике и знаю все эти техники! О, да, и давайте тогда рендер заменим на "представление", "показывание"?
Последнее вполне не плохо со словами отображение и отрисовка. Геймдев.ру и дтф вроде как самые большие, но на деле сколько там всего разработчиков из всего сонма? Совсем не большой %. Хотя, вообще играми, занимается на порядок больше людей, чем разбираются в графике на уровне достаточном, чтобы объяснить, что такое clustered shading, HDRP или ambient occlusion. Для большинства разработчиков это просто галочки в редакторе с этими названиями или то же в документации, а что они из себя представляют — «да кто его знает?».
Давайте тогда уже всё называть своими именами:Давайте. Потому что у меня ушло 2 минуты, чтобы понять, что «Преграждение окружающего света» — это всего лишь Ambient Occlusion.
И кстати, Vulkan API.
На правах пользователя хочу отметить, что в Doom Eternal начали в настройках отображать затрачиваемую видеопамять, и на моём ноутбуке с Nvidia 960m даже на самых минимальных настройках графики это значение превышало максимально возможную, которую приводили там же. И даже на этих самых минимальных настройках всё выглядело неприлично круто, только притормаживало на отдельных моментах. Прошлый Дум был менее требовательным и более плавным.
Причём, от разрешения затрачиваемая память практически не зависела (что для меня как для пользователя несколько контринтуитивно), однако с разрешением 1600x1200 на подключённом втором мониторе я не мог пройти битву с Кан Созидательницей, потому что игра просто вылетала. На родном экране и с разрешением 1280x720 всё нормально.
Но почему-то каждый раз когда смотрю на скрины геймплея DOOM, мне не верится, что это релиз 2020 года. Всегда хочется сказать, что это игра предыдущего или даже предпредыдущего поколения. Тот же самый эффект был с DOOM 3.
Почему так?
А что тогда для вас "игра текущего поколения", если уж сам ДУМ не нравится?
А это, кстати, хороший вопрос, хоть и субъективный.
Я согласен с предудыщим комментатором; для создания такого ощущения должно быть что-то по-настоящему свежее.
В своё время тот же Morrowind выглядел как игра нового поколения, например, можно вспомнить потрясающе красивую водичку. Разве в Думе есть что-то такое, что позволяло бы воспроизвести похожие ощущения?
(Мечты mode on.) В Doom 2016 меня больше всего в движке впечатлила разница при переходе от "обычного" уровня в секретный "классический" — движок становился в разы отзывчивее и плавнее. Оно конечно понятно почему, но если бы новый движок в Doom Eternal мог поддерживать похожую отзывчивость на минимальном графонии, думаю, игра вполне бы ощущалась как "текущего поколения" и даже больше.
Вот я хотел подчеркнуть, что да, фотографической картинкой не удивишь, но скоростью рендера удивить всё ещё можно. Даже на "некрутой" железке выдавать до 30 кадров в секунду когда всё горит и все в аду — это круто. И будь движок ещё чуточку шустрее, пусть ценой меньшей фото-реалистичности, для меня он казался бы более современным и прорывным.
В общем, нет смысла сравнивать с COD, где мир скорее похож на открытый. А у каждого плюса — свои минусы. Но сам удавшийся подход говорит о хорошем качестве не только кода, а всего процесса разработки.
Вообще это интересная тенденция, уменьшать количество спецрешений и сводить с универсальному рендеру. Картинка в целом становится лучше, но микро элементы становятся хуже, например волосы, ткани, кожа, водичка, полупрозрачности всех мастей.
С выходом созданной на движке id Tech 5 игры Rage мир познакомился с концептом реализации текстур под названием «мегатекстуры»
А разве мегатекстуры не применялись ещё аж в Enemy Territory: Quake Wars?
И я даже четверти статьи не просмотрел…
Как рендерится кадр DOOM Ethernal