DirectX 9+
Вы, наверное, уже обратили внимание, что в обозначении версии DirectX (а также вершинных и пиксельных шейдеров), поддерживаемой ускорителем GeForce FX, имеется «+». Таким образом Nvidia подчеркивает: способности чипа превышают характеристики соответствующих стандартов. В таблицах показаны различия по некоторым параметрам между спецификациями шейдеров 2 и 2+. Radeon 9700 в полной мере реализует DirectX 9, а GeForce 4 Ti — DX 8, а значит, можно сказать, что это также сравнение с конкурентом и предшественником.
Как видите, Nvidia сделала подарок программистам, предложив еще больше свободы при работе с вершинными шейдерами. Здесь надо особо отметить динамическое управление циклами. Благодаря ему можно сказать, что блок обработки шейдеров в GeForce FX достоин называться процессором. Кстати, таких блоков в чипе три (у GeForce 4 Ti их два, у Radeon 9700 — четыре). Скорее всего, связано это со сложностью воплощения в «железе» динамических переходов в шейдере.
Чем динамический переход отличается от заранее прописанного статического? Тем, что переход можно осуществить, исходя из неких данных, полученных в этом же шейдере ранее. Для реализации тех же действий в R300 придется разбить один большой шейдер как минимум на два и передавать эти критические данные из первого во второй. Пусть это и не так трудно, но очень неудобно для разработчиков программных продуктов. Причем можно с легкостью представить себе ситуацию, когда сложность разбиения заставит отказаться от применения некоего эффекта. А это уже неприятно для нас, пользователей.
С вершинными шейдерами вроде бы разобрались. Перейдем к пиксельным. И здесь Nvidia шагнула за рамки спецификаций DirectX 9. Тем не менее, уровень программируемости пиксельных шейдеров все еще недостаточен. Основным минусом является отсутствие возможности управлять потоком команд.
Впрочем, заложенные в чип способности позволяют программистам создавать интересные эффекты уже сейчас. В демо-ролике Nvidia «Time Machine» с помощью пиксельных шейдеров имитируется процесс старения автомобиля (туда и обратно легким движением мыши в реальном масштабе времени). К каждому материалу «прикреплен» свой шейдер, который, меняя различные параметры, заставляет краску облупляться, стекло тускнеть и т. д. Пиксельные конвейеры в GeForce FX по количественным показателям идентичны конвейерам Radeon 9700 — та же формула 8х1.
Так что в плане закраски ни один из чипов не получит преимущества за счет экстенсивности развития. Придется бороться частотами и оптимизационными алгоритмами.
Хотя возможности NV30, очевидно, превышают спецификации DirectX 9, не стоит забывать, что они также превышают и возможности R300. Не исключено, что это и погубит добрые начинания Nvidia.
Создавая софт, разработчики должны побеспокоиться о его совместимости с максимальным числом аппаратных средств, дабы охватить как можно больший круг пользователей. А поскольку код, использующий по максимуму способности GeForce FX, не будет работать на Radeon 9700, то и вероятность появления заметного количества серьезных программ, заточенных под DirectX 9+, невелика. К тому же обратная ситуация вполне допустима — код для чипа ATI будет корректно обработан и GPU Nvidia. Похоже, канадцы и здесь заняли более выгодную позицию.
Впрочем, программистам на OpenGL не привыкать к такой неразберихе. Им уже давно приходится писать два кардинально разных кода. Фирменные OpenGL-расширения канадцев и калифорнийцев знать друг о друге не знают (и, похоже, не желают).
Как бы то ни было, какую-либо реализацию DirectX 9 в играх нам придется ждать около года, а то и двух. Разве что конкуренты в скором времени заполонят рынок высокопроизводительными картами с поддержкой этого API. И при этом по цене до 150 долларов… Кто-нибудь верит в подобное? Я почему-то нет.
Intellisample
Мы уже говорили о важности пропускной способности памяти. Технологии, которые мы сейчас рассмотрим, позволяют ее увеличить. Точнее, физически увеличения не произойдет. Но различные оптимизирующие алгоритмы позволяют более рационально использовать пропускную способность памяти, увеличивая таким образом эффективную пропускную способность.
Самой интересной и, похоже, наиболее эффективной является возможность компрессии информации о цвете. Она занимает заметное пространство в локальной памяти видеокарты, особенно при использовании тройной буферизации. Nvidia заявляет, что использованные алгоритмы позволяют достигнуть сжатия без потерь с коэффициентом 4:1. Вряд ли такого достаточно высокого показателя удалось достигнуть при абсолютной сохранности информации. Скорее всего, происходит все же некая интерполяция. Но хочется верить, что делается это очень аккуратно. По крайней мере, производитель заявляет об отсутствии каких-либо артефактов. Но если реализация и в самом деле столь эффективна, то можно говорить о невиданной до сей поры дешевизне (в плане потерь производительности) применения антиалиасинга. Что ж, запишем себе еще один пункт для придирчивой проверки во время тестирования.
Кстати, об антиалиасинге. Теперь к доступным NV30 режимам сглаживания добавились 6х (только в DirectX-приложениях) и 8х. Несомненно, качество последнего будет очень высоким (хотя, скорее всего, визуально и не намного выше качества 4х). Но вот чего это будет стоить в плане производительности? Может быть, сжатие значений цвета позволит удерживать ее на достойном уровне?
Следующая технология — адаптивные алгоритмы фильтрации — также позволит уменьшить объем передаваемой информации и, несомненно, повлияет на качество изображения. В худшую сторону. Впрочем, Nvidia заявляет, что ухудшение будет незаметным. К тому же применение этой функции оставлено на усмотрение пользователя, так что недовольные качеством смогут вернуться к старым алгоритмам. Суть в том, что мы можем выбирать количество используемых образцов для фильтрации. Возможно, это поможет GeForce FX приблизиться к продуктам ATI, которые издавна славятся высокопроизводительной анизотропией.
Кино заканчивается, не начавшись
Наобещали нам много. Как это воплотится в реальных картах, можно только гадать. Продемонстрированные Nvidia образцы слишком сырые, чтобы судить о чем-либо. Сейчас на видеокартах даже устанавливается внешний чип для вывода на TV-Out — при том, что это встроенная в GeForce FX функция. Видимо, пока ее работа особого энтузиазма не вызывает.
Отгрузка чипов вендорам уже началась или начнется в ближайшее время. Так, например, ASUSTeK и Gainward не отрицают, что работают над сэмплами видеокарт, однако делиться подробностями (или самими сэмплами) упорно отказываются — ходят слухи, что все упирается даже не в редкостную DDR II, которую сейчас способна производить только Samsung Semiconductor, а в сырые
драйверы… Продающийся же с сентября-октября Radeon 9700 Pro со всей своей семьей набирает обороты, оставаясь самым производительным среди доступных решений.
Конечно, ATI не собирается почивать на лаврах. Но даже если NV30 уступит (хотя в это мало кто верит) R300 в быстродействии, новый ускоритель от Nvidia наверняка будет продаваться как горячие пирожки. За него играет вся предыдущая история доминирования на рынке карт с именем GeForce. Да и поклонников у продукции Nvidia предостаточно. ATI здесь пока уступает. Но развитие событий с Radeon 9700/9500 показывает, что мириться с этим канадцы не намерены.
Очень удачный ход в плане будущего соперничества был сделан, когда ATI удалось переманить на свою сторону ведущего программиста id Software Джона Кармака — его будущий «Doom III» будет оптимизирован под Radeon 9700. А это дорогого стоит. Игра обещает задать новые стандарты в визуальном качестве изображения. То, что она войдет в обязательный набор для тестирования «железа», не вызывает сомнений.
Но! Глядя на скриншоты из этого будущего шедевра, с грустью понимаешь, что до фото- или кинореализма изображения еще очень далеко. Так что, господа, «кина не будет»! Фильмов не привезли. Пока.