Видео карты - статьи

         

Камо грядеши, мир трехмерных «иллюзий»?


В самом деле, какое направление сегодня имеет вектор развития рынка графических акселераторов? Определим его исходную и конечную точки, для чего сделаем короткий исторический экскурс. Дело в том, что за последние 6-7 лет классические непрограммируемые ускорители 3D-графики давно перестали играть стимулирующую роль, сменив ее на роль тормозящего фактора. Тогда как более ранний период (1995-1998 годы) оказался более успешным для данной сферы. В те времена, помимо графических «движков», развивались и альтернативные - оперирующие в качестве геометрических примитивов эллипсоидами (Ecstatica от Psygnosis) - или комбинированные - использующие для построения ландшафтов вексельный метод моделирования (серии игр Delta Force, игра Соmanche от Novalogic), а для прорисовки динамических объектов - классический способ рендеринга. Конечно, созданные с применением всех перечисленных технологий миры были далеки от совершенства, однако и пользователю, и разработчику (по сравнению с нынешним днем, с его дефицитом новых идей) предлагалось множество разнообразных программных решений.

После 1998 года в мире игровых приложений воцарилась эра аппаратных средств рендеринга. Долгое время единственным направлением их развития было наращивание вычислительной мощности 3D-акселераторов, пользы от которого было немного. Конечно, детализация в играх выросла, но сам принцип их моделирования остался прежним.

Уже в 2000-2001 годах произошел ряд важных событий, показавших, что эволюция 3D-акселераторов зашла в тупик и вряд ли дальнейшее наращивание вычислительной мощности графических процессоров и сопутствующее увеличение объема видеопамяти смогут вывести индустрию из создавшейся ситуации.

В частности, начало нового тысячелетия ознаменовалось успешным завершением нескольких программных проектов (в том числе Heaven7 от Exceed), которые, пользуясь современными настольными процессорами, могли применить для создания трехмерных сцен алгоритмы трассировки лучей в реальном времени, что прежде из-за высоких вычислительных требований было невозможно.

Но к сожалению, данный метод не получил большого распространения на рынке игровых приложений, ограничившись сферой кинематографа. Дело в том, что он несовместим с концепциями классического рендеринга, алгоритмы которого аппаратно реализованы в современных 3D-акселераторах. А ведь преимуществ у нового метода немало. Он мог бы разрушить рынок современных графических решений, а потому идеология бесконечного наращивания вычислительной мощности графических процессоров должна была рано или поздно видоизмениться.

Однако стараниями резработчиков было найдено альтернативное решение. Предполагалось, что поддержка третьим поколением графических акселераторов (NVIDIA GeForce 3 и ATI Radeon 8500) вершинных и пиксельных шейдеров (специфических программ ассемблерного типа, предлагающих более гибкое управление текстурным фоном) раздвинет границы графических вычислений. Однако большого прорыва внедрение программируемости не принесло, поскольку ассемблерная строка достаточно сложна для написания даже очень простого кода.




Предполагалось, что поддержка третьим поколением графических акселераторов (NVIDIA GeForce 3 и ATI Radeon 8500) вершинных и пиксельных шейдеров раздвинет границы графических вычислений, однако прорыва не случилось.

Новым этапом в развитии программируемости 3D-акселераторов стало появление языков 3D-программирования высокого уровня - NVIDIA Cg (С for Graphics) и Microsoft High Level Shading Language (HLSL).

Что же мы имеем сегодня? Шейдерная революция произошла, но дало ли это какие-либо преимущества? С одной стороны, да. Как уже отмечалось, детализация во многих играх, безусловно, повысилась. Появилась возможность задавать динамику не только центральным объектам кадра, на которые игрок обращает внимание в первую очередь, но и второстепенным. Так, трава во многих играх стала колыхаться под дуновением ветра (один из первых примеров - Unreal Tournament 2003), рябь на воде перестала быть просто визуальным эффектом (тесты Futuremark), а шерсть животных (деморолик ATI) и волосы русалок (деморолик NVIDIA) стали подчиняться вполне реальным физическим законам. И хотя по-настоящему реалистичной графики мы так и не увидели (чего едва ли не клятвенно обещали разработчики), качественный разрыв между демороликами, раскрывающими преимущества новых поколений 3D-акселераторов и, скажем, компьютерной мультипликацией последних лет сильно уменьшился.

Но даже достигнув этих результатов, было бы глупо остановиться. И разработчики не остановились. Так, еще в прошлом поколении своих решений компания NVIDIA включила в продукты поддержку шейдеров версии 3.0. С почти годовым опозданием их поддержку реализовала и ATI. В теории это предоставляет шейдерам (как вершинным, так и пиксельным) возможность динамического управления исполнением команд, то есть истинно динамических условий и ветвлений, как и в полноценных центральных процессорах. Но если в случае вершинных шейдеров картина очевидна (чипы NV3X позволяли использовать динамические ветвления еще в вершинных шейдерах 2.х и, разумеется, в OpenGL), то с пиксельными не все так просто. И на первом месте здесь стоит вопрос производительности. Поэтому, как ни странно, несмотря на добавившиеся «интеллектуальные» возможности, все, как и ранее, будет упираться в пресловутые частоты, пропускные способности и количество конвейеров.


Содержание раздела