Ssr в играх что это: Screen Space Local Reflections в AAA-играх / Хабр

Escape From Tarkov настройки графики 2020

Популярность Escape From Tarkov растет благодаря жесткому хардкорному геймплею и реалистичной механике оружия. Успех в игре зависит от удачи и навыков. Однако, плохая оптимизация игры может сильно повлиять на ваш игровой процесс. Низкое значение и просадки в fps, гарантированно уменьшат ваши шансы против игроков того же уровня.

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


Внеигровые настройки Escape From Tarkov

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


Обновление драйверов

Escape From Tarkov настройки графики 2020

Откройте программное обеспечение AMD Radeon (для графических процессоров AMD) или NVIDIA GeForce Experience (для графических процессоров NVIDIA) и проверьте наличие обновлений. Если доступно обновление, загрузите и установите его.


Настройки совместимости

Данные настройки индивидуальны, но обязательно протестируйте их.

  • Перейдите туда, куда вы установили Escape From Tarkov.
  • Щелкните правой кнопкой мыши BsgLauncher или EscapeFromTarkov.exe  Свойства -> Совместимость -> Изменить параметры высокого DPI
  • В разделе установите флажки « Переопределить поведение масштабирования с высоким разрешением » и « Отключить полноэкранные оптимизации ». У некоторых из вас могут не быть этих настроек, просто выберите на те, что у вас есть.
  • Нажмите Применить.

Escape From Tarkov настройки графики 2020

Escape From Tarkov настройки графики 2020

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


Игровые настройки Escape From Tarkov


Auto Ram Cleaner

Auto Ram Cleaner

Автоочистка оперативной памяти. Самое первое, что вы должны сделать перед настройкой графики, это включить Auto Ram Cleaner в настройках игры. Он останавливает использование вашей ОЗУ более чем на 70% и очищает все кэшированные игровые файлы (в ОЗУ), которые больше не используются и со временем снижают вашу производительность вызывая утечку. Чем меньше оперативной памяти у вашего компьютера, тем важнее этот параметр. Для тех у кого более 16+ ГБ ОЗУ, данный параметр бесполезен.


Use only the physical cores

Escape From Tarkov настройки графики 2020

Использовать только физические ядра: включаем.


FOV

Поле зрения, горизонтальный угол обзора игры. Чем выше FOV, тем больше угол обзора слева и справа. Мы бы рекомендовали установить

75 (макс.), поле зрения pro геймеров.

Что касается производительности, FOV также оказывает влияние. Расширение вашего обзора заставит игру отображать больше объектов. В результате, идет большее потребление ресурсов вашего компьютера. Кроме того, наличие широкого поля зрения может затруднить фокусировку на  — на перекрестии. По этому FOV, настройка индивидуальная.


Графические настройки Escape From Tarkov

Самый простой способ поднять FPS — начать с игровых настроек. Настройки графики в игре будут иметь наибольшее влияние на производительность во время игры.


Разрешение экрана

Разрешение экрана

В зависимости от вашей видеокарты и монитора, разрешение должно быть идентичным. По данным Steam, более половины игроков для ПК используют 1920 × 1080.


Режим экрана

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


V-Sync ( Вертикальная синхронизация )

Рекомендуется Отключить. Основной источник заиканий и разрывов экрана.

Когда VSync включен. Заикание происходит, когда частота кадров падает ниже предела частоты кадров VSync, который обычно составляет 60 кадров в секунду, что соответствует частоте обновления 60 Гц для большинства мониторов и экранов. Когда частота кадров падает ниже предела, VSync блокирует частоту кадров до ближайшего уровня, например, 45 или 30 кадров в секунду. По мере улучшения производительности частота кадров возвращается к 60.

В играх, это резкое изменение частоты кадров может происходить несколько раз в секунду, что приводит к явно заметному заиканию при скачке частоты кадров.

Когда VSync отключен, в игре могут появиться разрывы экрана, когда частота кадров превышает частоту обновления дисплея (например, 120 кадров в секунду на дисплее с частотой 60 Гц). Это вызывает горизонтальные разрывы по всему экрану всякий раз, когда камера или точка обзора движутся горизонтально или вертикально.

Когда VSync отключен

Для пользователей видеокарт GeForce GTX, рекомендуется использовать Adaptive VSync. Через панель управления NVIDIA, включите опцию Adaptive VSync.

Вертикальная синхронизация


Качество текстур — среднее / высокое

Escape From Tarkov настройки графики 2020

Качество текстур — Рекомендуется устанавливать высокое значение, если у вас относительно высокая память видеокарты для лучшей производительности. Что касается FPS, эти настройки оказывают слабое влияние, но могут повлиять на заикание или длительную загрузку, если слабая видеокарта.


Качество теней — среднее / высокое

В отличии от других игр в Escape From Tarkov, понижение этого параметра окажет небольшое влияние на производительность. Установите средний или высокий для повышения FPS. Некоторые игроки предпочитают не использовать тени, так как им легче видеть очертания персонажей, однако тени на высоких значениях заставляет игру использовать ваш графический процессор, а на низких однопоточный процессор.


Детализация объектов — 2

Установите на 2 для лучшей производительности. Этот параметр будет влиять на внешний вид игры, но даст вам сильное повышение FPS.


eftsettings 3

Общая видимость от 1000-2000

Теперь, когда имеются большие карты в Escape From Tarkov, мы рекомендуем установить это значение на 2000. Хотя 1000, более чем достаточно для небольших карт.


Видимость теней от 40-100

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


Сглаживание — TAA

Наряду с разрешением, качество сглаживания — это тот параметр, который больше всего влияет на визуальное изображение, что также даст вам больше FPS.

Рекомендуемая настройка TAA для стабильной частоты кадров. Это даст слегка острые края в игре или «неровный» и четкий вид, сглаживание поможет вам сгладить графику, но может стоить производительности при высокой частоте дискретизации.


Resampling — 1

Установите это значение в 1x — выкл., даст небольшой прирост fps.

HBAO — Выкл.

HBAO или Horizon-Based Ambient Occlusion. Делает игру более реалистичной, но съедает ресурсы, поэтому выключите ее.

SSR — выкл.

Отражения. Выключаем.


Анизотропная фильтрация фильтрация — выкл.

Анизотропная фильтрация влияет на то, как четко текстуры выглядят на расстоянии, особенно текстуры, которые видны под узким углом. Имеет слабое влияние на частоту кадров. Включаем, если хотите повысить обнаружение противников на расстоянии.


Резкость 1.0 — 1.4

Резкость установлена ​​на 1,0 по умолчанию. Тем не менее, это индивидуальный выбор в зависимости от того, как вы хотите, чтобы ваша игра выглядела. При значении 1.1 или 1.4, немного легче видеть больше деталей.


Escape From Tarkov настройки графики 2020

Лимит кадров в игре

Установите обе эти настройки на максимальное количество FPS, которое составляет 50 для лобби и 120 в игре.

Z-Blur — откл.

Отключение дает четкое изображение при быстрых поворотах.

Хроматические аберрации — откл.

Добавляет зернистость, отключение дает четкость изображения.

Шум — откл.

Минимизированный эффект зернистости. Это затрудняет обзор и реакцию.

Тени Травы

Отключите тени от травы . Облегчают скрытность ваших противников в темноте.


 

Настройки графики в играх: на что они влияют?

©

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

 

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

http://itc.ua/files/pics/pp-01s.jpghttp://itc.ua/files/pics/pp-01s.jpg http://itc.ua/files/pics/pp-02s.jpg

трилинейная

анизотропная

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

Учитывая объем обрабатываемых данных (а в сцене может быть множество 32-битовых текстур высокого разрешения), анизотропная фильтрация особенно требовательна к пропускной способности памяти. Уменьшить трафик можно в первую очередь за счет компрессии текстур, которая сейчас применяется повсеместно. Ранее, когда она практиковалась не так часто, а пропуская способность видеопамяти была гораздо ниже, анизотропная фильтрация ощутимо снижала количество кадров. На современных же видеокартах она почти не влияет на fps.

Анизотропная фильтрация имеет лишь одну настройку коэффициент фильтрации (2x, 4x, 8x, 16x). Чем он выше, тем четче и естественнее выглядят текстуры. Обычно при высоком значении небольшие артефакты заметны лишь на самых удаленных пикселах наклоненных текстур. Значений 4x и 8x, как правило, вполне достаточно для избавления от львиной доли визуальных искажений. Интересно, что при переходе от 8x к 16x снижение производительности будет довольно слабым даже в теории, поскольку дополнительная обработка понадобится лишь для малого числа ранее не фильтрованных пикселов.

Шейдеры
Шейдеры это небольшие программы, которые могут производить определенные манипуляции с 3D-сценой, например, изменять освещенность, накладывать текстуру, добавлять постобработку и другие эффекты.

Шейдеры делятся на три типа: вершинные (Vertex Shader) оперируют координатами, геометрические (Geometry Shader) могут обрабатывать не только отдельные вершины, но и целые геометрические фигуры, состоящие максимум из 6 вершин, пиксельные (Pixel Shader) работают с отдельными пикселами и их параметрами.

Шейдеры в основном применяются для создания новых эффектов. Без них набор операций, которые разработчики могли бы использовать в играх, весьма ограничен. Иными словами, добавление шейдеров позволило получать новые эффекты, по умолчанию не заложенные в видеокарте.

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

Parallax mapping
Parallax mapping это модифицированная версия известной техники bumpmapping, используемой для придания текстурам рельефности. Parallax mapping не создает 3D-объектов в обычном понимании этого слова. Например, пол или стена в игровой сцене будут выглядеть шероховатыми, оставаясь на самом деле абсолютно плоскими. Эффект рельефности здесь достигается лишь за счет манипуляций с текстурами.

http://itc.ua/files/pics/pp-03v.jpghttp://itc.ua/files/pics/pp-03v.jpg

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

Parallax mapping существенно экономит вычислительные ресурсы компьютера, поскольку при использовании объектов-аналогов со столь же детальной 3D-структурой производительности видеоадаптеров не хватало бы для просчета сцен в режиме реального времени.

Эффект чаще всего применяется для каменных мостовых, стен, кирпичей и плитки.

Anti-Aliasing
До появления DirectX 8 сглаживание в играх осуществлялось методом SuperSampling Anti-Aliasing (SSAA), известным также как Full-Scene Anti-Aliasing (FSAA). Его применение приводило к значительному снижению быстродействия, поэтому с выходом DX8 от него тут же отказались и заменили на Multisample Аnti-Аliasing (MSAA). Несмотря на то что данный способ давал худшие результаты, он был гораздо производительнее своего предшественника. С тех пор появились и более продвинутые алгоритмы, например CSAA.

http://itc.ua/files/pics/pp-04s.jpghttp://itc.ua/files/pics/pp-04s.jpg http://itc.ua/files/pics/pp-05s.jpghttp://itc.ua/files/pics/pp-05s.jpg

AA off AA on

Учитывая, что за последние несколько лет быстродействие видеокарт заметно увеличилось, как AMD, так и NVIDIA вновь вернули в свои ускорители поддержку технологии SSAA. Тем не менее использовать ее даже сейчас в современных играх не получится, поскольку количество кадров/с будет очень низким. SSAA окажется эффективной лишь в проектах предыдущих лет, либо в нынешних, но со скромными настройками других графических параметров. AMD реализовала поддержку SSAA только для DX9-игр, а вот в NVIDIA SSAA функционирует также в режимах DX10 и DX11.

Принцип работы сглаживания очень прост. До вывода кадра на экран определенная информация рассчитывается не в родном разрешении, а увеличенном и кратном двум. Затем результат уменьшают до требуемых размеров, и тогда «лесенка» по краям объекта становится не такой заметной. Чем выше исходное изображение и коэффициент сглаживания (2x, 4x, 8x, 16x, 32x), тем меньше ступенек будет на моделях. MSAA в отличие от FSAA сглаживает лишь края объектов, что значительно экономит ресурсы видеокарты, однако такая техника может оставлять артефакты внутри полигонов.

Раньше Anti-Aliasing всегда существенно снижал fps в играх, однако теперь влияет на количество кадров незначительно, а иногда и вовсе никак не cказывается.

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

http://itc.ua/files/pics/pp-07s.jpghttp://itc.ua/files/pics/pp-07s.jpg http://itc.ua/files/pics/pp-07s.jpghttp://itc.ua/files/pics/pp-07s.jpg

На первый взгляд, тесселяцию можно спутать с Parallax mapping. Хотя это совершенно разные эффекты, поскольку тесселяция реально изменяет геометрическую форму предмета, а не просто симулирует рельефность. Помимо этого, ее можно применять практически для любых объектов, в то время как использование Parallax mapping сильно ограничено.

Технология тесселяции известна в кинематографе еще с 80-х годов, однако в играх она стала поддерживаться лишь недавно, а точнее после того, как графические ускорители наконец достигли необходимого уровня производительности, при котором она может выполняться в режиме реального времени.

Чтобы игра могла использовать тесселяцию, ей требуется видеокарта с поддержкой DirectX 11.

Вертикальная синхронизация

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

http://itc.ua/files/pics/pp-08s.jpghttp://itc.ua/files/pics/pp-08s.jpg

Если частота обновления монитора составляет 60 Гц, и видеокарта успевает просчитывать 3D-сцену как минимум с таким же количеством кадров, то каждое обновление монитора будет отображать новый кадр. Другими словами, с интервалом 16,66 мс пользователь будет видеть полное обновление игровой сцены на экране.

Следует понимать, что при включенной вертикальной синхронизации fps в игре не может превышать частоту вертикальной развертки монитора. Если же число кадров ниже этого значения (в нашем случае меньше, чем 60 Гц), то во избежание потерь производительности необходимо активировать тройную буферизацию, при которой кадры просчитываются заранее и хранятся в трех раздельных буферах, что позволяет чаще отправлять их на экран.

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

Post-processing
Это общее название всех эффектов, которые накладываются на уже готовый кадр полностью просчитанной 3D-сцены (иными словами, на двухмерное изображение) для улучшения качества финальной картинки. Постпроцессинг использует пиксельные шейдеры, и к нему прибегают в тех случаях, когда для дополнительных эффектов требуется полная информация обо всей сцене. Изолированно к отдельным 3D-объектам такие приемы не могут быть применены без появления в кадре артефактов.

High dynamic range (HDR)
Эффект, часто используемый в игровых сценах с контрастным освещением. Если одна область экрана является очень яркой, а другая, наоборот, затемненной, многие детали в каждой из них теряются, и они выглядят монотонными. HDR добавляет больше градаций в кадр и позволяет детализировать сцену. Для его применения обычно приходится работать с более широким диапазоном оттенков, чем может обеспечить стандартная 24-битовая точность. Предварительные просчеты происходят в повышенной точности (64 или 96 бит), и лишь на финальной стадии изображение подгоняется под 24 бита.

http://itc.ua/files/pics/pp-09s.jpghttp://itc.ua/files/pics/pp-09s.jpg http://itc.ua/files/pics/pp-10s.jpghttp://itc.ua/files/pics/pp-10s.jpg

HDR часто применяется для реализации эффекта приспособления зрения, когда герой в играх выходит из темного туннеля на хорошо освещенную поверхность.

Bloom
Bloom нередко применяется совместно с HDR, а еще у него есть довольно близкий родственник Glow, именно поэтому эти три техники часто путают.

http://itc.ua/files/pics/pp-11.jpghttp://itc.ua/files/pics/pp-11.jpg

Bloom симулирует эффект, который можно наблюдать при съемке очень ярких сцен обычными камерами. На полученном изображении кажется, что интенсивный свет занимает больше объема, чем должен, и «залазит» на объекты, хотя и находится позади них. При использовании Bloom на границах предметов могут появляться дополнительные артефакты в виде цветных линий.

Film Grain
Зернистость артефакт, возникающий в аналоговом ТВ при плохом сигнале, на старых магнитных видеокассетах или фотографиях (в частности, цифровых изображениях, сделанных при недостаточном освещении). Игроки часто отключают данный эффект, поскольку он в определенной мере портит картинку, а не улучшает ее. Чтобы понять это, можно запустить Mass Effect в каждом из режимов. В некоторых «ужастиках», например Silent Hill, шум на экране, наоборот, добавляет атмосферности.

Motion Blur
Motion Blur эффект смазывания изображения при быстром перемещении камеры. Может быть удачно применен, когда сцене следует придать больше динамики и скорости, поэтому особенно востребован в гоночных играх. В шутерах же использование размытия не всегда воспринимается однозначно. Правильное применение Motion Blur способно добавить кинематографичности в происходящее на экране.

http://itc.ua/files/pics/pp-12.jpghttp://itc.ua/files/pics/pp-12.jpg http://itc.ua/files/pics/pp-13.jpghttp://itc.ua/files/pics/pp-13.jpg

Эффект также поможет при необходимости завуалировать низкую частоту смены кадров и добавить плавности в игровой процесс.

SSAO
Ambient occlusion техника, применяемая для придания сцене фотореалистичности за счет создания более правдоподобного освещения находящихся в ней объектов, при котором учитывается наличие поблизости других предметов со своими характеристиками поглощения и отражения света.

Screen Space Ambient Occlusion является модифицированной версией Ambient Occlusion и тоже имитирует непрямое освещение и затенение. Появление SSAO было обусловлено тем, что при современном уровне быстродействия GPU Ambient Occlusion не мог использоваться для просчета сцен в режиме реального времени. За повышенную производительность в SSAO приходится расплачиваться более низким качеством, однако даже его хватает для улучшения реалистичности картинки.

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

Cel shading
Игры с эффектом Cel shading начали делать с 2000 г., причем в первую очередь они появились на консолях. На ПК по-настоящему популярной данная техника стала лишь через пару лет. С помощью Cel shading каждый кадр практически превращается в рисунок, сделанный от руки, или фрагмент из  мультика.

http://itc.ua/files/pics/pp-14.jpghttp://itc.ua/files/pics/pp-14.jpg

В похожем стиле создают комиксы, поэтому прием часто используют именно в играх, имеющих к ним отношение. Из последних известных релизов можно назвать шутер Borderlands, где Cel shading заметен невооруженным глазом.

Особенностями технологии является применение ограниченного набора цветов, а также отсутствие плавных градиентов. Название эффекта происходит от слова Cel (Celluloid), т. е. прозрачного материала (пленки), на котором рисуют анимационные фильмы.

Depth of field
Глубина резкости это расстояние между ближней и дальней границей пространства, в пределах которого все объекты будут в фокусе, в то время как остальная сцена окажется размытой.

http://itc.ua/files/pics/pp-15.jpghttp://itc.ua/files/pics/pp-15.jpg

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

Лицезреть эффект глубины резкости в гипертрофированной форме можно на некоторых фотографиях. Именно такую степень размытия часто и пытаются симулировать в 3D-сценах.

В играх с использованием Depth of field геймер обычно сильнее ощущает эффект присутствия. Например, заглядывая куда-то через траву или кусты, он видит в фокусе лишь небольшие фрагменты сцены, что создает иллюзию присутствия.

Влияние на производительность

Чтобы выяснить, как включение тех или иных опций сказывается на производительности, мы воспользовались игровым бенчмарком Heaven DX11 Benchmark 2.5. Все тесты проводились на системе Intel Core2 Duo e6300, GeForce GTX460 в разрешении 1280Ч800 точек (за исключением вертикальной синхронизации, где разрешение составляло 1680Ч1050).

Как уже упоминалось, анизотропная фильтрация практически не влияет на количество кадров. Разница между отключенной анизотропией и 16x составляет всего лишь 2 кадра, поэтому рекомендуем ее всегда ставить на максимум.

Сглаживание в Heaven Benchmark снизило fps существеннее, чем мы того ожидали, особенно в самом тяжелом режиме 8x. Тем не менее, поскольку для ощутимого улучшения картинки достаточно и 2x, советуем выбирать именно такой вариант, если на более высоких играть некомфортно.

Тесселяция в отличие от предыдущих параметров может принимать произвольное значение в каждой отдельной игре. В Heaven Benchmark картинка без нее существенно ухудшается, а на максимальном уровне, наоборот, становится немного нереалистичной. Поэтому следует устанавливать промежуточные значения moderate или normal.

Для вертикальной синхронизации было выбрано более высокое разрешение, чтобы fps не ограничивался вертикальной частотой развертки экрана. Как и предполагалось, количество кадров на протяжении почти всего теста при включенной синхронизации держалось четко на отметке 20 или 30 кадров/с. Это связано с тем, что они выводятся одновременно с обновлением экрана, и при частоте развертки 60 Гц это удается сделать не с каждым импульсом, а лишь с каждым вторым (60/2 = 30 кадров/с) или третьим (60/3 = 20 кадров/с). При отключении V-Sync число кадров увеличилось, однако на экране появились характерные артефакты. Тройная буферизация не оказала никакого положительного эффекта на плавность сцены. Возможно, это связано с тем, что в настройках драйвера видеокарты нет опции принудительного отключения буферизации, а обычное деактивирование игнорируется бенчмарком, и он все равно использует эту функцию.

Если бы Heaven Benchmark был игрой, то на максимальных настройках (1280Ч800; AA 8x; AF 16x; Tessellation Extreme) в нее было бы некомфортно играть, поскольку 24 кадров для этого явно недостаточно. С минимальной потерей качества (1280Ч800; AA 2x; AF 16x, Tessellation Normal) можно добиться более приемлемого показателя в 45 кадров/с.

http://itc.ua/files/pics/pp-16.jpghttp://itc.ua/files/pics/pp-16.jpg

Источник

Типы сглаживания и их принудительное включение в играх | Видеоигры | Блог

Любой хотя бы раз видел в игре настройку «Сглаживание», оно же Antialiasing. Это функция, позволяющая устранить эффект лесенки на краях объектов и сделать изображение менее пилообразным. Производители видеокарт создали немало различных методик, общее количество которых исчисляется десятками. Многие из них устарели и забыты, а некоторые используются до сих пор.

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

Типы сглаживания

В качестве образца будет использоваться игра Track Mania вкупе с Full HD разрешением монитора. Видеокарта GTX 1070. Первый скриншот «чистый», без сглаживания. Просматривать рекомендуется в полном размере.

FXAA (Fast approXimate Anti-Aliasing)

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

Имеет практически идентичный, но малоизвестный аналог MLAA, который работает за счет процессора, а не видеокарты. Сглаживание MLAA доступно в крайне ограниченном количестве игр, поэтому рассматриваться не будет.

SMAA (Subpixel Morphological Anti-Aliasing)

Продвинутое пост-сглаживание, основанное на FXAA и MLAA. Дает ощутимо лучший результат, но потребляет чуть больше ресурсов видеокарты. Имеет четыре степени качества.

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

MSAA (Multi-Sample Anti-Aliasing)

Метод основан на выборочном масштабировании объектов в более высоком разрешении. Текстуры при этом не затрагиваются. Добавляет детализацию на контурах, уменьшает рябь картинки в движении. На современных видеокартах практически не затрагивает производительность. Распространенный и предпочтительный тип сглаживания.

Когда в играх вы выбираете степень сглаживания x2, х4 или x8 подразумевается именно MSAA.

SSAA (Super-Sample Anti-Aliasing)

Самое лучшее, самое правильное и самое требовательное к производительности сглаживание. В отличие от MSAA происходит масштабирование всех возможных объектов, а также шейдеров и текстур.

При выборе настройки SSAA x 4 объект увеличивается в четыре раза с каждой стороны (вертикаль и горизонталь), что дает внутреннее разрешение 7680×4320 от изначального 1920×1080.

Очень хорошо сглаживает лесенку пикселей, улучшает внешний вид текстур. Объекты вдали приобретают реальную четкость. Рябь в играх полностью исчезает, что делает картинку реалистичной и более приятной для глаз. В некоторых играх регулируется процентным соотношением в виде ползунка (может называться «масштабирование разрешения»).

Такое сглаживание лучше использовать в старых играх, так как в современных будут просадки частоты кадров даже на самых мощных видеокартах.

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

Иногда в настройках попадается SSAA x 0.5. При его использовании игровое разрешение уменьшается вчетверо (до 960×540), что ухудшает качество картинки, но дает прирост производительности.

DSR (Dynamic Super Resolution)

Технология от NVIDIA, позволяющая использовать разрешения, превышающие возможности вашего монитора. Максимальное значение x 4, что соответствует формату 2160p. По качеству немного превосходит SSAA x2.

И если SSAA работает с внутренним разрешением игры, то DSR запускает игру в настоящем 4К, которое затем даунскелится до родного разрешения монитора. Это дает возможность снимать видео и делать скриншоты в 3840×2160 на мониторе с меньшим разрешением.

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

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

У AMD есть свой аналог, названный VSR (Virtual Super Resolution).

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

Комбинации и ответвления

Производители частенько любят хитрить со сглаживанием, комбинируя методы. В качестве примера TXAA: на самом деле это всего лишь одновременная работа MSAA и FXAA низкого качества. Адаптивным сглаживанием называют SSAA + MSAA. Многокадровое сглаживание MFAA это просто надстройка для MSAA, призванная улучшить качество (через панель управление не заработала ни в одной игре).

Еще один известный тип сглаживания это CSAA, по сути тот же MSAA, но потребляющий чуть меньше ресурсов. Считается устаревшим и из новых видеокарт удален. Попытка принудительной активации приводит к вылету драйвера.

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

Кстати, DSR и SSAA можно использовать одновременно. Track Mania в этом случае запускается в разрешении 16К (15360×8640), при 26 кадрах в секунду.

В итоге игра 2006 года почти «поставила на колени» GTX 1070. Ну а про игры типа Metro Redux и говорить нечего, всего 1-3 фпс.

Использование

FXAA

Для активации нам понадобится программа FXAA Tool.

В главном окне программы убираем галочку Pre Sharpen. Далее нажимаем кнопку «Add», программа попросит нас ввести имя профиля (можете написать любое), а затем необходимо указать путь к папке с игрой.

Переходим во вкладку «AntiAliasing». Двигая ползунок влево и вправо, мы изменяем баланс между производительностью и качеством. После того, как необходимый уровень выбран, нажимаем кнопку «Save». Теперь при каждом запуске игры сглаживание будет включаться автоматически. Чтобы его убрать достаточно в главном меню нажать кнопку «Remove».

SMAA

Для его использования необходимо скачать программу SweetFX.

Первым делом нажимаем кнопку Add new game и указываем путь на файл запуска игры (.exe).

В списке игр появится строчка с именем файла, щелкаем по ней один раз.

Нажимаем кнопку Add SweetFX.

Заходим в настройки SweetFX Injector settingsи выбираем желаемый уровень качества.

Лучше всего поставить SMAA_PRESET_HIGH. Нажимаем Save settings, а затем в главном окне Save new config.

Как и в случае с FXAA Tool при каждом запуске игры сглаживание будет включаться автоматически. Чтобы его убрать необходимо в главном меню нажать кнопку “Remove SweetFX”.

MSAA \ SSAA \ VSR (Radeon)

Новая панель управления от AMD максимально упрощена. Чтобы активировать VSR, нужно лишь нажать соответствующую кнопку в разделе «Дисплей». После этого в играх появятся новые доступные разрешения.

Активация MSAA и SSAA также не доставит никаких проблем. Переходим во вкладку «Игры» и изменяем несколько настроек.

  1. Режим сглаживания — переопределить настройки приложения.
  2. Ставим желаемый уровень сглаживания (например 4X).
  3. Выбираем метод сглаживания.

Избыточная выборка — это SSAA, а множественная выборка — это MSAA.

MSAA \ SSAA \ DSR (GeForce)

Для включения DSR необходимо перейти в раздел «Управление параметрами 3D» и выбрать строчку «DSR-Степень».

Появится небольшое окно, в котором вы сможете выбрать, во сколько раз большие от оригинального разрешения вам нужны. К примеру, x1.78 соответствует разрешению 2560×1440, а x4 соответствует 3840×2160. После этого выбранные разрешения станут доступны в параметрах рабочего стола, а также в самих играх.

Также необходимо выставить параметр «DSR-плавность» на значение 0 %. В противном случае изображение будет слегка размыто.

Для включения MSAA, в этом же разделе (Управление параметрами 3D) нужно изменить два параметра.

  1. «Сглаживание — режим» выставляем «Замещение настроек приложения».
  2. «Сглаживание — параметры» выставляем желаемую степень сглаживания (например 4x).

Затем нажимаем кнопку «Применить».

Для настроек 3D имеется две вкладки: глобальные параметры и программные настройки. Если вы меняет параметры в первой вкладке, то они применяются ко всем приложениям, а если вы меняете значения во второй вкладке, то настройки применяются только к выбранной вами игре.

Для SSAA сглаживания настройки в панели управления не предусмотрено (исключение — старые видеокарты).

Включить его получиться только с помощью сторонней утилиты NVIDIA Profile Inspector.

  1. Запускаем программу и ищем раздел 3-Antialiasing.
  2. Для строки Antialiasing — Mode меняем значение на Override any aplication settings.
  3. Для строки Antialiasing — Setting выбираем уровень сглаживания. Рекомендуется либо 2×2 Supersampling, либо 4×4 Supersampling.
  4. Нажимаем кнопку Apply changes.

Для сброса настроек вы можете нажать на значок NVIDIA.

Сравнение

Для сравнения качества было решено выделить фрагмент картинки, затрагивающие провода, текстовую надпись Track Mania и дорожные перила.

Вторым фрагментом выступит автомобиль, для оценки сглаживания изгибов и текстур.

А теперь сравним влияние сглаживания на FPS в игре.

Исходные материалы

Все использованные в статье игровые скриншоты, а также несколько дополнительных вы можете скачать в архиве по ссылке.

Track Mania Nations — игра, использованная для демонстрации типов сглаживания доступна для бесплатного скачивания на странице в Steam.

Вывод

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

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

  • В любой требовательной игре включать сглаживание MSAA x4 (или выше), даже если придется понизить другую графическую настройку. Всё-таки четкость контуров играет большую роль, нежели сверхдальняя прорисовка теней.
  • В играх, в которых не используется мышка (гонки, аркады, файтинги и тд.) применять технологию DSR x4.
  • В старых играх активировать сглаживание SSAA x4, так как сильно повышается качество игрового мира, а производительности видеокарты хватает с запасом.
когда, зачем и для чего. На примере Vue / Блог компании Umbrella IT / Хабр
(Иллюстрация)

Once upon a time Несколько лет назад, когда я только начинал работать с вебом на Java, мы работали с JSP. Вся страница генерировалась на сервере и отправлялась клиенту. Но потом встал вопрос о том, что ответ приходит слишком долго…

Мы начали использовать подход, при котором отдается пустой темплейт страницы, а все данные уже постепенно подгружались Аяксом. Все были счастливы, странички показывались. Пока мы не поняли, что наделали себе за шиворот, так как CSR отрицательно сказывается на поисковой оптимизации и производительности на мобильных устройствах. Но потом я снова услышал про поддержку SSR JS-фреймворками.

И что же получается, история повторяется?

Какие есть принципы работы SSR?

1. Prerendering. В простейшем случае генерируется N HTML-файлов, которые кладутся на сервер и возвращаются как есть — то есть возвращается статика, во время запроса мы ничего не генерируем.

2. Как и в случае с JSP, на сервере генерируется полный HTML со всем контентом и возвращается клиенту. Но, чтобы не генерировать страницу на каждый запрос (коих может быть миллион и наш сервер загнется), давайте добавим кэш прокси. Например, варниш.

Когда может быть применим каждый из этих способов:

1. Когда имеет смысл генерировать пачку HTML-файлов? Очевидно, в том случае, когда данные на сайте меняются чуть реже чем никогда. Например, корпоративный сайт ларька по ремонту обуви, что за углом (да-да, тот дяденька, который меняет набойки в ларьке 2х2 метра, тоже захотел сайт фирмы — и, конечно же, со страницей миссии компании). Для такого сайта вообще не надо заморачиваться на предмет фреймворков, SSR и прочих свистелок, но это сферический пример. Что делать, если у нас блог, в котором 1к постов? Иногда мы их актуализируем, иногда добавляем новые. Сгенерировать 1к+ статичных файлов… Что-то не то. А если мы изменяем пост, то надо перегенерировать определенный файлик. Хм…

2. И вот тут нам подходит второй способ. Где мы генерируем первый раз на лету, а потом кэшируем ответ в проксирующем сервисе. Время кэширования может быть час/два/день — как угодно. Если у нас 10 000 заходов в час на пост (невероятно, правда?), то только первый запрос дойдет до сервера. Остальные получат в ответ кэшированную копию, и наш сервер с большей вероятностью будет жить. В случае обновления какого-то поста нам просто нужно сбросить закэшированную запись, чтобы по следующему реквесту сгенерировалась уже актуальная страница.


Hello world repo.

0) generate hello world

Для быстрого старта сообщество Nuxt подготовило базовые темплейты, установить любой из них можно командой:

$ vue init <template-name> <project-name>

По умолчанию предлагается started-template, его и возьмем для нашего примера. Хотя в реальном приложении мы выбрали express-template. Назовем проект незамысловато:
$ vue init nuxt-community/starter-template habr-nuxt-example
$ cd habr-nuxt-example
$ yarn # или npm install, как будет угодно
$ yarn dev

Вжух, мы сгенерировали hello world. Перейдя по урлу, можно увидеть сгенерированную страницу:
1) Webpack и Linting

Nuxt из коробки имеет настроенные вебпак с поддержкой ES6 (babel-loader), Vue однофайловые компоненты (vue-loader), а также SCSS, JSX и прочее.

Если этих возможностей недостаточно, конфиг вебпака можно расширить. Идем в nuxt.config.js, и в build.extend мы имеем возможность модифицировать конфиг.

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

Пример расширения конфига (подключение конфиг-файла для дева на основе переменной окружения):

config.plugins.push(
 new StylelintPlugin({
   files: [
     '**/*.vue',
     'assets/scss/**/*.scss'
   ],
   configFile: './.stylelintrc.dev.js'
 })
)

Остальные изменения можно посмотреть в репо по тегу, эти изменения помогут нам держать стили в порядке.

И пример конфиг-файла линтера: используем Standard JS, как общепринятое в Vue/Nuxt решение:

...
 extends: [
-    'plugin:vue/essential'
+    'standard',
+    'plugin:vue/recommended'
 ],
…

2) Для примера работы с данными будем использовать вот это API:

Подключим Axios как плагин, создаем новый файл в директории plugins:

import * as axios from 'axios'

let options = {}
// The server-side needs a full url to works
if (process.server) {
 options.baseURL = `http://${process.env.HOST || 'localhost'}:${process.env.PORT || 3000}`
}

export default axios.create(options)


И пример использования:
import axios from '~/plugins/axios'

export default {
 async asyncData ({ params }) {
   const { data } = await axios.get('https://jsonplaceholder.typicode.com/posts')

   return { data }
 }
}


Остальное в репе по тегу.

Цифры загрузки:

1) SSR + Varnish

Первый запрос:

Второй:

2) No-ssr

Второй реквест с фастли

Пустая страница пришла быстро, но потребовалось 2 секунды на то, чтобы сгенерировать на ней контент.


Что в итоге? Мы разобрались, как получить минимально сконфигурированное запускаемое SSR-приложение. Добавили Linting для сохранения стиля кода с самого начала жизни проекта, а также обозначили общую архитектуру. Можно писать свой гугол.

Что такое SSR и зачем это JavaScript сайтам

Что такое SSR

SSR — (анг. аббревиатура от Server Side Rendering) это технология, которая позволяет, с помощью Node.js, запускать JavaScript код на сервере (а не в браузере как обычно) и готовый результат отправлять пользователю, избегая лишней нагрузки на его браузер и компьютер.

Зачем нужен SSR

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

Оптимизация

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

И это логично, ведь браузер кушает и так очень много оперативной памяти. А если мы перекладываем все серверные вычисления на браузер пользователя, то нагрузка на его систему возрастает.

SSR помогает снизить нагрузку на браузер пользователя, это особенно важно, если пользователь использует телефон или слабый компьютер. Крупные проекты, например, такие, как OZON, используют такие технологии, дабы упростить жизнь пользователю и повысить прибыльность проекта. Ведь медленный сайт — это убыточный и бесполезный сайт.

SEO

Когда поисковая система заходит на сайт, сделанный с помощью Ajax-технологий или какого-нибудь современного фреймворка, похожего на React или Vue.js, то видит пустой HTML документ без какого-либо контента. Если Вы попытаетесь посмотреть исходный код сайта через браузер или с помощью сервиса Яндекса, то увидите что-то подобное:

javascript без ssr сайт пример

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

Поисковый робот хоть и умеет запускать JavaScript, но делает это с большой неохотой. Дело в том, что на это требуются очень большие мощности, и поэтому поисковая система запускает JavaScript крайне редко.

Если на сайте есть SSR, то страница будет выглядеть как обычный веб-документ со всеми нужными текстами и метаданными, вот пример:

сайт на javascript с server side rendering

Кстати, это точно та же страница, как на предыдущем скриншоте. Просто здесь SSR уже включен. Поисковая система все корректно индексирует.

Сложно ли интегрировать SSR на существующий проект

Да, это чревато разработкой нового сайта, а конкретно “движка”. Дизайн проекта не будет затронут, но внутри все “механизмы” обретут новую логику.

Есть готовые решения, которые помогают разработчику быстро внедрить SSR в проект, например, Nuxt.js. Но, без знаний JavaScript и без понимания базовых принципов работы серверов на Node.js, самому интегрировать данное решение невозможно.

За данной услугой обращайтесь к профессиональным разработчикам, которые делают проекты с помощью этих инструментов. Заставлять своего программиста учить это — плохое решение, ведь он потратит на это очень и очень много времени.

графоний нового года / Персональный блог Об играх — изнутри
Это — первая половина моей «дилогии» о PBR/PBS. Да, в одну статью уложить не удалось. Здесь я постараюсь объяснить, «что это вообще такое и с чем его едят». Если тебе интересны лишь анализ и выводы, без понимания сути — всё это будет только во второй части. Она появится скоро.

UPD: как можно понять из даты публикации, вторую часть я так и не дописал. Лежит в черновиках сырая и недодуманная. И, видимо, уже не напишу.


Вот и прошёл ещё один год. Первый год под безраздельным правлением нового поколения игр, рассчитанных на современные платформы: PS4, PC и… всё 🙂

Problem with next-gen, XBOX?

Да воцарится хуано-срач!

Ещё недавно мы с тобой их называли некст-геном, а теперь они царственно воодрузились на трон нынешней эпохи, оставив в прошлом последние релизы для предыдущего поколения.
Вышло уже солидное число исключительно-currentGen-ных проектов, а среди анонсов новых вовсю гремит тяжёлая артиллерия.
Дамы и господа, поздравляю! Момент настал. Мы официально ступили в будущее.

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

Не стану ходить вокруг да около, томя долгими вступлениями. Ты и так уже понял по заглавию: самое важное что нас ждёт — это вездесущий и повсеместный…

… или, сокращённо, PBR.
Также можно встретить аббревиатуру PBS — Physically Based Shading. Это, по сути, то же самое.

Что же за зверь скрывается под этим суровым названием? Сейчас разберёмся. А пока — помните, как вам преподы в вузах говорили: «Забудьте всё, чему вас учили в школе»?
Вот примерно тем же самым PBR является для игростроя. Это новый подход к отрисовке картинки, который порой переворачивает с ног на голову некоторые устои, царившие в играх до сих пор. Всё верно: игрострой дорос до «вышки».

Но прежде, чем окунёмся в пучину графонной аналитики — есть ещё одна вещь, которую хотелось бы отметить. Чем глубже я лезу в подноготную PBR (в том виде, в котором он есть в играх), тем больше мне кажется, что он — это главный символ всего наступившего поколения, его олицетворение, квинтэссенция. В «физическом рендере» проявляются самые сильные и слабые стороны current-gen’а, причём в максимально гипертрофированной форме.

Лирическое отступление для тех, кто долго ждал эту статью

В том числе поэтому я так долго тянул с рассказом про PBR. Ведь это не просто обсуждение ещё одной «фичи». Нет, на мой взгляд, это обсуждение главного столпа, на котором держится всё текущее поколение в целом.
Нельзя просто так взять и рассказать про PBR, вообще не коснувшись того, как его особенности отражаются в глобальном плане.


Поэтому не удивляйтесь, что, говоря о PBR, я буду проводить параллели «вовне». Экстраполировать, так сказать.

… и ещё — про перевод названия

Как и практически все CG-термины, PBR тоже не имеет полноценного аналога по-русски.
В оригинале он называется Physically Based, а не Physically Correct — и это гораздо точнее передаёт суть. То есть, по идее, он не «физически корректный», а, скорее, просто «по физике».
Но «рендер по физике» или «с учётом физики» — не звучит. Поэтому, если уж необходимо перевести — то с натягом, но его зазывают просто физ-корректным. Хотя в профессиональной среде пользуются только английским названием, и в принципе переводить его приходится разве что на конференциях для журналистов.


А начнём с, пожалуй, самого спорного и неоднозначного аспекта этой технологии:

The cake is a lie

Или «PBR — это не PBR«, или «GameDev vs VFX«, или «PBR в кино и в играх«, или…
Короче, тут вот какое дело: когда кто-то произносит магическое словосочетание «Physically Based Rendering» — то вовсе не факт, что он имеет в виду то же самое, что под этими словами понимаем ты или я. И чтобы — элементарно — разобраться в определениях, придётся немного вникнуть в детали. Сорян, без этого — никак (и в том числе поэтому данной статье на «главную» путь заказан).

Итак, конкретно: что же такое PBR? ВНИМАНИЕ: МНОГАБУКАФ! И КАРТИНКИ В СПОЙЛЕРАХ!

Наливай (чая, разумеется), а я пока расскажу тебе кулстори о том, как CG-шники придумали себе религию.

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

В далёком 2010 году одним из таких «заманчивых Франкенштейнов» стал доклад на тему «Physically-Based Shading Models in Film and Game Production». В глубокие технические дебри лезть не будем, но суть его была вот в чём.

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

Вот, например, САМЫЙ БАЗОВЫЙ набор деталей, из которых состоит графон

… или те же яйца, только сбоку


Авторы же этого доклада сказали: «Стоп, хватит». И предложили иной подход: от большей части накопившихся «фэйков» можно отказаться, если самую базу всего рендеринга делать «строго по физике».
С названием для этого подхода мудрствовать не стали, так его и обозвав: «освещение по физике» (Physically-Based Shading).

Идея эта компьютерно-графонному сообществу понравилась. А самые отчаянные сразу после конференции дружно помчались по домам, запиливать «свой новый рендер, с блекджеком и прочим».

В скором времени (конкретно — летом 2013-го года) на сцену вышла небезызвестная студия Pixar, с ответным докладом («Physically Based Lighting at Pixar»), заявив, что придумала «тот самый» расово верный физический рендер. И что вообще, её поезда — самые поездатые поезда в мире, так что: «Ну-ка срочно все дружным строем пошли рендерить так, как мы сказали».
За базаром у серьёзных дядей принято следить, поэтому Студия Лампочки с ходу подкрепила свои заявления пруфами, выложив на стол сперва короткометражку «Blue Umbrella» («Синий зонтик»), а потом — полноценный «Университет монстров».

Одни из первых кадров, посчитанных с PBR


видео: первое явление PBR-а миру

видео: … и DLC к нему


CG-мир дружно воскликнул: «Wow!» — и все, подобрав отвисшую челюсть, побежали срочно делать свою реализацию «такого-то графона от Pixar».
Но не тут-то было.

На поверку оказалось, что в своих Незыблемых Постулатах пиксаровцы сами не учли несколько очень важных нюансов. А значит, даже предложенный ими вариант рендера был в некоторых аспектах совершенно некорректным физически.

Но локомотив хайпа уже было не остановить, так что новость о том, что Pixar сделала «самый кошерный» рендер, разлетелась со скоростью детонирующего пукана. А данный доклад многие не глядя нарекли Хрестоматией PBR’а.
Так в киношной графике произошёл раскол, и каждая сторона, ревностно колотя себя пяткой в грудь, начала с пеной у рта доказывать, что вот конкретно её физически корректный рендер — самый физический и самый корректный.

Но и это ещё не всё. Дело в том, что в этом же самом 2013-ом году был другой доклад — от игровой студии DONTNOD, которая рассказала о своём вИдении PBR’а, уже в рамках геймдева. И тоже была далеко не голословной, подкрепив свою позицию феноменальной в графическом плане «Remember Me«.

Remember Me и PBR

Я лично считаю, что «Remember Me» феноменальна не только графически, и очень надеюсь когда-нибудь увидеть вторую часть.
А что же касается, собственно, PBR — достаточно будет сказать, что так впечатливший геймеров «The Order 1886» почти целиком построен на тех наработках, которые в своём докладе озвучила студия DONTNOD.

В трейлере, подготовленном для своего выступления, создатели Remember Me не побоялись ставить рядом реальную съёмку и игровую графику. Напоминаю: и это — на предыдущем поколении:


И всё бы ничего, если бы на этом чехарда трактовок прекратилась. Но — нет.
Видимо, в какой-то момент к делу подключились маркетологи (обиженные, что их мнения никто не спросил), начав без разбору лепить наклейку с модным словечком «PBR» на любые мало-мальские изменения в графике, и всё заверте…

Короче.
На сегодняшний день есть несколько разных PBR’ов. Что киношная индустрия, что игровая — ни одна из них пока не определилась до конца, что же конкретно можно считать «физическим рендером», а что — нет. Он буквально превратился в религию, с разными конфессиями, каждая из которых наперебой кричит о том, что именно их Бог — «поистине ТруЪ».
А сам PBR — он, как Господь, непостижим, и продолжает видоизменяться по сей день, с каждым новым докладом становясь всё более корректным.
Есть некоторые базовые принципы, но даже их соблюдение некоторые считают необязательным.

Поэтому сейчас, рассказывая об этом Великом и Ужасном звере, я, в некотором смысле, буду озвучивать ту позицию, которой придерживаюсь сам. Она тоже взялось не из воздуха, и базируется на том, что именно называют «физическим рендером» разработчики Юнити.
Но я в курсе, что, например, в некоторых крупных российских студиях мою трактовку не разделяют.
В корне.


Либо — НЕТ ВРЕМЕНИ ОБЪЯСНЯТЬ! Никто не знает, что такое PBR!

«Физическим рендером» в кино и в играх называют разные вещи. Да ещё и в каждой индустрии есть по несколько трактовок. Я расскажу о той, которой придерживаюсь сам. Короче, ИМХО. Обусловленое тем, что я работаю в Юнити.


Что важно для нас, как для геймеров — это то, что ни одно из PBR-решений (известных мне), не является в полной мере «физически корректным рендером». Скорее, это «ещё гораздо более лучше», чем раньше.
Вот смотри. Нынешний current-gen — он ведь круче предыдущего? Ощутимо круче. И кое-в-чём покоряет новые горизонты. Но не сказать, что PS4 или XBONE сделали какой-то прям-таки революционный скачок вперёд.

То же самое и с PBR.
Он вовсе не означает сверхъестественный гиперреализм, как может показаться из названия. Но, тем не менее, он действительно позволяет сделать игру гораздо более красивой и натуральной.
Вот как именно ему это удаётся…

Базовые принципы физического рендера

Те самые «правила PBR» от Pixar’а — я о них.
В «классическом» рендере во главе угла стояла художественная выразительность картинки. Иными словами, «правильно» — означало «красиво». Всё сводилось к тому, насколько талантливо художники могут нарисовать текстуры. Всё подстраивалось «на глазок», исходя из «творческого вИдения». Но это приводило к тому, что одно и то же приходилось делать несколько раз, под разные условия. Развевающийся флаг в солнечный день? Одна текстура. Тот же флаг, но мокрый под дождём? Другая.
Конечно, при классическом подходе можно было добиться высококлассного результата, но для этого требовалась масса ручной работы. Ведь один и тот же ассет, прекрасно смотревшийся в одних условиях, выглядел кошмарно в любых других.
Так было раньше.

Теперь же «правильно» — это «по физике». То, что рисуют художники, должно иметь какой-то настоящий физический смысл. Это должны быть конкретные параметры реальных поверхностей, а не просто «красивая текстура».
Казалось бы, такой подход напрашивается сам собой, он довольно очевиден. Но всю историю игр (до последнего времени) делать «строго по физике» не позволяли мощности. А как только мы (гейм-девелоперы) стали воспроизводить оптические эффекты в точности так, как требует того наука (по цифрам, а не «на глазок») — оказалось, что нам необходимо фундаментальнейшим образом пересмотреть многие укоренившиеся устои.
Например, оказалось, что…

Абсолютно всё блестит

Некоторые тут же возразят:

Ты втираешь мне какую-то дичь!

Ну как может блестеть матовая бумага или, например, гипс? Сухой кирпич, ткань… да много чего!
Вы таки будете смеяться, но у всех этих материалов тоже есть блеск. Просто он не настолько выраженный, но именно его отсутствие и бросается в глаза.

Взглянем на реальные примеры

Эти изображения — настоящие фото, не рендер. Получены они с помощью поляризационных фильтров. Отсюда — и «паразитные» отблески на всю картинку (от линз фотоаппарата).

Вот как выглядит, казалось бы, чисто матовый картон, если специально отделить блеск от «матового» света:

Теперь — кусок засохшего цемента. Тоже, на первый взгляд, совершенно матовый:

Сухой кирпич:

Ткань:

А теперь — наоборот, казалось бы, чисто-блестящая тарелка («на глазок» — вообще без матовой составляющей):


Глядя на эти фотографии, понимаешь, что буквально все объекты, которые нас окружают, блестят. Почти у всего есть блик. И хотя на первый взгляд он может казаться слабым, когда мы смотрим вдоль поверхности — он уже очень ярко выражен.
То, что получалось «по классике», было похоже скорее на центральный вариант. Хотя должно было быть то, что слева.
PBR восполняет этот пробел, и отныне матовые поверхности будут смотреться гораздо натуральнее. Мы это заметим, в первую очередь, на всевозможных сооружениях и одеяниях персонажей. Бетон теперь выглядит как бетон, камень — как камень, а дерево — как дерево.

Unreal Engine 4 гарантирует это

Не бывает бликов без отражений

Равно как и не бывает дыма без огня.
Со стороны это, опять же, кажется довольно очевидным. Ну разве можно этого не понимать!
Но для игровой графики данный тезис долгое время таковым не был. Всё дело в том, что считать реальные отражения играм не по зубам. Но, с другой стороны, совсем без блестящих предметов — тоже не дело. Поэтому раньше имитировали лишь самый яркий блик, а все остальные отражения оставляли «за бортом».

Вот как имитировали блеск в классике


Отражается лишь самая яркая точка (от источника света), но не окружение. Потому что это, собственно, и не отражение вовсе, а лишь дешёвая математическая имитация.
Синтетическая от «А» и до «Я».
Увы, но при таком подходе любой блеск выглядел слишком «пластмассово» (ты наверняка наслышан об этом эффекте). Ни тебе золота настоящего, ни воды, ни кожи персонажей.
PBR же поставил игроделов перед фактом: хочешь-не хочешь, а отражения нужны.

Кейдж старался как мог, но всё равно сейчас эти лица выглядят кукольными

… особенно в сравнении с тяжёлой артиллерией

Безусловно, тут дело не только в блеске. Огромную роль играет и SSS. Но то, что эти лица не выглядят пластмассовыми — в чистом виде заслуга PBR.


Демонстрация важности отражений на примере Remember Me


Однако сказать «отражения мне запили» — это одно дело, а совсем другое — придумать, как именно это можно сделать. Тут оказались очень кстати две технологии, которые уже давненько используются. Первая из них — это…

Image Based Lighting

Сокращённо — IBL. Примерный перевод на русский — «освещение с помощью изображения».

Суть его вот в чём

В «классике» весь шейдинг (то, как выглядит поверхность) получался всего-навсего из трёх векторов.

Вот конкретика

Берём поверхность объекта.
В каждой её точке есть направление, показывающее, куда эта поверхность «смотрит» (так называемая нормаль). Есть мы (зритель), который смотрит на эту точку. А лампочек, как таковых, нет вообще. Вместо них — лишь абстрактное «направление света» от каждой из них. Всё. Лишь эти 3 направления.

Такой подход очень ограничивал игроделов. Потому что для того, чтоб считать свет с его помощью, надо заранее условиться: все лампочки в сцене — либо просто точки с нулевым размером, либо абстрактное солнце (бесконечно удалённый источник света, а нам известно лишь, в каком направлении свет падает).
Ага, именно. Тот самый сферический конь в вакууме, так любимый математиками.

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

Тут-то и выходит на сцену IBL. Вместо того, чтоб освещать некий объект (допустим, персонажа) одной-двумя точечными лампочками, мы создаём специальную текстуру, на которой видно всё то, что этот объект окружает. Мы как бы «рисуем в уме» такую сферу, находясь внутри которой будет казаться, что перед нами то самое реальное окружение, которое запечатлено на картинке:

Такую специальную текстуру, не долго думая, назвали картой окружения (Environment Map, EnvMap).

Осталось лишь размыть её — и вуаля! Теперь она отображает тот свет, который приходит из окружения в каждом направлении.

Имея такую энв-мапу, в игре мы можем её прочитать. Просто «смотрим» тот пиксель, на который направлена нормаль поверхности — и получаем объект, который «освещён картинкой».
Вот так и работает Image Based Lighting.


По-настоящему рассеянный свет (а-ля Enlighten) мы с помощью этой техники получить не можем. Но невооружённым взглядом видно, что IBL выглядит гораздо натуральней чистой «классики».

Только направленный свет (солнце)

Для наглядности специально возьмём модельку без текстур.

… а теперь добавим к нему свет с карты окружения


Но даже не это самое замечательное. Главная прелесть IBL — в том, что у нас уже есть простая текстура, которая описывает всё окружение. Мы уже её размыли — и получили имитацию освещения.

А что если текстуру не размывать? И считывать пиксель не вдоль нормали, а в том направлении, в котором отразится от неё наш взгляд?

Мы получим неплохую имитацию отражений


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

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

Вот как наш объект будет с ними выглядеть


Подробный анализ того, в чём же нас IBL ограничивает — оставлю для второй части. А сейчас лишь отмечу два ключевых нюанса.
1. Для того, чтоб сымитировать отражения, нам пришлось заранее сохранить всю сцену в изображение. Это, как нетрудно догадаться, увеличивает размер игр и всё-таки даёт нагрузку. Сам понимаешь: держать в видеопамяти и считывать ещё одну текстуру большого размера — это не бесплатно (хоть и относительно «дёшево»).
2. Опять же, это не «настоящие» отражения: в них видно лишь изображение с карты окружения, но не объекты в сцене. Например, ухо на голове не отразилось, хотя должно было бы. По сути, в отражениях окажется лишь то, что было заранее сохранено в картинку.

Частично проблемы IBL перекрывает вторая «отражательная» техника из арсенала PBR, а именно…

Screen Space (Local) Reflections

«Отражения в пространстве экрана»… короче, просто используй английское название.
Идея «под капотом» этой техники — та же самая, что и в основе IBL:
Реальные отражения геймдеву пока что даже не снятся.
Но можно их сымитировать, если считывать со специальной текстуры нужную область.

Только на этот раз в качестве такой текстуры мы используем не карту окружения, а… сам кадр.
У нас уже есть 2D-картинка того, как выглядит сцена глазами игрока. Так почему бы не получать отражения с неё?
На сей раз пускаться в подробное объяснение того, как именно это делается — не буду. Ты и так уже, наверняка, возненавидел меня за то, что постоянно лезу в дебри. А тут — нужно докапываться до самой сути, чтоб понять принцип (надо понимать, что такое deferred rendering, карта глубины, пасс нормалей и много чего ещё). Так что для самых любознательных — лучше сошлюсь на отличную статью конкретно по SSR (SSLR) (ВНИМАНИЕ! Там автор рубит правду-матку, не стесняясь шейдерного кода).

Сейчас же — лишь обозначу ключевое достоинство SSR: эта техника позволяет отражать не только какую-то заранее посчитанную карту окружения, но и то, что реально происходит в игре прямо сейчас.

А также — отмечу ключевые проблемы этого метода:
1. С помощью SSR отражается лишь то, что видно в кадре прямо сейчас. Потому что мы просто не знаем, что там за краями обзора.

Например, для вот такой сцены

… в чистом виде SSR будет выглядеть вот так

… поэтому нам придётся намеренно скрывать отражения, когда они приближаются к краям экрана


2. Для SSR у нас вся сцена «сплющена» в текстуру. Так что мы не можем получить в отражениях то, что не видим напрямую. Например, если посмотреть на блестящий пол под столом — по идее, там должна отражаться нижняя сторона столешницы. Но мы этого не увидим, потому что в самом кадре этого нет. Именно поэтому Галахад не отражается в зеркалах в «The order: 1886».

Показать анимированную GIF-ку


3. В отличие от IBL-овского подхода, создание размытых отражений через SSR не бесплатно. Там нам было без разницы: что чёткие отражения, что размытые. Тут же — чем размытее, тем дороже. Либо — по мере размытия мы будем терять в качестве отражения.

Тем не менее, без SSR отражения выглядят ещё более ненатурально, поэтому

этой технологией сейчас пользуется каждый шутан

… и вообще любая уважающая себя игра


Даже Unity — движок, испокон веков смотревший в сторону мобилок, недавно пообещал появление SSR «из коробки»:

Видео-демонстрация


мелкий оффтоп про Юнити и мобилки

На самом деле, с пятой версии авторы Unity вообще взялись за ум, и начали потихоньку запиливать фичи, нужные в современных играх. Так что не исключено, что через каких-нибудь полгода этот движок тоже сможет в current-gen. Без «как бы» и «почти», как это было раньше.
И — да — в качестве плагина SSR для этого движка уже существует довольно давно. Но стабильность юнитишных плагинов с AssetStore — это отдельная тема.

Сохранение энергии

Давай взглянем на то, как меняется яркость блика в зависимости от того, насколько сильно поверхность его размывает.

Показать картинку


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

Не поверишь, но даже это раньше не было очевидно. В классическом рендере художники настраивали материалы «на глазок», и редко следили за тем, чтоб два материала с разным бликом визуально отражали одинаковое количество энергии.
При PBR же сохранение энергии решили «узаконить»: поверхность не должна отражать больше света, чем на неё упало. Соответственно, чем ярче блик — тем слабее основной градиент света (так называемый «диффузный» свет). Чем блик больше — тем он слабее.

Это довольно простая мысль, но обязательность её исполнения является мощным фундаментом в PBR. Когда сохранения энергии нет — игрок может и не понять, что именно его смущает. Но картинка выглядит «как-то не так».

Global Illumination (GI)

По-русски — рассеянное освещение.
Да, я про эту технологию уже рассказывал: на примере Voxel Cone Tracing и Geomerics Enlighten.
И — да — конкретно эту технику можно отнести к PBR с огромным натягом. Но она соответствует концепции физического рендера, более чем. Строго говоря, без GI у нас, вообще-то, не соблюдается сохранение энергии. Только не в ту сторону, в которую было раньше (света больше, чем должно быть), а в обратную (света меньше).
Кроме того, известные сейчас способы получить динамический GI (то есть, не посчитанный заранее, а реалтаймовый) выполняют, по сути, ту же задачу, что и IBL. Они реализуют свет от окружения, а не просто из бесконечности/одной точки.
Поэтому на практике GI приходится тесно связывать с IBL, чтоб соблюсти упомянутое выше сохранение энергии. А то, что неразрывно связано с разными аспектами PBR — на мой взгляд, является частью этого самого PBR. Но — подчёркиваю — это моя личная позиция. «По канону» же GI и PBR — совершенно разные вещи.

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

пруф от разработчиков Юнити

… и Unreal Engine


Будущее физического рендера

Как я упомянул в начале, анализировать подводные камни нашего нового трёхбуквенного друга будем во второй части.
Но уже сейчас хотелось бы подытожить всё вышесказанное.
Итак, PBR — это не просто новая техника, не очередная графическая фича, а целый подход к визуализации, который ставит во главу угла науку. И перечисленные мной технологии — не единственные в его арсенале (например, уже сейчас многие считают микрофасетное самозатенение важной, а то и неотъемлимой частью «PBR’ности»).
Одних лишь тех примеров, что привёл в этой статье я, должно быть достаточно, чтоб убедиться: физический рендер по всем фронтам бьёт классику (кроме производительности, но об этом в следующий раз).

Поэтому наше игровое будущее (да и уже настоящее, чего греха таить!) — определённо за этим персонажем.
Я придерживаюсь позиции, что неотъемлемыми частями PBR являются:
1. Сохранение энергии
2. IBL
3. «всё блестит»

или, по-научному — наличие отражений Френеля


Но вся прелесть этого похода в том, что он неизбежно будет развиваться дальше. Теперь, когда мы сняли вуаль «имитаций на глазок», с каждым годом продолжат появляться способы сделать картинку ещё более достоверной — и все они наверняка станут такими же незыблемыми столпами PBR, какими сейчас я считаю эти три.

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

А пока — спасибо за внимание, и удачно провести новогодние праздники!

Всем добра в нашем ближайшем светлом будущем

SSR — это… Что такое SSR?

  1. ядерный реактор со сдвигом спектра нейтронов
  2. ядерный реактор с отдельным пароперегревателем
  3. экспертиза пригодности площадки для АЭС
  4. сепаратор-промежуточный пароперегреватель
  5. сепаратор пара и промежуточный пароперегреватель
  6. сброс давления во втором контуре ядерного реактора
  7. реле резервного питания
  8. регулятор уплотнительного пара
  9. полупроводниковое реле
  10. подсинхронный резонанс
  11. отчёт о пригодности площадки для АЭС
  12. отчёт о безопасности АЭС
  13. нормативы (на выбросы) по отраслям промышленности

 

нормативы (на выбросы) по отраслям промышленности

[А.С.Гольдберг. Англо-русский энергетический словарь. 2006 г.]

Тематики

  • энергетика в целом

EN

  • sector specific regulations
  • SSR

 

отчёт о безопасности АЭС

[А.С.Гольдберг. Англо-русский энергетический словарь. 2006 г.]

Тематики

  • энергетика в целом

EN

 

отчёт о пригодности площадки для АЭС

[А.С.Гольдберг. Англо-русский энергетический словарь. 2006 г.]

Тематики

  • энергетика в целом

EN

  • site suitability report
  • SSR

 

подсинхронный резонанс

[Я.Н.Лугинский, М.С.Фези-Жилинская, Ю.С.Кабиров. Англо-русский словарь по электротехнике и электроэнергетике, Москва, 1999 г.]

Тематики

  • электротехника, основные понятия

EN

  • subsynchronous resonance
  • SSR

 

полупроводниковое реле
Статическое электрическое реле, работа которого основана на использовании полупроводниковых приборов
[ГОСТ 16022-83]

EN

solid-state relay
electrical relay in which the intended response is produced by electronic, magnetic, optical or other components without mechanical motion
[IEV number 444-01-06]
[IEC 62314, ed. 1.0 (2006-05)]

FR

relais statique, m
relais électrique dans lequel la réponse prévue est produite par des composants électroniques, magnétiques, optiques ou autres, sans déplacement mécanique
[IEV number 444-01-06]

Тематики

  • реле электрическое

Синонимы

  • твердотельное реле

EN

  • semiconductor relay
  • solid state relay
  • solid-state relay
  • SSR

DE

FR

 

регулятор уплотнительного пара
(турбины)
[А.С.Гольдберг. Англо-русский энергетический словарь. 2006 г.]

Тематики

  • энергетика в целом

EN

 

реле резервного питания

[Я.Н.Лугинский, М.С.Фези-Жилинская, Ю.С.Кабиров. Англо-русский словарь по электротехнике и электроэнергетике, Москва, 1999 г.]

Тематики

  • электротехника, основные понятия

EN

 

сброс давления во втором контуре ядерного реактора

[А.С.Гольдберг. Англо-русский энергетический словарь. 2006 г.]

Тематики

  • энергетика в целом

EN

  • secondary system relief
  • SSR

 

сепаратор пара и промежуточный пароперегреватель

[А.С.Гольдберг. Англо-русский энергетический словарь. 2006 г.]

Тематики

  • энергетика в целом

EN

  • steam separator and reheater
  • SSR

 

сепаратор-промежуточный пароперегреватель
СПП

[А.С.Гольдберг. Англо-русский энергетический словарь. 2006 г.]

Тематики

  • энергетика в целом

Синонимы

EN

  • separator-steam reheater
  • SSR

 

экспертиза пригодности площадки для АЭС

[А.С.Гольдберг. Англо-русский энергетический словарь. 2006 г.]

Тематики

  • энергетика в целом

EN

  • site suitability review
  • SSR

 

ядерный реактор с отдельным пароперегревателем

[А.С.Гольдберг. Англо-русский энергетический словарь. 2006 г.]

Тематики

  • энергетика в целом

EN

  • separate superheater reactor
  • SSR

 

ядерный реактор со сдвигом спектра нейтронов

[А.С.Гольдберг. Англо-русский энергетический словарь. 2006 г.]

Тематики

  • энергетика в целом

EN

  • spectral shift reactor
  • SSR

Англо-русский словарь нормативно-технической терминологии. academic.ru. 2015.

Что означает SSR?

Бизнес »Профессиональные организации

900 12 Оценить это: Сообщество»
SSR

Простое повторение последовательности

Медицина »Геном человека

Оценить:
SSR Наука естественных наук — Академическая наука

Академия естественных наук —

Академия естественных наук —

Академия естественных наук —

Академия естественных наук —

Академия естественных наук —

Академия естественных наук —

Академия естественных наук —

Академия естественных наук — 6000000 — и многое другое …

Оценить:
ССР

Советская Социалистическая Республика

Правительство »Правительство США

SSR

Вторичный радар наблюдения

Правительственный »Транспорт

Оценить:

Оценить:
SSR

Устойчивое безмолвное чтение

Сообщество »Образовательное

Реакция симпатической кожи

Медицина »Физиология

Оценить:
SSR

Безмолвное устойчивое чтение

Сообщество »
0

Сообщество

Оценить:
SSR

Speed ​​Star Racing

Спорт »Гонки

Оценить:
SSR SSR Правительственный »Транспорт

Оценить:
SSR

Сумма квадратов остатков

Разное »Несекретные

0
0
0
0 9 000 5 раздаются все
0
SSR

Обзор спецификаций программного обеспечения

Правительственный »Военный — и многое другое…

Оценить:
ССР

Самостоятельное чтение

Академические науки и науки »Грамотность

0
0

Аэропорт Сара, Вану

SSR

Запрос на поддержку снабжения

Правительственный »Военный

Оценить:
SSR Оценить:
SSR

Отчет об обследовании места

Правительственный »Военный

: 0 0 000 5 000 000 000: 000

Супер Спорт Родстер

Спорт

Оценить:
SSR

Super Silent Reading

Сообщество »Обучающие

Сводный отчет о системе

Правительственный »Военный

Оценить:
SSR

Рендеринг на стороне сервера

0 Компьютерный000000000000 Reader

Компьютеры »Программное обеспечение

9000 5000000 Все000000000000000 Все000000 9000 Все еще 5 5 Сообщество
Оценить:
SSR

SSBH Capital I

Бизнес »NYSE Символы

Оценить:
Оценить:
SSR

Получатель социального обеспечения

Правительство США

000000000000
000 Оценить SSR

Sweet Sweet Ride

Разное »Неклассифицированные

Оценить:
SSR

Комната поддержки студентов

Оценить:
,

opengl — простой, самый простой SSR в GLSL

Переполнение стека
  1. Товары
  2. Клиенты
  3. Случаи использования
  1. Переполнение стека Публичные вопросы и ответы
  2. Команды Частные вопросы и ответы для вашей команды
  3. предприятие Частные вопросы и ответы для вашего предприятия
  4. работы Программирование и связанные с ним технические возможности карьерного роста
  5. Талант Нанимать технический талант
  6. реклама Связаться с разработчиками по всему миру
,
Как сделать обнаружение устройства с помощью SSR в Svelte / Sapper? Переполнение стека
  1. Товары
  2. Клиенты
  3. Случаи использования
  1. Переполнение стека Публичные вопросы и ответы
  2. Команды Частные вопросы и ответы для вашей команды
  3. предприятие Частные вопросы и ответы для вашего предприятия
  4. работы Программирование и связанные с ним технические возможности карьерного роста
  5. Талант Нанимать технический талант
  6. реклама Связаться с разработчиками по всему миру
,

JavaScript — объединение SSR и CSR в приложении React

Переполнение стека
  1. Товары
  2. Клиенты
  3. Случаи использования
  1. Переполнение стека Публичные вопросы и ответы
  2. Команды Частные вопросы и ответы для вашей команды
  3. предприятие Частные вопросы и ответы для вашего предприятия
  4. работы Программирование и связанные с ним технические возможности карьерного роста
  5. Талант Нанимать технический талант
  6. реклама Связаться с разработчиками по всему миру

Загрузка…

  1. Авторизоваться зарегистрироваться
.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *