Индустрию производства 3D акселераторов можно в чём-то сравнить с киноиндустрией. Почему? Потому что и в кинобизнесе и в производстве чипов и карт для персоналок есть устоявшаяся тенденция выпускать продолжения, но, к сожалению, мир кино не настолько прогнозируем, и от новой части фильма нельзя ожидать, что она будет не то что лучше, а хотя бы такой же хорошей как и предыдущая часть. В мире компьютеров всё вполне понятно, ну не может следующий продукт быть хуже предыдущего.
Вот возьмём например Pentium III - во-первых, он быстрее Pentium II, во-вторых у него такая же и более высокая частота, в третьих у него есть дополнительные возможности в виде SSE расширения, и даже охлаждение его продумано лучше. Если вы не переносите Intel, то знайте, что совершенно та же ситуация и с AMD-шным K6-3, которые быстрее K6-2 и выпускаются с бОльшими частотами. Но больше всего принцип улучшения использован в индустрии 3D технологий. Акселераторы находятся на пике популярности, основная причина которой - трёхмерные игры, которые стали чем то культовым у современного пользователя. Вспомним ситуацию около двух лет назад - впервые широкие народные массы Москвы и области узнали что такое 3dfx на выставке Comtek'97, где Intel показывал свой супер процессор Pentium MMX, используя для демонстрации 3D возможностей оного игру POD, от известной команды Ubi Soft. Кроме процессора в персоналке, тянувшей игру стояла банальная S3-шная карточка, и всё было бы хорошо, кабы не страшный отрыв в производительности от продукции AMD. И когда я стал приглядываться к списку железа, то обнаружил в самом низу крошечную приписку - Diamond Monster 3D - 4Mb. Этим то и объяснялась огромная скорость и красивость идущей игрушки. Это было всего немногим более 800 дней назад. Сейчас преобрести персоналку без акселератора так же сложно как купить новый "ушастый" запорожец. Продавцы в любом магазине из кожи вон вылезут, лишь бы доказать, что вам обязательно нужен этот 3D акселератор... При этом каждый новый представитель семейства этих плат обязательно существенно лучше предыдущего. Даже слабый во всех отношениях Banshee всеми считался по определению более крутым наворотом чем тогдашний фаворит Voodoo2. Все упорно не замечали, что у него всего один текстурный процессор, те же 8Мб текстурной памяти что на Voodoo2 и весь его плюс в том, что у него неплохая 2D часть и возможность работать в 1024 и выше в 3D, что на самом деле совершенно не было нужно большинству достаточно умных игроков, не подумайте что это я такой умный, вы можете прочесть мнение известнейшего quake-ра Трэша в тексте о оптимизации Quake 3, там он определенно и явно советует на Voodoo3 выставлять максимум в 800x600, и поверьте, V3 гораздо быстрее Banshee, но кстати отличается от того всего то более быстрой памятью, наличием второго конвейера для мультитекстурирования да некоторыми косметическими изменениями. А текстурной памяти у него по прежнему 8Мб. Давайте вернёмся на год-полтора назад. Если вы в то время увлекались 3D, то вспомните, что основными темами обсуждения были мультитекстурирование, альфа смешение да трилинейная фильтрация. Крутыми считались карты, которые могли поддерживать все эти возможности. А теперь найдите хоть один современный акселератор, который не поддерживает эти функции. Да даже не надо вспоминать современные карты, та эра закончилась с появлением Voodoo2, Riva128 (NV3), I740 и других чипов тех времён. Что муссируется в прессе сейчас? Большие текстуры, сжатие текстур, рельефное текстурирование, да изредка экзотические виды фильтрации. Ну и что вы думаете будет через год? То-то же...
Карты TNT2 и Voodoo3, разговоры о которых не ведут только ленивые, сегодня кажутся невероятно быстрыми, но всё же эта фаза развития 3D акселераторов является промежуточной, и вскоре должно появиться новое поколение. Конечно производители чипов и карт молчат так, как будто воды в рот набрали, складывается впечатление что они все подались в партизаны и не выдадут тайны ни под какими пытками. Но нам и не обязательно с ними разговаривать, мы сами умные и немного знаем о всей индустрии в целом, а значит можем делать некоторые прогнозы.
Все эти чипы "нового поколения", статьи о которых мы видим уже в кошмарах, всего лишь произведены с использованием более тонких технологий и имеют немного бОльшие тактовые частоты. Можете не согласиться, но я считаю что nVIdia TNT2 это практически 0.25 вариант TNT, с небольшими "модными"доработками вроде AGP4x да поддержкой бОльшего количества памяти, о чем уже устал говорить. Фанаты Voodoo3 - не думайте что я на вашей стороне, ведь 3dfx Voodoo3 в той же самой ситуации, как я уже говорил, это тот же Banshee с дополнительным текстурным процессором о чем ясно гласил плакат на стенде Comdex еще в ноябре 1998 года, потом они эту схемку уже нигде не домострировали. Конечно обе эти архитектуры сегодня имеют наибольшую производительность, но ни одна не использовала каких либо серьёзных нововведений.
И всё же, не все выпускают промежуточные продукты во время работы над следующим крутым изделием. Существует несколько производителей, добавляющих возможности своим новым изделиям, вместо простого увеличения производительности, и многие из них демонстрируют действительно инновационные технологии, некоторые из которых точно будут поддержаны большинством производителей 3D чипов.
Что нового?
Вот например S3 и 3DLabs активно продвигают свои форматы сжатия текстур, уменьшающие требования к количеству памяти, необходимому для создания красивых и детализированных сцен. Формат от S3, именуемый S3 Texture Compression (S3TC) использует собственный (теперь интергированный в D3D) формат для сжатия больших текстур со степенью до 6:1. Из-за более эффективной системы работы игры вроде Unreal Tournament теоретически будут идти быстрее при использовании качественных сжатых текстур, нежели менее качественных но не сжатых, по крайней мере считается, что сегодня так должно быть на Savage3D/Savage4. Чем эта технология подкупает, так это невероятным количеством деталей, которые могут быть созданы при её использовании. Теперь полноцветные фотореалистичные текстуры запросто могут быть использованы вместо стандартных обычных текстур, то есть их использование практически бесплатно. Как всегда нашлись люди, которые не то совершенно не разбираются в вопросе, не то пытаются оправдать свою лень приводя совершенно странные доводы.
Думаете, начав говорить о S3 я забыл о Permedia3? Как бы не так... 3DLabs тоже создал интереснейшую систему, используемую сейчас процессором Permedia3 Create! Метод 3DLabs, позволяет работать с сотнями мегабайт текстур в одной сцене и называется Virtual Textures. VT позволяет чипу Permedia 3 Create! использовать локальную память как кэш для текстур, хранящихся в оперативной памяти. Вместо закачки всего массива данных за раз, VT позволяет загружать только необходимый кусок текстуры. Аппаратная часть бьёт текстуры на маленькие кусочки и в момент вызова текстуры Permedia3 анализирует какую её часть мы видим (то есть что не отсечено другим обьектом), и загружает только действительно необходимое.
Кроме сжатия текстур недавно появилась новая технология рельефного текстурирования. Я говорю новая, так как сама технология уже стара, и даже была ранее аппаратно реализована, но теперь принцип её работы немного изменили и стало гораздо легче ею пользоваться. Ввела новую систему знаменитая Matrox, карты которой до недавнего времени считались наиболее качественными в 2D. Сегодня благодаря стараниям специалиста фирмы Ф-Центр Владимира Вискова мне было наглядно продемонстрировано, что карта TNT2 имеет гораздо более качественную 2D часть. Как всегда всё зависит от производителя, так ASUS например замыливает всё уже при 1024, то же касается карт LeadTek, а вот качество карт Creative, причём не только TNT2 но и TNT1 гораздо выше. В этом я убедился посмотрев качество 2D при 1280x1024. Давно мне не приходилось менять своё мнение настолько серьёзно. Но всё же давайте вернёмся к нашим баранам. Мы говорили об одном из самых больших нововведений Matrox в их новом процессоре G400 - аппаратной акселерация рельефного текстурирования с использованием шаблонов окружения. Перед появлением G400 рельефное текстурирование уже поддерживалось другими акселераторами, но по мнению специалистов Rage, высказанному в их интервью новый метод гораздо проще использовать и у него нет некоторых чисто технических недостатков, которые, к сожалению, присутствовали в более ранних версиях. Как я уже сказал, матроксовское текстурирование не изменило сам принцип, но показало миру насколько эффективно может быть использована и аппаратно реализована технология. Мало того что при использовании их рельефного текстурирования мы получаем возможность создавать анимацию у рельефа и благодаря этому получать невероятное количество дополнительных деталей, но эта технология ещё и не требует слишком много ресурсов для работы. Улучшенная система рельефного текстурирования уже используется несколькими играми, и продемострированная визуальная разница, может вполне побудить и других разработчиков так же начать поддерживать её.
А как вы собственно решаете, что действительно есть новшество? Ни у кого нет дара предсказывать что будет необходимо рынку через всего лишь год, и поэтому возникает интересная ситуация, когда некоторые компании финансируют сразу несколько параллельных комманд программистов, некоторые из которых мыслят на 3-4 поколения акселераторов вперёд. Конечно информации о следующих поколениях чипов мало и сегодня нам остаётся изучать 3D карты и пытаться понять, что нового может появится в будущем...
Бытует мнение, что супер компьютеры например от SGI хороши для чего угодно. Это не совсем так, но приводить аргументы сейчас не стоит, поскольку не стоит раздувать статью до размеров хорошей книги. А ведь компании - производители рабочих станций типа SGI, Sun, HP да и некоторые другие, выше интересов 3dfx и nVidia, они играют на другом рынке, набирают свой собственный опыт и имеют огромный оборот и исследовательский бюджет. Так же хорошо известно, что то, о чём только мечтают инженеры 3dfx и nVidia, супер мощные и сверх дорогие 3D подсистемы от SGI уже давно могут делать, и именно поэтому можно делать какие-то прогнозы на будущее, то есть пытаться понять, что может быть встроено в следующих поколениях акселераторов для персональных компьютерах. Можно было бы использовать те же технологии, что и в рабочих станциях, но требуемые решения должны стать существенно дешевле, технологичней и востребованней, чтобы их можно было действительно ставить в персоналки. Не будем сильно волноваться и без лишнего шума посмотрим на возможные варианты развития 3D рынка.
Текстуры?
Например, насколько больше текстур нам скоро придётся использовать?
Прежде всего попытаюсь дать краткое описание. Для того, чтобы картинка в игре была красивой нужны эффекты, что создаётся использованием нескольких технологий. Самая известная из них - наложение текстур. Если обьяснять на пальцах, что это такое, то можно сказать, что наложение текстур происходит после превращения математической формулы в примитивную модель. После этого акселератор накладываем текстуру для реалистичности. Затем придётся использовать ещё несколько технологий, последовательно добиваясь дополнительного качества, ну например мультитекстурирование. Простой пример где это нужно - карта освещения, которая придаёт разным пикселам разный уровень яркости, в сущности позволяя создать эффекты затенённых или наоборот освещённых пространств. Добавьте к этому шаблоны рельефности, шаблоны окружения, эффекты бликов и отражения, плюс некоторые дополнительные возможности, и сегодняшних "двух текстур за проход" уже явно недостаточно. Когда вы используете одновременно карту освещения и текстуру, то для использования всего лишь пары других шаблонов, да даже просто применения трилинейной фильтрации уже нужен дополнительный проход акселератора.
Для тех, кто забыл - технология, описанная выше называется мультитекстурированием. Один проход тратится на наложение текстуры, другой на наложение шаблона освещения, ещё один для детализации текстуры, потом ещё на прозрачность и т.д. И финальная сцена не будет показана до тех пор, пока все не будет закончено. И это же повторяется для следующего кадра, и для следующего за ним, и так далее. Многочисленные проходы по одной сцене кажутся наиболее быстрым и наиболее эффективным решением. На самом деле это может приводить к непредсказуемым скоростям отрисовки, особенно в высокодетализированных сценах появляющихся и исчезающих из поля зрения каждые несколько секунд. Некоторые сложные сцены в современных играх могут требовать до 6 проходов за такт, чтобы не быть голословным, напомню что простое небо в Unreal требует уже 4 прохода. Понятно какой это наносит удар по производительности.
Давайте теперь попытаемся найти узкое место у акселераторов. Одна из причин, больно ударивших по 3dfx с выходом Voodoo3 - нужда в большей детализации текстур следующего поколения игр. Cкорость акселераторов будет только возрастать, но попытайтесь понять, что разницу между подобными друг другу продуктами скоро уже не измерить в "лошадиных силах".. Один из распространённых мифов, в особенности распускаемый сейчас 3dfx (правда неявно) - текстурные процессоры, способные обрабатывать операции мультитекстурирования на гораздо более высоком уровне чем сегодня. В то время, как сегодня 3D чипы умеют накладывать максимум 2 текстуры за проход, следующие поколения будут вероятно накладывать 4, 6 или даже 8 текстур за то же время. Это не только сработает на программах, которые сегодня требуют 2 и более проходов на кадр, но так же позволит использовать некоторые дополнительныйе возможности "бесплатно". Если вы не поняли, что это значит, то приведу в пример мультитекстурирование Voodoo2, которое позволяет иметь "бесплатную" трилинейную фильтрацию. Наложение 4-8 текстур за такт может сделать то же самое с картами окружения, отражениями, более детализированными фильтрами освещения и тененаложения, ну и всё в том же духе. Ещё одна выгода мультитекстурирования - оно не является узким местом геометрической обработки. Это значит что в зависимости от ситуации, дополнительные проходы могут очень сильно снизить производительность даже невероятно мощного геометрического ядра.
Сами не раз читали, что одна из самых распространённых фраз при описании 3D производительности - "ограниченность мощью процессора". Это описывает ситуацию, когда 3D процессор ожидает выходящих из центрального процессора обработанных данных. В большинстве случаев, сегодня, центральный процессор отвечает за критические 3D задачи по трансформации треугольников и рассчёту их освещённости, и зачастую, именно это и является сдерживающим и узким местом сегодняшних сверх скоростных карт TNT2 и Voodoo3. Центральный процессор просто не может достаточно быстро понять и обработать и передать необходимые количества полигонов 3D акселератору для конечной обработки и вывода на экран.
Продолжение: http://www.cybernova.net/forum/9-474-1.