чать 1
В последнее время этот хорошо известный различным менеджерам и прочим
царям совет предстал перед обычными покупателями в новом свете: шутка ли,
стало модно дробить рынок на множество ниш, разобраться в которых не под
силу не то, что простому покупателю или скромному писателю обзоров, но,
порой, и самим маркетологам производящих все эти нишевые товары компаний.
Пресс-релизы последних зачастую не несут никакого четкого послания, куда именно нацелен новый продукт, и несчастные писатели обзоров вынуждены самостоятельно придумывать предполагаемую аудиторию для железки А и железки Б. Приступим. Создав новое семейство Ti (Titanium), NVIDIA несомненно преследовала сразу несколько целей. Первая из них - ответ на весьма достойную пару от ATI -Radeon 8500/7500, роды которой несколько затянулись и все еще не могут разрешиться окончательно, чтобы показать конкретные цифры производительности и вес младенцев. Ситуация, надо отметить, досадная: бедные маркетологи NVIDIA вынуждены ждать конкретных финальных цифр по Radeon второго поколения, дабы решить, что, в какие ниши и по каким ценам предлагать на рынок. Но цифр все нет и нет, а акционеры и руководство компании уже вспомнили о пресловутом шестимесячном сроке. Работать в такой обстановке не представляется возможным, и вся надежда остается только на "секретное оружие Pейха" новые драйверы. Которые мы и получили, вероятно, как заполнение неловкой паузы, в течение которой ATI и NVIDIA стремятся пропустить друг друга в рыночную дверь осеннего сезона продаж вперед себя.
Выпускать NV25 или NV17, персональных киллеров Radeon 8500 и 7500 соответственно, до начала массовых продаж последних неблагоразумно. Но и упреждающий удар нанести было бы неплохо. Сия дилемма была решена достаточно просто и в то же время красиво: рынку предложено сразу три несуществующих чипа - GeForce2 Ti, GeForce3 Ti200 и GeForce3 Ti500.
- GeForce2 Ti - все тот же, знакомый по GeForce2 Ultra чип (NV15A, 0.18 мкм, номинальная частота ядра 250 МГц), но в комплекте с более медленной, 200 (400) МГц DDR памятью. Очевидно, что себестоимость этого чипа не превышает оную для "рядового" GeForce2 Pro (NV15), и он призван заменить последний, предложив чуть более высокую производительность за те же деньги и заняв рыночную позицию несколько "ниже" Radeon 7500. Очевидно также, что вследствие существенной зависимости производительности чипов из семейства GeForce2 от пропускной полосы памяти, прирост производительности будет заметен только в небольших разрешениях и играх (тестах) с "тяжелой" геометрией.
- GeForce3 Ti200 - "заторможенный" GeForce3 (NV20, 0.15 мкм) с частотой ядра 175 МГц и памяти 200 (400) МГц. Ясно, что цена карт на базе этого GPU будет ниже нынешней цены GeForce3, и он нацелен на прямую конкуренцию с Radeon 7500, причем будет занимать рыночную позицию немного "выше" последнего. Разумеется, главный плюс этого продукта - "Берите DirectX 8.0 за цену DirectX 7.0 у конкурентов".
- GeForce3 Ti500 - новая топовая модель семейства GeForce3, на основе хорошо знакомого старого степпинга NV20 (A5), производство которого уже хорошо отлажено, и имеется приемлемый выход чипов, работающих на более высоких частотах - 240 МГц ядро и 250 (500) МГц DDR память. Разумеется, этот набор позиционируется туда же, куда и топ-модель конкурентов, и призван напрямую соперничать с Radeon 8500.
Несомненно, просто выпускать карты с измененной сеткой частот для такой фирмы, как NVIDIA, - (как бы это вернее сформулировать:) - "несолидно". Посему выпуск сопровождается тремя достаточно громкими заявлениями.
Заявление первое - поддержка DirectX 8.1
Тут необходимо сразу расставить точки над "Ё". Это совершенно не тот DirectX 8.1, о котором говорит ATI :-). Ну а если серьезнее, то NVIDIA просто добилась от Microsoft признания пиксельных шейдеров версий 1.2 и 1.3 достаточными для заявления о совместимости с DirectX 8.1. И если Radeon 8500 поддерживает действительно существенно видоизмененные и качественно расширенные пиксельные шейдеры (бОльшая длина кода шейдера, много новых команд, новые возможности по произвольной выборке значений из текстур и т.д.), то в случае продуктов NVIDIA речь пока идет лишь о незначительных изменениях (добавлено несколько новых команд, число регистров и длина шейдеров остались прежними). Поэтому стоит четко различать "тот" и "этот" DirectX 8.1, оперируя конкретными версиями шейдеров, а не общими словами о совместимости с 8.1 версией API. Более того, в текущих драйверах (на момент написания статьи - 21.85) пиксельные шейдеры по-прежнему остаются версии 1.1.
Ждем! По большому счету, есть подозрения, что шейдеры версий 1.2 и 1.3 мы увидим только в NV25 и NV17. Насчет слухов о грядущей поддержке NV25 фирменных шейдеров Radeon 8500 (1.4) - подобный поворот событий маловероятен. Такая поддержка потребовала бы существенной переделки всего комбинационного конвейера и системы выборки значений текстур, а на это у NVIDIA уже совершенно нет времени, ведь столь существенная переделка чипа способна задержать его выход более чем на полгода.
Заявление второе - поддержка объемных (3D) текстур
Здесь NVIDIA выглядит более пристойно, хотя и наличествует одно "но". Полностью поддержка 3D-текстур, о которой далее пойдет речь, реализована только для чипов ревизии А05. Старые карты (образцы карт на базе NV20 ревизии А02 и первые продукты на базе А03) в приложениях DirectX объемные текстуры не поддерживают. Они остается заблокированными по неизвестной причине (даже программы из SDK в упор не видят 3D текстур на ранних ревизиях NV20), хотя следы их присутствия в D3DCAPS совершенно очевидны. Судя по всему, была обнаружена какая-то ошибка в чипе, и если в OpenGL, который пропускает через себя все данные, создавая списки запросов к ускорителю на основе вызовов API, она поддалась устранению на уровне драйверов, то в Direct3D, где большинство структур данных исполняется чипом напрямую, это осталось невозможным. В отличие от ATI, которая худо-бедно, но имеет поддержку 3D-текстур (еще со времен первого Radeon) как в Direct3D, так и в OpenGL драйверах. Впрочем этот аспект нельзя считать серъезным недостатком, т.к. карты на базе старых ревизий чипа продавались в очень ограниченных колличествах, удивляет только отсутствие официальной информации по этому поводу.
Однако надо отдать должное NVIDIA - объемные текстуры реализованы существенно лучше, нежели в случае первого Radeon. Поддерживаются истинно сжатые (по всем трем измерениям, с коэффициентом сжатия 1:4 и 1:8) форматы текстур, мип-мэппинг объемных текстур и их процедурная генерация, а также использование их как 3D или даже 4D параметризованных таблиц для расчета каких-либо эффектов. Сжатие просто необходимо в случае объемных текстур - одна 256х256х256 текстура спокойно занимает 64Мб в несжатом виде, что, понятно, совершенно неприемлемо. Использование сжатия позволяет сократить ее объем до 8Мб. Но даже в этом случае нам предстоит только мечтать о сценах, где множество объектов имеют собственные 3D-текстуры - пока размеры локальной памяти ускорителей позволяют нам использовать лишь несколько объемных текстур для создания впечатляющих спецэффектов, таких как истинно объемный туман или сложное освещение.
Мип-мэппинг также позволяет снизить объем данных (уменьшая его по мере удаления от объекта) и, кроме того, повысить визуальное качество изображения объектов с 3D-текстурами.
Процедурные текстуры позволяют генерировать данные на лету, по какой-либо формуле, которая, впрочем, пока вычисляется центральным процессором системы. Такой подход позволителен для различных спецэффектов с быстро меняющимися объемными текстурами, но вряд ли оправдан как мера для экономии памяти в случае большого числа различных объектов с 3D-текстурами - производительность будет ниже всякой критики.
На сегодня есть чуть ли не единственное игровое приложение, использующее 3D-текстуры - DroneZ:
Это довольно примитивная по сюжету игра (аркада), однако она просто изобилует спецэффектами и использует все последние новации, доступные в OpenGL (в том числе и 3D-текстуры):
Впрочем, есть несколько неожиданный аспект применения объемных текстур - а именно, Imposters (однозначно перевести не берусь :-). Так именуются плоские спрайты, которые обычно быстро отрисовываются с использованием прямоугольных 2D-текстур (за счет того, что имеют константное значение Z и не требуют поточечной интерполяции параметров). Подобные спрайты применяются для оптимизации вывода множества одинаковых небольших объектов, например, систем частиц.
Использование для них 3D-текстур открывает новые перспективы - мы можем анимировать эти объекты, например, в зависимости от позиции воображаемого источника света. Если использовать набор заранее просчитанных изображений, то можно создать иллюзию огромного числа истинно трехмерных объектов, выводимых с фантастической скоростью - ведь в действительности это всего лишь двумерные спрайты.
Итак, подведем итог: объемные текстуры остаются пока достаточно ресурсоемкой игрушкой, реально применимой только для создания спецэффектов. Их реализация в чипах семейства GeForce3 достойна всяческой похвалы, но может быть задействована полноценно только начиная с NV20 ревизии А05.
Заявление третье - поддержка Windows XP