Оригинал материала: https://3dnews.ru./173210

К вопросу о подделке скриншотов

Обзор подготовлен сайтом НАП

Заговор разрастается. С каждым днём фирмы - производители компьютерного железа стараются отнять у бедных пользователей как можно больше их денег. Конкуренция развилась настолько, что теперь в ход идут самые топорные способы обмана пользователей.

Поговорим о качестве изображения.

Ничто так ни радует душу геймера, как красивый скриншот. Как приятно разглядывать картинки в разрешении 1280х1024 при 32-битной глубине цвета, где изображена поражающая плавностью линий сцена, с сотнями мегабайт текстур и эффектами, которых даже представить себе сложно. А тем более, когда это - кадр из игры, где, по словам производителей, минимальная скорость - 60 кадров в секунду (дальше просто кадров, или fps). И никому не придёт в голову, сколько 3D художники и моделлеры (не путать с модельерами) проработали в 3D Studio MAX, чтобы сделать эту сцену. Сколько времени 3DS MAX рендерил эту сцену, как потом в Adobe Photoshop на картинку были наложены поля и надписи, показывающие количество патронов и жизней у героя никогда не существующей игры. Никто и не подумает, как стыдно было представителям фирмы говорить, что это - кадры из технологической демки, где их продукт показывает не меньше 60 кадров в любом разрешении, и которую по причине недоделанности они никому не показывают.

И это относится не только к продуктам компьютерного железа, но и к играм. Вспомните первые скриншоты к играм Pray, Blood 2, Unreal. Все они были сделаны по этой технологии. Фирма Epic впоследствии призналась, что и разработчики Unreal грешили этим. Но, одно дело игра, а другое - высокотехнологический продукт, который должен будет спасти всё мировое сообщество от тормозов и глюков. Тот продукт, который в первые две недели разойдётся по цене, превышающей в два раза ту цену, которая установится через три-четыре месяца. Разумеется, ставки здесь выше и уровень обмана тоже. Мы рассмотрим именно этот случай. Здесь продуктом является видеочип (просто чип).

Итак, в отношении качества есть два основных направления обмана. Первый способ - улучшение качества скриншотов своего продукта. Второй способ - ухудшение качества скриншотов продукта конкурентов.

Рассмотрим каждую из этих методик подробнее.

Улучшение качества своих скриншотов

Эта методика наиболее продуктивна, так как если видеочип ещё не вышел, то проверить это будет очень сложно. Кроме того, можно выдавать скриншоты из тех игр и программ, которых никто никогда не видел, потому что их нет в природе. Можно также подделывать скриншоты уже имеющихся программ, при этом делая оговорку, что такое качество получается при установке патча, имеющегося в единственном числе на компьютере директора фирмы.
Как создать хороший скриншот?

Способ первый и самый лучший - использовать пакет 3D Studio MAX, или аналогичный. Для этого придётся набирать штат художников, которые будут создавать сцены для демонстрации вашего видеочипа. Сначала создаётся настоящая качественная сцена со всеми источниками освещения, текстурами, различными эффектами типа огня и дождя. Затем сцена оптимизируется (уменьшается количество полигонов) чтобы сделать сцену более угловатой и похожей на реальные игры. Уровень оптимизации зависит от амбиций создателей видеочипов. В слишком гладкую сцену вряд ли кто поверит, а сцена с малым количеством полигонов никого не удивит.

High Detail
Medium Detail
High Detail Medium Detail
Low Detail Very Low Detail
Low Detail Very Low Detail

После того, как оптимизация проведена, рендерится картинка - такая, какой она должна быть. Затем в программе Adobe Photoshop на неё накладываются различные фильтры, чтобы показать, допустим, трилинейную фильтрацию, дизеринг и всё такое. Здесь также при необходимости накладывается меню игрока, показывающее количество его жизней, патронов и всё, что нужно в таких случаях. Надо сказать, что эта стадия является очень важной и требует особого отношения. Ведь одно дело, что в вашей игре машина на трёх колёсах (это ведь всего лишь игра), а другое дело - если у вас плохо реализована трилинейная фильтрация. Так что те художники, которые доводят скриншот до ума должны обладать знаниями в 3D технологиях.

Когда общественность требует объяснить, чем будет новый видеочип отличаться от остальных в уже существующих реальных приложениях, ситуация меняется в корне.

Способ второй.

Quaker.3ds

Вы никогда не замечали, скриншоты на какие игры предпочитают выкладывать производители чипов? Это Quake / Quake 2 / Quake 3 и Unreal. Почему? Да потому, что модели и сцены из этих игр легко импортируются в 3D Studio MAX. В интернете легко найти плагины, программки и разные утилитки, которые переводят модели и целиком уровни с текстурами в нужный вам формат. А дальше всё идёт так, как рассмотрено выше.

Совсем другое дело, если надо быстро сделать скриншот из игры, которую долго или трудно вскрывать, и для которой нет таких плагинов. Что делать тогда?

Тут надо вспомнить истину, что софтверный рендеринг всегда лучше хардварного. Для этих целей берётся софтварная библиотека OpenGL или Direct3D, устанавливается в компьютер с видеокартой, имеющей очень качественное 2D (как, например, #9 Revolution IV) и мощным процессором (возможно не одним) и запускается игра. Здесь качество не зависит от видеокарты, а разрешение экрана определяется возможностями самой игры. Даже в самом слабом разрешении скорость игры составит 2-3 кадра в секунду (в лучшем случае), но для скриншота это не имеет значения. Поэтому выставляется наибольшее разрешение, включаются все эффекты и делаются скриншоты. Здесь качество будет самое лучшее, на которое способна игра.
Далее скриншоты загружаются снова в Adobe Photoshop и обрабатываются. Здесь получается нужная фильтрация, градиенты переходов цвета и другие эффекты. Готовая картинка сохраняется в чуть меньшем разрешении (для избавления от Aliasing-а) и - скриншот готов.

Ниже приведён скриншот из игры Quake 3 Arena, сделанный в софтварном режиме.

Q3 Software

Ну, вот это и есть основные способы создания скриншотов повышенного качества. После того, как они были созданы, представители компаний заявляют, что именно в этом месте было 60 fps, что это их чип так красиво всё прорисовывает и что дальше будет ещё лучше. А глупые вебмастеры перепечатывают скриншоты на свои страницы, становясь разносчиками этой заразы.

Ухудшение качества чужих скриншотов

Когда надо опустить в грязь своих конкурентов, когда нужно показать именно насколько новый чип будет качественнее остальных, когда нужно заставить людей поверить в то, что их железо не стоит и гроша выеденного, в ход идёт методика ухудшения качества.

Способ первый

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

Но существуют ситуации, когда надо повергнуть в грязь те видеочипы, которые обладают отменным качеством. Здесь первый способ уже не поможет.

Способ второй

Для этого лучше всего взять ту игру, которая ещё не вышла. До недавнего времени такой игрой была Quake 3 Arena. Именно здесь, когда бета - версии запускаются не на всех компьютерах, когда у каждого свои результаты лучше всего подойдёт данный способ. Этот способ аналогичен второму способу улучшения качества. С той лишь только разницей, что всё делается наоборот.
Для начала потребуется всё тот же софтверный рендерер OpenGL или Direct3D. Почему лучше ухудшать идеальную картинку, чем реальную? Здесь много причин, понять которые можно лишь поработав с Photoshop. Например, легче создать заново видимость фильтрации, чем изменять уже готовую.
Снятие скриншота производится аналогично, как и при улучшении качества. Идеальную картинку загружаем в Photoshop и начинаем делить на уровни. Здесь главное - наметить, где и что ухудшать.

Чего боятся все покупатели видеокарт? Чего боятся те, кто покупает себе дорогие мониторы? Для чего они покупают дорогие мониторы? Чтобы увеличить разрешение? Но зачем? Чтобы улучшить чёткость изображения.

Действительно, ни что так не отпугнёт покупателя, как смазанность изображения. И те, кто поиграли в Quake 3 Arena на RivaTNT, уже вряд ли будут со спокойной душой смотреть на маленькие текстурки на Voodoo3. Именно для того, чтобы уменьшить смазанность изображения изобретаются новые типы фильтрации. И смазанность - первое, что надо сделать, чтобы раз и навсегда избавиться от конкурентов. Но так как сейчас практически у всех видеокарт качественный RAMDAC, то смазывать всё изображение не стоит. Нужно наметить больные точки и бить туда.
Первая точка - это качественные большие текстуры. Смазав их, можно будет показать плохую реализацию компрессии, плохую поддержку больших текстур. Но смазывать все текстуры безмысленно. Нужно выбрать те, на которых это особо будет видно. Подойдут надписи, схемы на стенах, и текстуры, имеющие мелкую структуру.

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

Первую и вторую точку можно с лёгкостью поразить следующими фильтрами.
Blur, Blur More, Motion Blur - эти фильтры используются для создания любых размытостей. Очень мощные, дают хороший результат.
Pixelate->Fragment хорошо используется в паре с фильтрами Blur. Пригоден для имитации фильтрации.

Третья точка - дизеринг. Здесь можно пойти разными путями. Первый - готовую картинку перевести не в 16-битный цвет, а в 8-битный, или чуть выше. Для этого потребуется специальное программное обеспечение. Но можно изменять не всю картинку, а только особые её фрагменты. Такими фрагментами являются дым, туман, свет прожекторов и фонарей, а также плавные градиенты цвета.

Для поражения третьей точки выделяются лучи прожекторов, туман, дым. Выделеное копируется в отдельный файл, затем у этого файла понижается количество цветов. Image-> Mode->Indexed Color. Здесь выбирается нужное количество цветов, затем это изображение конвертируется обратно в RGB (Image->Mode->RGB Color) и ставится точно на место в исходном файле. Можно также применить некоторые фильтры.

Hedra Четвёртая точка - ошибка Z-буфферизации. Чтобы нарисовать выступающие полигоны, нужно обладать хорошим талантом художника и хорошо знать 3D. Неплохо для начала часок-другой посмотреть на эту самую ошибку.

Для четвёртой точки лучше создать в 3DS MAX на белом фоне какой-нибудь угловатый объект (типа звезды, или Hedra), наложить на него wireframe текстуру и отрендерить. Затем снова отрендерить, но в другом положении и окрашеном в чёрный цвет. Остальое - дело техники.

Пятая точка - нестыковка текстур. Этот пункт выполнить также сложно, но при умелом использовании фильтров можно показать и полосы между текстурами. Только вот лучше этого не делать, так как большинство современных видеокарт не имеют такой ошибки.

Тут, скорее всего, придётся каждую текстуру выделять ввиде отдельного уровня и накладывать различные эффекты. к одному и тому же результату можно прийти разными путями, так что здесь каждый волен выбирать, как это делать.

Шестая точка - алиасинг. Эффект лесенки. Бич всех видеокарт. За его поддержку геймеры выложат последние кровные денежки. Даже надпись о том, что он будет поддерживаться в драйверах через год или два уже греет душу.

Здесь тоже возможны варианты. Основные - изменять разрешения при низком качестве ресэмплинга, или использовать фильтр sharpen. Последний способ эффективен на Wireframed объектах.

Седьмая точка - проблемы со шрифтами. Многие карты имеют проблемы при выводе надписей в некоторых играх. Пропадающие и глючащие буквы - зрелище не из приятных.

Для этого хорошо бы использовать инструмент Rubber Stamp - чтобы на месте пропавших букв закрасить картинку. Здесь опять же каждый работает по-своему.

Ну вот, вроде бы, и разобрались, как ухудшить изображение.

Внизу приведён скриншот из Quake 3 Arena, сделаный вторым способом. Левая половина была изменена мной, правая - оставлена в первоначальном виде.

Quake 3 Arena modified

Квадратами выделены места, на которых явно видны изменения.

Как видно, без особых изменений качество ухудшено довольно сильно. Я не особо старался ухудшить качество, я просто хотел показать, что это возможно.

Имитация спецэффектов

Напоследок хочу сказать, что также просто можно имитировать различные спецэффекты, как лайтнинг-эффект, смазанное движение, отражения, фокусировка.

Вспомним про технологию T-Buffer от 3dfx. Там была очень интересная картиночка с изображением эффекта motion blur - размазывания объекта при движении. Вот она.

Motion Blur

А вот это - картинка того же самого эффекта, но только из реальной игры - Quake 3 Arena.

Quake 3 Motion Blur

Видна разница? В игре motion blur напоминает "хвост" от курсора мышки в Windows - всего лишь повторение прозрачных спрайтов. И назвать это motion blur как-то язык не поворачивается. Сразу появляется вопрос: где подделка? Даже если и та картинка и другая - поддлинники, то в первом случае, скорее всего, картинка статична (без движения) а во втором уже настоящая игра.

А вот как я представляю себе motion blur в Quake 3 Arena

Motion Blur
Motion Blur

Какая реальнее?

Обе картинки - подделки - сделаны в Adobe Photoshop. Но слева Motion Blur именно такой, каким должен быть, а справа - такой, каким представляет его нам 3dfx.

Ну и коль мы заговорили про T-Buffer, то вот эта картинка показывает эффект Focal Blur. Вся сцена, располагающаяся за телепортером смазана, сам телепортер в фокусе. Для чего этот эффект нужен - разговор отдельный, а вот подделать его можно.

Focus

Обратите внимание на fps в правом верхнем углу - подделка.

Выводы

На сегодняшний день подделать скриншоты не сложно. И это делают. Причём делают не столько производители железа, сколько производители софта. Но даже подлинная картинка не даёт представления ни о скорости, ни о лаге в игре.
Скриншотами можно любоваться, вешать их на обои в Windows, распечатывать и класть под стекло, раздавать знакомым, коллекционировать, но верить им нельзя. Особенно это относится к новым, ещё не вышедшим продуктам.

Каким скриншотам можно верить?

На сто процентов - никаким. Даже фотографии образцов видеоплат и другого железа могут быть подделкой. Технология подделки таких фотографий не очень сложна. Так что увидев видеоплату, на которой стоят одновременно Voodoo2 и RivaTNT, сохраните её как образец творчества.

Что касается качества изображения, то достоверными можно считать скриншоты, сделанные (а не переписанные) независимыми обозревателями и тестерами железа. При этом нужно обратить внимание на настройки драйверов при снятии скриншота.

P.S. Никогда не ругайте скриншоты - ведь это плод работы многих людей...



Оригинал материала: https://3dnews.ru./173210