Pull to refresh

Comments 63

UFO just landed and posted this here
UFO just landed and posted this here
По Color Grading добавил чуть-чуть информации в статью.
UFO just landed and posted this here
Да, все верно, один из этапов пост-процессинга.
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
Статья интересная, и на Хабре её самое место, но время публикации не очень удачное.
Хабр вообще мало кем читается по выходным.
Вместе с HDR принято применять и технологию Bloom

Пожалуйста, не надо.
Вы не любите Bloom? Мне кажется потому, что Bloom без HDR выглядит действительно не очень. А вот в связке — самое оно!
Потому что он выглядит не очень при любых условиях.
Если решение не меняется после этого:
Without bloom:
image

With bloom:
image

То тогда наши вкусы разные, простите :-)
Тоже не люблю блум. И на приведённой вами картинке ясно видно почему: картинка с блумом начинает выглядеть как изображение, снятое на камеру. Человек так не видит. Не знаю как вам, но мне не нравиться видеть сцену в игре так, будто я смотрю на неё через экранчик видеокамеры. Раздражает ужасно, особенно пересвеченные области. Хотя, конечно же, это всё дело вкуса.
Тем более, что традиционное применение — прикрыть фиговым листочком убогость текстур и низкое разрешение в консольных играх и их портах. Как видишь дикое мыло и bloom с blur'ом — точно консоль исходная.
Может мне зрение надо проверить, но я когда еду по мосту через Волгу, то солнце на волнах бликует с размытием как на этом фото. Может и раздражает / напрягает кого-то, но мне так кажется естественнее и атмосфернее что-ли.
Нужно больше статьей про геймдев, хороших и разных :-)

З.Ы. Эту отношу к хорошим, потому что всё элементарно и применимо.
Я еще в прошлой статье просил в комментариях высказать об интересах :)
Любую ААА-игру, любой эффект и я его попробую описать доступно и просто в обозримом будущем.
Интересно было бы про cell shading почитать. С примерами реализации. На примере того же Borderlands и Borderlands 2.
Обязательно пишите ещё! Мне бы, например, очень интересно было бы почитать про relief mapping: parallax occlusion mapping, cone step mapping, «вот это вот всё».

Bump map vs isosurface2.png

Меня это прямо завораживает :)
Правда, я не знаю, насколько это применимо к современным AAA-играм, я не очень вообще в теме :( Сейчас, наверное, всё это тесселяцией и картами смещения делают? Тогда лучше про них :)
Вообще, да:
Освещение с учетом неровностей — называется Normal Mapping.
Имитация неровностей без изменения геометрии — называется Parallax Mapping (POM — улучшенный Parallax Mapping)
И полное изменение геометрии по карте высот — Displacement Mapping
А процесс тесселяции — аппаратное увлечение числа полигонов на модели.
Это, кстати, само по себе интересно, как так получается, что эффективнее выходит передать простую модель на GPU и там её геометрию перед отрисовкой «прокачать», чем отдавать сразу сложную модель с нужной геометрией. Или тут не только в эффективности дело?
Разница в том, чтобы передать информацию о модели в 20к треугольников (все образующие точки, грани, и т.д., в том числе и текстурные координаты с нормалями), алгоритмом тесселяции разбить имеющуюся геометрию на заметно большее количество треугольников (2000000), после чего по карте высот подвигать точки, чем передать на вывод просто 2000000 треугольников (со всеми сопутствующими данными). Да, эти числа не внушают, но это один средненький персонаж (в современном поколении игр уже гораздо больше). С увеличением объектов в сцене, количество загружаемых данных о геометрии увеличивается.
Как говорил мой преподаватель по высшей математике, «Анатолий Андреевич ставит оценки хорошие и разные, но больше разные».

Так, что лучше статей хороших, а не «разных» ;)
Спасибо за статью!
Я бы с радостью почитал подобный емкий лаконичный разбор других техник, применяемых в современных 3D-играх. Меня как дилетанта интересуют простые понятия и аббревиатуры, представленные в графический настройках любой игры ААА-класса: алгоритмы сглаживания (FXAA, TXAA, SSAA, MSAA, *AA), алгоритмы освещения, частиц, жидкостей, тесселяция и прочие знакомые, но не понятные мне слова.
Для фотографов пример с чайником выглядит наоборот: hdr устраняет тени и пересветы, здесь же наоборот пересвет в пол-чайника, как на хинленькой матрице мобильного телефона.
Неправильный HDR в ваших играх, само понятие HDR извращено, в первую очередь из-за неправильного по фото-мерка tone mapping.
Что значит неправильное? Оно есть «as is». Другое дело, что у каждого Tone-функция может быть разная. В фотографии идет совмещение снимков с разной экспозицией, поэтому и HDR. А в играх наоборот — разделение HDR.
«Неправильно» с точки зрения фото- и видеосъемки. На примерах как раз LRD является тем, что в съемке является HDR (грубо говоря). Насколько это действительно неправильно — не ясно, но фотографов и операторов (а может и кого-то еще) это слегка удивляет =)

ИМХО, в статью стоило добавить объяснение разницы оригинального HDR и игрового.
ИМХО, в статью стоило добавить объяснение разницы оригинального HDR и игрового.

«Оригинальный» HDR — называется HDRI. Игровой HDR — HDRR. Да, действительно, добавил.
Все правильно.

High Dynamic Range — всего лишь «большой динамический диапазон», что означает, что на каком-то этапе получения изображения его реальный динамический диапазон оказывается больше, чем у изображения в восьмибитной (линейной или близкой к ней, но не экспоненциальной или какой-либо еще подобной) шкалой яркостей.

В фотографии термин High Dynamic Range Image/Imaging относится (вопреки тому, что думают многие) к изображению (или процессу его получения), которое восстанавливается из отдельных кадров с разной экспозицией или из RAW-изображения (в этом случае «DR» не такой уж и «H»). А дальше происходит Tone Mapping. И вот уже результат (картинку с гнусными серными пятнами и задранной насыщенностью) большинство безграмотно называют HDR/HDRI, хотя она сама по себе является изображением с низким динамическим диапазоном, которое получено путем Tone Mapping из изображения с высоким.

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

Так что и в фотографии, и в трехмерной графике этот термин относится к одному и тому же (если не учитывать его безграмотное употребление), только получаются составляющие этого процесса по-разному.
Всё правильно, только в играх tone mapping специально (зачем-то) выдаёт результат как хиленький LDR кадр, а в фото основная цель tone mapping — не допустить пересветов и теней при проявке многобитног hdr.
Было интересно почитать)

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

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

И самое интересное — за глазами есть мозг, который адаптивно подстраивается под освещение сам. Кроме того, он очень уверенно дорисовывает то, в чем сомневается и не двоеряет глазам (классические иллюзии, типа когда светлая, но находящаяся в тени клетка кажется гораздо темнее, чем освещенная клетка).
Тут все просто. Колбочки — R,G,B элементы. Содержат йодопсины которые возбуждаются в определённой зоне с пиками на соответствующие длины волн. Палочки содержат родопсин, с пиком в зелёной части спектра. Связано с лесным образом жизни предков. Соответственно, чувствительность палочек выше, чем у колбочек. Центральное пятно, макула, содержит преимущественно колбочки. Поэтому мы хорошо замечаем движение в сумерках на периферии (хищник крадется) и не различаем толком цвет.
Механизмов регуляции чувствительности по сути два:
1) диафрагма-зрачок. От 8 до 1 мм примерно. Сужается мгновенно почти, расширяется несколько минут.
2) обратимый распад родопсинов и йодопсинов под действием света. Поэтому нужно время на их синтез при переходе в тёмное помещение. Обычно около 10 минут на полную чувствительность.

Аналогии с диафрагмой и ISO матрицы почти полные.
Спасибо за подробный ответ. В общем то не знал химический состав, в остальном вроде как это известная информация.

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

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

Сюда же относится то, что все любят говорить, что смотреть на монитор, который испускает прямой яркий свет вредно. Но если сравнить яркость монитора и яркость неба в солнечный с легкими облаками день если померять фотометром — монитор и близко не стоял.
Вообще это я все к тому, и, думаю, со мной все согласятся, что нужно не пытаться сэмулировать поведение глаза и мозга, а наоборот — пытаться подсунуть ту картинку, которую бы выдел игрок, окажись он на месте камеры. А зрение человека уже само разберется с эффектами. Как это сделать — другой вопрос.
Согласен с вами полностью) вообще мозг офигеть как кадры дорисовывает. Весьма здоровое слепое пятно мы не замечаем, даже если смотрим одним глазом. Трещина на стекле очков, выпавший участок сетчатки почти нивелируются, если времени прошло достаточно и объём потерянного изображения не критичен.
Не совсем. Одновременно одинаково хорошо видеть и яркие, и темные объекты мы не можем. Дело как раз в том, что человеческий глаз может подстроиться, и выбрать тот поддиапазон освещенностей, который человеку в данный момент интересен. И не всегда этот диапазон соответствует средней яркости сцены.
Мне было бы интересно почитать по 2D-шные финты. В Rayman Legends, например, любопытное освещение и прочие фичи, про реализацию которых было бы интересно узнать.
Я про вот это: UbiArt Engine Explored (ну и до этого момента любопытно, там построение земли со всеми потрохами по линии).
Каждый раз, когда смотрю видео про Ubiart Engine, начинаю люто бешено завидовать. Спасибо :).
Это да… Что ведь забавно — до видео-роликов добралась лишь малая толика всех фич, полный список которых даже не перечислен нигде. Страшно подумать, какое слюноотделение было бы тогда…
Простите, а что имеется в виду под словами «а Unity так вообще движок-песочница»?
Было интересно почитать Ваши аргументы насчет XNA, хотелось бы более детального рассмотрения почему оно еще останется применимым года 2-3. Т.е. какие-то массовые факты, примеры движков и игр. Спасибо!
Сейчас работаю над движком для рендеринга отснятых 360-градусных панорам в браузере на javascript через WebGL (используя three.js). Очень хочется реализовать HDR, но толком не знаю, как к нему подступиться. Шейдеры в движке уже используются (для создания эффекта виньетирования), но непонятно, как хранить HDR-текстуры, и как эффективно высчитывать среднюю освещенность кадра на WebGL. Был бы рад за подсказку, в каком направлении копать :)
По поводу второго заключения:
Хабр — это огромная площадка, ее аудитория далеко не ограничена захабренными пользователями. Я думаю, здесь ваши посты увидят больше интересных с профессиональной точки зрения людей.
У меня были подобные вашим размышления, когда я публиковал материалы по программированию аудио. Шестнадцать объемных статей породили два полезных обсуждения размером в 4-5 комментов, большая часть из этих статей еле поднялась над нулем.
Однако, тематика непосредственно связана с IT, материал нишевый и качественный, и на Хабре ему самое место. Активная аудитория со временем подтянется. Хочется верить :) Да, нужно признать, что некоторые ниши у нас совсем не развиты. Флаг в руки :)
И кстати: мой цикл публикаций в результате свел меня с очень интересными людьми в оффлайне, которые не зарегистрированы на Хабре, но нашли способ со мной связаться.
Этот топик реально читают. По моей ссылке из незаплюсованного комментария где-то в гуще обсуждения прошло больше 300 тел (но пока меньше 1000). Разница в количестве зарегистрированных на Хабре и простых читателей огромна.
Да вообще, будьте добры ссылки на все используемые модели и ресурсы, ежели из Public Domain.
Ну и контрастность сцены в целом (слева HDR, справа LDR):

Весело Вы сравниваете. Слева и небо есть, и земля не вклеточку, и (что самое главное) текстуры детализированные, в том числе и нормалей.
Отнюдь. Размеры текстур те же самые. И у второй нет спекуляра.
Морщины на лбу — слева есть, справа нет. Брови — слева есть, справа нет. Модель освещения тоже определённо другая.
Судя по ступенчатой тени и алиасингу, справа не рендер, а превью.
Sign up to leave a comment.

Articles