• SMAA: улучшенное субпиксельное морфологическое сглаживание

    • Перевод

    Данная статья основана на журнале Хорхе Хименеса, Хосе Эчеварриа, Тиаго Соуса и Диего Гутьерреса.

    Их демо реализации SMAA можно посмотреть здесь (файл .exe). На моём GTX 960 2GB оно работает вполне нормально.

    Старые способы сглаживания (антиалиасинга)


    Долгие годы стандартами для реализации сглаживания были методы MSAA (Multisampling Antialiasing) и SSAA (Supersampling Antialiasing). На самом деле, они и по-прежнему обеспечивают наивысшее качество среди всех современных методов сглаживания. Как мы знаем, алиасинг возникает из-за нехватки сэмплов, как на пространственном (ломаные линии), так и на временном уровне (мерцание), обычно рядом с гранями и областями изображения с высоким/низким контрастом. Для борьбы с ним у нас имеются два способа, которые когда-то были единственными решениями: Supersampling и Multisampling. При суперсэмплинге мы увеличиваем изображение, а затем снижаем его дискретизацию до нужного разрешения. Этот принцип отлично работает, потому что распространяется на все аспекты проблемы. При мультисемплинге используется похожее решение. В этом методе каждый сэмпл дублируется на основание определённого коэффициента. При современных больших разрешениях для этого требуются достаточно мощные графические карты. Поэтому нам нужны новые методы сглаживания, как на пространственном, так и на временном уровнях. Все эти методы используют в своей работе один алгоритм — распознавание краёв. Но они выполняют и другие операции.
    Читать дальше →
  • Reflective Shadow Maps: Часть 1

    • Перевод
    image

    Привет, Хабр! Представляю вашему вниманию перевод статьи «Reflective Shadow Maps» автора Eric Polman.

    Reflective Shadow Maps (RSM) (отражающие карты теней) ― это алгоритм, расширяющий “простые” shadow map. Алгоритм учитывает свет, рассеянный после первого попадания на поверхность (diffuse). Это означает, что кроме прямого освещения, вы получаете непрямое освещение. В данной статье я разберу алгоритм из официальной статьи, чтобы объяснить его по-человечески. Я также кратко расскажу о shadow mapping.
    Читать дальше →
  • Как создавали Spore: интервью с разработчиками

    • Перевод
    image

    7 сентября 2008 года Maxis выпустила одну из самых амбициозных игр своего времени — Spore.

    Однопользовательская «игра в бога» в песочнице была поначалу воспринята со смесью одобрения и критики: многие фанаты были расстроены тем, что она не соответствовала ожиданиям, данным в демо-версиях из доклада Уилла Райта на GDC 2005 и различных показов на E3. Но со временем её признали проектом, ставшим пионером процедурной генерации, который даже спустя десять лет имеет активную базу игроков.

    В процессе разработки команда Maxis разрослась от идеи в голове Уилла Райта до более 100 разработчиков; каждый дизайнер, касавшийся отдельных аспектов Spore, знал, что это нечто потрясающее. Даже если первоначальной концепции придётся в течение работы измениться.

    «Когда я впервые говорил с ним, он хотел, чтобы эта игра была об уравнении Дрейка. О невероятности нашей вселенной», — рассказывает мне по Skype ведущий дизайнер Крис Тротье. «Он хотел, чтобы игроки прошли все эти этапы огромных неудач, чтобы они поняли, насколько невероятно то, что мы появились. Довольно быстро он отказался от этой идеи, но она даёт понять, насколько масштабной задумывалась игра с самого начала».

    Десять лет спустя участники проекта Spore хотят рассказать о сложностях, важных моментах и опыте разработки столь влиятельной игры. В статье представлены цитаты из интервью, проведённых по отдельности с ведущим дизайнером Крис Тротье, техническим художником Кейт Комптон, ведущим дизайнером Стоуном Либранде, инженером ПО Дейвом Кулибой, ведущим инженером геймплея Дэном Московицем и помощником продюсера Гийомом Пьером. (К сожалению, Уилл Райт от нас ускользает...)
    Читать дальше →
  • Искусственный интеллект Horizon Zero Dawn: индивидуальное поведение

    • Перевод
    В первой части исследования ИИ Horizon Zero Dawn я рассказал, как игра создаёт стада управляемых искусственным интеллектом животных-машин. Для этого требуется сложная система иерархии агентов, в которой каждая машина может принимать решения о том, как вести себя, пользуясь планировщиком сети иерархических задач, а групповые агенты совместно назначают машинам роли и обязанности как частям стада. Всё это является частью системы под названием «The Collective», которая поддерживает экосистему всех машин в мире, когда пользователь находится в игре.


    В этой заключительной статье мы подробнее рассмотрим системы, которые отдельные машины могут использовать как часть своего базового поведения. В них включены системы сенсоров, навигация для наземных и летающих машин, а также тесная связь ИИ-поведений с системами анимаций, обеспечивающая каждой машине опасное, но в то же время реалистичное поведение.
    Читать дальше →
  • Искусственный интеллект Horizon Zero Dawn

    • Перевод
    Horizon Zero Dawn находится в списке одних из лучших эксклюзивов для Playstation 4. В роли охотницы Элой игроки путешествуют по постапокалиптическим ландшафтам будущего, чтобы раскрыть тайны её прошлого и узнать о причинах разрушения мира. Упадок человечества привёл к расцвету «машин» — роботов разных форм и размеров, свободно живущих повсюду. Эти животные-роботы умны, скоординированы и смертельно опасны: чтобы выжить, нужно быстро думать, чтобы уничтожить их — тщательно готовиться и планировать.


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

    Предупреждение: в статье присутствуют спойлеры сюжета Horizon Zero Dawn.
    Читать дальше →
  • Виртуальная реальность – параллельная жизнь со своими течениями

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

      В компании я занимала должность QA Engineer-а. А знаете, что значит быть тестировщиком на таких проектах? В первую очередь, это значит выполнять много физических упражнений! Да-да, это тебе не в кресле целый день сидеть. Тут нужно и в самолет забраться, и спутниковый приемник в пустыне установить, и МРТ сделать, и пожар потушить. Причем по кругу много раз. Потому что, когда ты вдруг обнаружил, что в самолете датчики не работают, сообщил об этом разработчикам и отправился в пустыню монтировать сателлит, а там ветер незапланированно стих, и ты забиваешь на эту поломанную пустыню и отправляешься на завод тушить пожар, тебе вдруг говорят «мы починили самолет, проверь, пожалуйста» и принимаются «исправлять ветер в пустыне». И так несколько раз в день.

      Так каково это тестировать виртуальную реальность? Интересно. Нудно. Весело. Страшно утомительно. Все вместе.
      Читать дальше →
    • Внутри Quake: всегда рассматривайте альтернативы

      • Перевод
      image

      Программист Майкл Абраш, в середине 90-х приглашённый Джоном Кармаком для работы над движком первого Quake, написал в процессе разработки серию статей. Это вторая колонка из данной серии. Перевод первой находится здесь.

      Должен признаться: меня достал классический рок. В последний раз я с радостью слушал что-нибудь из Cars или Boston довольно давно, около 20 лет назад. Кроме того, меня никогда особо не привлекали Боб Сигер и Queen, не говоря уже об Элвисе, так что здесь мало что изменилось. Но я понимал, что нечто изменилось, когда мне хотелось переключить радио, услышав Allman Brothers, или Steely Dan, или Pink Floyd, или, господи, прости, Beatles (но только на таких вещах, как «Hello Goodbye» и «I’ll Cry Instead», а не «Ticket to Ride» или «A Day in the Life»; я ещё не зашёл настолько далеко). Долго искать причины этого не пришлось; я слушал одни и те же песни четверть века, и просто от них устал.

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

      Мы говорим о десятилетней девочке, росшей на постоянной диете из старых хитов. Ей нравятся мелодии, легко запоминающиеся песни и хорошие певцы. Ничего из этого не найдёшь, слушая станцию про альтернативный рок. Поэтому неудивительно, что когда я включил радио, она первым делом сказала «Фу!»

      Но вот что меня удивило: послушав какое-то время, она сказала: «Знаешь, папа, а на это на самом деле интересно».

      Это не только намекнуло мне о том, какая музыка будет грохотать по всему дому, когда она станет тинейджером. Её быстрое принятие альтернативного рока (по сравнению с моим длящимся десяток лет увлечением музыкой собственной юности) напомнило мне кое о чём, что легко забывается, когда становишься старше и образ жизни становится устоявшимся. Это напомнило мне, что необходимо сохранять открытость сознания и быть готовым — более того, стремиться — пробовать новые вещи.
      Читать дальше →
      • +30
      • 14,5k
      • 4
    • Динамическая локальная экспозиция

      • Перевод
      Привет, Хабр! Представляю вашему вниманию перевод статьи «Dynamic Local Exposure» автора John Chapman.

      image

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

      Low/High Dynamic Range


      В старые добрые времена (1990-е) игры рендерились непосредственно в отображаемом LDR (узкий динамический диапазон) формате (гамма пространство, 8 бит). Это было просто и дешево, но, с другой стороны, значительно мешало созданию действительно фотореалистичной картинки.

      В настоящее время, особенно с появлением PBR (physically-based rendering), игры рендерятся с гигантским динамическим диапазоном в линейном пространстве с более высокой точностью. С таким движением к фотореализму приходит реальная проблема: как мы можем отобразить HDR изображение в LDR?
      Читать дальше →
      • +21
      • 1,7k
      • 3
    • Lazarus — простая анимация при помощи компонента TImageFragment

      • Tutorial
      Вместо предисловия

      В моей недавней статье Lazarus — пишем компонент для анимации спрайтов я описал процесс создания простого компонента TImageFragment, позволяющего отображать заданный фрагмент изображения.

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

      При таком подходе отдельные кадры анимации в разных проекциях размещаются на одном изображении, а компонент для отображения спрайта показывает только один выбранный фрагмент этого изображения, используя свойства OffsetX и OffsetY (смещение левого верхнего угла фрагмента изображения по горизонтали и по вертикали).

      Множество таких готовых изображений можно найти в Сети — например, вот на этом сайте.
      Читать дальше →
    • Введение в программирование: простой 3D-шутер с нуля за выходные, часть 2

      • Tutorial
      Продолжаем разговор про 3Д шутер за выходные. Если что, то напоминаю, что это вторая половина:


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


      К сожалению, большинство студентов выбирает простые игры типа 2Д платформеров. Я пишу эту статью для того, чтобы показать, что создание иллюзии трёхмерного мира ничуть не сложнее клонирования марио броз.
      Читать дальше →

    Самое читаемое