Игры и консоли 

Unreal Engine 3.0

версия для печати послать другу 0
|| Содержание статьи

Показать одной страницей

02.10.2004 13:45 Автор: TECHLABS Team

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

Unreal Engine 3.0

Размышлять над этим, конечно, интересно и полезно, но вы, прочитав заглавие статьи, скажете, что заглянули на эту страницу не за этим. Сегодня мы рассмотрим в подробностях новое творение легенды игростроения компании Epic Games, движок Unreal 3.0.

Немного истории

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

А возникло все это в далеком уже 1996 году, когда богоподобный Джон Кармак и компания id Software являют миру первую по-настоящему трехмерную игру – Quake. Предыдущие игры компании Doom и Doom 2 сразу отходят на второй план. А новое детище id Software обретает широкий круг поклонников и заслуженно становится обладателем звания “Игра года” по версии многих изданий. А потом появляется Quake 2, который, мы надеемся, вы помните.

Почти одновременно с выходом второй части Quake свое шествие по планете начинает Unreal, шутер от конкурентов id Software, компании Epic Games (тогда она называлась Epic MegaGames). В это время и наступила "холодная война" между id и Epic. Движок Q2 мог похвастаться таким параметром, как масштабируемость, а творение Epic предлагало гораздо более красочную картинку и отменную реализацию огромных открытых пространств (коими в Q2 даже не пахло), но с большими системными требованиями.

Эта конкурентная борьба продолжалась вплоть до выхода Quake 3, который по всем параметрам заткнул за пояс безнадежно устаревший к тому моменту Unreal. Однако доблестная Epic Games и не думала сдаваться – спустя некоторое время выходит Unreal Tournament, который вновь выравнивает счет. На протяжении нескольких лет не умолкали споры о том, чей движок лучше, но, как нам показалось, между UT и Q3 были такие же различия, как между первым Unreal и вторым Quake.

Затем id Software полностью сосредотачивается на разработке Doom 3. Epic в то время стахановскими темпами проводит работы над Unreal Tournament 2003. Игра выходит, а ее создатели выбиваются в лидеры этой сумасшедшей гонки технологий, id продолжает работать над Doom 3, а Epic закрепляет свой успех выпуском Unreal Tournament 2004.

Что было дальше, вы сами прекрасно знаете: выходит Doom 3, который тут же принимается за эталон игровой графики. Но и сейчас Epic не думает сдаваться и ведет активную разработку третьей версии своего движка Unreal, который так и называется Unreal Engine 3.0., и вновь призван заткнуть за пояс последнее творение Джона Кармака. Однако на горизонте маячит Half Life 2 со своим движком Source, но его мы сегодня, так и быть, не тронем.

Все пресс-релизы в первую очередь обращали внимание на то, что сей движитель станет первым, полностью поддерживающим возможности DirectX 9.0 и реализующим Shader Model третьей версии. Однако список возможностей UE3 на этом не заканчивается. В этой статье мы подробно остановимся на каждом элементе нового движка. Итак, поехали!..

Графика

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

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

Основные модели персонажей (или модели основных персонажей?..) создаются с использованием сразу двух мешей. Первый меш (основной) состоит из нескольких (от 2 до 7) тысяч полигонов, в то время как второй (детализированный) насчитывает несколько миллионов. Специальное встроенное приложение трассирует лучи на основе второго меша, а затем генерирует карту нормалей ("normal map"), которая накладывается на основной меш при рендеринге. В результате этого модели, состоящие из нескольких тысяч треугольников выглядят так, как составленные из нескольких миллионов полигонов. При этом их обработка не требует сверхъестественных вычислительных мощностей. Для того, чтобы читатели поняли, как работает технология карт нормалей необходимо немного углубиться в технические детали.


Unreal Engine 3.0  Unreal Engine 3.0


Сегодняшние трехмерные объекты состоят из некоторого числа треугольников, на которые "натянуты" 2D текстуры. Реалистичные изображения с множеством деталей и неровностей можно получить весьма просто: нужно всего лишь увеличить количество используемых полигонов. Переходы между границами трехмерного объекта станут более плавными, мелкие детали выделятся и т.д. Все достаточно просто – знай повышай себе количество полигонов да любуйся на все улучающийся трехмерный объект. Но на самом деле, дополнительные полигоны обойдутся при рендеринге графическому процессору неслабой нагрузкой, что неминуемо скажется на скоростных показателях рендеринга сцены, иными словами, значение fps будет явно прихрамывать. Именно для того, чтобы решить вопрос с приданием изображению наилучшего визуального вида с минимально-возможными потерями ресурсов графического процессора и памяти, были разработаны различные технологии имитации рельефности, одной из которых  карты нормалей, по сути, и являются.


Unreal Engine 3.0


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

Что же требуется от разработчиков, чтобы задействовать эту технологию? Как оказалось, не очень много =):

  1. Создается исходная малополигональная модель трехмерного объекта
  2. Создается высокополигональная модель того же трехмерного объекта
  3. Рассчитывается разница между первой и второй моделью и на основе полученных данных формируется карта нормалей, которая и сможет затем восстановить первоначальный вид высокополигонального объекта, не производя его рендеринг, а используя карту нормалей и малополигональный трехмерный объект.    

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


Unreal Engine 3.0  Unreal Engine 3.0

Unreal Engine 3.0


Для наглядности мы приводим изображения моделей из первой и третьей версий UE. Вот вам реальный пример того, каких высот можно достигнуть при использовании normal maps.


Unreal Engine 3.0  Unreal Engine 3.0


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


Unreal Engine 3.0


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


Unreal Engine 3.0  Unreal Engine 3.0


Конвейер рендеринга  работать с 64-битным цветом расширенного динамического диапазона (High Dynamic Range). Линейное цветовое пространство с корректным коэффициентом контрастности позволяет достичь идеальной цветовой точности при поддержке широкого спектра пост-процессинговых эффектов вроде цветовых акцентов, световых корон и изменения глубины резкости.

В качестве примера можно привести процесс освещения HDR Lighting, посредством которого реализуется ореол у светящихся объектов. Говоря простым языком, ярко освещенные поверхности блестят так, что вокруг них создается отраженное свечение.


Unreal Engine 3.0


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

|| Комментарии на форуме 0
Оставить комментарий