Вот одна статейка на тему
Графика в Half-Life 2. То, чего нет, хотя могло бы быть...
17:52 29.12.2004
Вступление
Source Engine поддерживает практически все виды современных игровых спецэффектов. В Half-Life 2 есть шейдеры, состоящие из
90 команд кода.
К примеру, в том же Far Cry самый сложный шейдер состоит из
50 команд.
Однако, если критически взглянуть на графику в Half-Life 2, создается впечатление, что это графика годовалой давности. На самом деле, это так и есть, ведь если сравнить демо с E3 2003 и графику в игре, то мы видим практически идентичную картинку. По заявлениям самой Valve, последние 9 месяцев компания занималась доведением до ума системы распространения контента
Steam. Естественно, в игру в это время тоже вносились коррективы, но ничего радикального в графическом движке не менялось.
Поскольку в течение большей части разработки игры основным API был DirectX 8, можно предположить, что более сложные эффекты DirectX 9 были добавлены уже после того, как графический движок принял свои окончательные очертания. Если сравнить картинку в игре под DirectX 8.1 с картинкой под DirectX 9.0, можно заметить лишь незначительные отличия в графике (плавные границы воды, улучшенный bump-mapping на некоторых моделях и т.д.)
Итак, рассмотрим сильные и слабые стороны Half-Life 2 в сравнении с
Doom 3 (эта игра выбрана, т.к. в ней реализованы практически все виды эффектов, включая динамические тени, которых так не хватает Half-Life 2).
Bump mapping
В Half-Life 2 широко применяется
bump mapping, в основном для создания эффекта рельефности на стенах, скалах и других ровных поверхностях.
Реализовано все отлично - обсыпающаяся известка, шершавые камни и "шкуры" некоторых моделей - все выглядит убедительно.
Но при этом, для моделей персонажей этот эффект не используется.
В процессе разработки Doom 3 создавалось две модели - одна игровая, низкополигональная, а вторая - со всеми деталями, высокополигональная. С высокополигональной модели снимались
карты нормалей (normal maps), которые затем накладывались на низкополигональную модель, придавая ей тем самым ощущение высокой детализации:
Модель персонажа в Doom 3 с использованием bump mapping'a
Как видите, при довольно низкой полигональности, модель выглядит вполне детальной, каждый винтик кажется объемным.
А теперь посмотрим на модель из Half-Life 2:
Модель персонажа в Half-Life 2 без использования bump mapping'a
Даже при большей полигональности и более четких текстурах, эта модель проигрывает предыдущей в визуальном плане. Карманы кажутся нарисованными, складкам на одежде не хватает объема.
При использовании bump mapping'a эта модель бы выглядела намного лучше. Вкупе со сложной мимикой, которой так знаменит движок Source, все это изрядно придало бы персонажу реализма и "человечности".
Однако, в Valve решили, что и того что есть хватит.
Все это выглядит еще более странно, учитывая тот факт, что на моделях муравьиных львов, к примеру, используется bump mapping, что придает их хитину очень реалистичный вид. Более того, bump mapping в Half-Life 2 не используется только на моделях людей (где он был бы очень уместен).
Очень странное решение, объяснить которое можно тем, что модели персонажей создавались еще до начала применения bump mapping'a в игровой индустрии.
Specular mapping
Specular maps (карты отражений) - одно из сильных мест движка Source. Именно они создают большую часть графического великолепия Half-Life 2. Однако, так же, как и bump mapping, они применяются не везде.
Лучше всего рассматривать использование Specular mapping на моделях оружия:
Сравнение моделей оружия в Half-Life 2 и Doom 3
Несмотря на то, что модель самого дробовика в Half-Life 2 отражает окружающий мир, рука игрока выглядит просто бревном. В Doom 3 и рука, и модель оружия сделаны с использованием bump mapping и specular mapping, за счет чего все выглядит довольно реалистично и объемно. Рука вообще выше всяких похвал.
Однако, на других моделях оружия в Half-Life 2 specular mapping используется и на руке, что придает резиновой перчатке характерный блеск. Например, модель .357 Magnum просто великолепна: