CryEngine 2 — технология, созданная немецкой компанией Crytek. На момент своего выхода является самым технологически продвинутой и фотореалистичной средой моделирования по сравнению с конкурентами.
Среда моделирования CryEngine 2 предназначена для создания трёхмерных открытых и закрытых локаций, используя интерфейс программирования приложений DirectX 9-й или 10-й версии. В CryEngine 2 присутствуют и усовершенствованы все технологии предшественника, CryEngine, а также присутствует много новых и инновационных графических технологий. CryEngine 2 — полнофункциональный инструментарий для разработки 3D приложений; он включает в себя, помимо графического движка, систему анимации персонажей, физический движок CryPhysics, звуковой движок, искусственный интеллект, редактор уровней Sandbox 2, а также инструмент PolyBump 2. Все компоненты движка являются собственными разработками Crytek. CryEngine 2 поддерживает и активно использует многопоточность в многоядерных процессорах и процессорах, использующих технологию многопоточности (например, технология HyperThreading).
Особенности технологии CryEngine 2
Динамическое освещение и затенение в реальном времени (Real Time Lighting and Dynamic Soft Shadows)
Рендерер CryEngine 2 использует естественно выглядящие источники освещения и создаёт мягкие тени, которые динамически реагируют на движения источников света и преграды между светом и затеняемой поверхностью. Тени являются высокого разрешения, правильными в перспективе, объёмные и с мягкими краями.
Технология затуманивания (Volumetric, Layer and View Distance Fogging)
С помощи технологии затуманивания (англ. fogging) возможно создание облаков, дымки и туманных гряд, которые могут «обволакивать» поверхность земли и реалистично уменьшать видимость и контраст окружающей среды. Данная технология должным образом взаимодействует со светом и тенями, добавляя глубину и размерность ландшафту, уменьшая контраст сцены и ясность для отдалённых ориентиров.
Технология Terrain 2.5D и Окружающие карты преград (Terrain 2.5D Ambient Occlusion Maps)
Графический движок CryEngine 2 первым в мире задействовал технологию Screen Space Ambient Occlusion, которая является усовершенствованным вариантом Ambient occlusion для рендеринга в реальном времени. Данная технология на пиксельном уровне аппроксимирует количество окружающего (заполняющего) света, который падает на статический или динамический объект. Аппроксимация зависит от количества окружающих преград, созданных листвой и другими объектами.
Карты нормалей и параллакс-маппинг (Normal Maps and Parallax Occlusion Maps)
Карты нормалей (Normal Maps) используются, чтобы уменьшить количество полигонов на деталях объектов. Используется алгоритм сжатия текстур 3DC/BC5. CryEngine 2 является первым в мире коммерческим графическим движком, который использует parallax occlusion mapping — продвинутый вариант parallax mapping. Благодаря ему поверхностные текстуры имеют множество деталей, которые нанесены без использования полигонов.
Карты окружения реального времени (Real Time Ambient Maps)
Используется предпросчитывание количества окружающего (заполняющего) света для последующего применения результата к закрытым локациям. Этот метод используется для увеличения качества освещения при применении попиксельного освещения и затенения в реальном времени. Это значит, что данные о яркости и цвете световой позиции будут динамически добавлены для заполнения световой интенсивности, применённой для освещения поверхностей в закрытых пространствах.
Подповерхностное рассеивание (Subsurface Scattering)
Подповерхностное рассеивание моделирует диффузию (распространение) и дифракцию света, прошедшего через прозрачные объекты, такие как лёд и нефрит. Также может использоваться для создание естественно выглядящей кожи и растительности.
Адаптация глаз и Освещение в расширенном динамическом диапазоне (Eye Adaptation & High Dynamic Range (HDR) Lighting)
Технология адаптации глаз используется для того, чтобы смоделировать физиологическую адаптацию человеческого глаза к внезапным или критическим изменениям условий освещения; например, переход из тёмной комнаты на улицу, залитую ярким солнечным светом. Рендеринг в расширенном динамическом диапазоне (HDR) увеличивает реалистичность сцен с критической яркостью и контрастными диапазонами.
Световые лучи и волны (Light Beams & Shafts)
Технология световых лучей и волн (гребней, балок) используется для создания визуально ошеломляющих световых и теневых эффектов, которые возникают при пересечении светового потока с телом или высоко детализированной геометрией. Данная технология отвечает за генерацию эффектов «godray» под водой.
Расширенная шейдерная технология (Advanced Shader Technology)
Система скриптов комбинирует использование текстур и математических функций разными способами для создания оригинальных эффектов, таких как грязь, мокрота, замороженность определённых поверхностей, эффект невидимости. Данные графические эффекты могут быть использованы как отдельно, так и в комбинации с более базовыми шейдерами, отвечающими за металлический блеск и/или прозрачность поверхностей, а также за другие эффекты. Поддерживаются по-пиксельное освещение в реальном времени, смазанные отражения (англ. bumpy reflections), преломление света (англ. refractions), объёмные эффекты жара (англ. volumetric glow effects), анимированные текстуры, прозрачные компьютерные дисплеи, окна, пулевые входные и выходные отверстия. Включено множество оригинальных шейдеров, которые способны полностью раскрыть все преимущества от использования унифицированной шейдерной архитектуры, которая присутствует только в API DirectX 10.
Высококачественная технология трёхмерного океана (High Quality 3D Ocean Technology)
Данная технология динамически модифицирует поверхность океана, основываясь на направлении ветра и волн. Данная технология трёхмерного океана также автоматически генерирует обрезку воды в месте, где океан соприкасается с береговой линией, принимая во внимание контур береговой линии и глубину океана. В то же время каустическая симуляция создаёт реалистический визуальный просмотр с движущимися тенями и подсветкой под водой.
Размытость изображения при движении и глубина резкости (Motion Blur & Depth of Field)
Размытость изображения при движении используется для моделирования визуальных эффектов, которые возникают при наблюдении быстро движущихся объектов (Object Motion Blur— Объектная размытость изображения) или при резких движениях камеры. Размытость может быть применена к определённым объектам (object based motion blur) и/или ко всей сцене (screen based motion blur). Глубина резкости (Depth of Field) используется для для фокусировки глаз наблюдателя на конкретном объекте, в то время как все объекты, находящееся ближе или дальше наблюдаемого, подвергаются размытию, сила которого зависит от их удаления от наблюдаемого объекта.
Особенность управления уровнем детализации ландшафта (Terrain LOD Management Feature)
Технология управления уровнем детализации LOD (Level Of Detail — Уровень детализации), применимая к ландшафту игрового уровня, позволяет оптимально использовать ресурсы центрального процессора и системной (оперативной) памяти. Благодаря этой технологии близкие к камере объекты и ландшафт рендерятся в максимальном качестве, а все дальние объекты и ландшафт отображаются в худшем качестве. Качество дальних объектов и элементов ландшафта зависит от их расстояния до камеры: чем дальше находятся — тем хуже отображаются. Благодаря этой технологии возможно отображения сцены на дальности до 8 километров (для сравнения: в предшественнике CryEngine максимальная дальность — 2 км).
Интерактивная и разрушающаяся окружающая среда (Interactive and Destructible Environments)
Динамическая физика позволяет взаимодействовать на любой произвольный окружающий объект или форму, выборочно уничтожать строения, деревья или другие объекты, а потом взаимодействовать образовавшимися обломками и остатками. Движок использует заранее определённые характеристики разломов или разрушений объектов.
Система анимации
Новая система анимации персонажей (Character Animation System)
CryEngine 2 значительно улучшила, по сравнению с анимационной системой CryEngine 1, анимацию людей, моделей и транспортных средств в реальном времени. Полностью интегрированный редактор персонажей предоставляет предварительный просмотр анимаций внутри редактора Sandbox 2, в то время как анимационный граф позволяет аниматору визуально определять состояние анимации персонажа и допустимые переходы между этими состояниями.
Система индивидуализации персонажей (Character Individualisation System)
Система индивидуализации персонажей предоставляет возможность присоединять к основному объекту готовые заготовки (части), которые могут быть сами анимированы. Также есть возможность присоединять лица персонажей к телу. Можно заменять и перемещать почти все части тела, такие как головы, руки, ноги и т. д. Таким образом, из заготовок можно создать собственный уникальный объект, обладающий уникальной анимацией. Система поддерживает ручную и автоматизированную (с помощью процедур) генерацию готовых примеров (образцов), и потребляет минимум системных ресурсов. Дополнительная система основана на шейдерах, имитирующих грязь, складки одежды, а также включает камуфляжную окраску кожи персонажей.
Параметрическая скелетная анимация (Parametric Skeletal Animation)
Смешивая заданные движения, которые базируются на определяемых пользователем параметрах, возможно получить чувствительный интерактивный контроль над персонажем с фокусировкой на правдоподобности и способности автоматически и естественно адаптироваться к изменению состояния игровой среды. Это позволяет персонажу передвигаться с различной скоростью, двигаться в гору или с горы, следовать по гладко или круто изменяющимся путям, а также изменять стиль передвижения.
Процедурное деформирование движения (Procedural Motion Warping)
Процедурные алгоритмы, такие как CCD-IK, аналитический IK, основанный на примерах IK или физическая симуляция, используются для создания заранее проработанных анимаций. Все процедурные методы имеют в основе то, что компьютер пошагово следует алгоритмам и генерирует искусственные движения. Для избежания типичного компьютером сгенерированного изображения при комбинировании анимации захвата движения и искусственной анимации; движок использует такую методику деформирования, которая может сохранить стиль и состояние основного (базового) движения, несмотря на трансформации, которые накладывают ограничения.
Высококачественное сжатие анимации (High Quality Animation Compression)
Используя адаптивную технологию сжатия ключевого кадра, CryEngine 2 может корректировать уровень сжатия, чтобы соответствовать той точности, которая нужна для любой данной анимации. Благодаря компрессии, которая незначительно искажает точность движения, стало возможным освободить по крайней мере 90 % ОЗУ.