Точной математике, которой сейчас занимается центральный процессор, сегодня на рынке персональных компьютеров замены нет, и чем выше скорость процессора, тем выше будет ваша 3D производительность. Intel Pentium Pro и Pentium II обеспечили огромный скачок производительности по сравнению с классическим Pentium, а ныне вышедший AMD K7 содержит полностью конвейезированный математический сопроцессор, который похоже показывает приличный прирост скорости над лучшим чипом Intel.
Ещё один путь повышения производительности 3D игр и приложений - использование SIMD инструкций технологии 3DNow! от AMD и SSE расширения Intel. SIMD сильно ускоряет работу с матрицами за счёт параллельного исполнения нескольких операций. К сожалению это означает, что драйверы карты и каждое конкретное приложение должно быть запрограммировано на использование набора этих инструкций. Но, может быть, будет умнее встроить многое из этого в 3D акселератор? Именно это и должно произойти с некоторыми картами следующего поколения. Давно уже встроенная в акселераторы профессиональных рабочих станций схема выделенной обработки трансформаций и освещения освободит процессор от "хозяйственных" забот и потенциально может обеспечить значительный прирост производительности. У геометрической акселерации есть ещё одно преимущество (или недостаток?) - это практически полное отсутствие разницы в скорости на ПК низкого и высокого уровня. Это значит что теоретически, если взять P2-266 и P3-500, да запустить на них Quake2 или Unreal под таким акселератором получим практически идентичный результат. Unreal, конечно, может при этом подтормаживать из-за более продвинутого AI, но вам больше не придётся беспокоится о покупке нового процессора для получения бОльшего количества FPS. Интересный слоган может теперь придумать Intel - "С нашим новым 7000Mhz процессором Kukamai ваш AI станет ещё более продвинутым". Но вообще-то ситуация похожа скорее на ночной кошмар Intel, так как процессоры становятся не так важны в плане 3D производительности.
Завтрашние игры сожрут и не подавятся все эти освободившиеся миллионы операций в секунду, например для эмуляции более реалистичной физики или для обработки вне-графических обьектов, таких как AI или что там ещё может быть... Центральный процессор будет имеет слишком много свободных ресурсов, и вы увидите некоторые потрясающие вещи, которые сейчас нельзя реализовать за счёт узких рамок выделенных ресурсов, не занятых для получения быстрого 3D.
Вот и настало время геометрической акселерации. Есть такое правило - если ваша система может работать с quake-образной игрой как с выделенным сервером (не обрабатывая графику) и с одним клиентом, подключенным на полной скорости, то вы сможете получить полную выгоду от чипа, акселерирующего геометрию. Это просто - процессор не будет заниматься какой либо работой связанной с 3D, что было бы невозможным без аппаратной обработки геометрии. Какие преимущества это даст? Известна статистика, что Quake III Arena тратит около 75% времени ожидая данных от OpenGL драйвера (трансформация и освещения). Если убрать узкое место, то можно будет получить четырёхкратный выигрыш производительности, но конечно всё будет зависеть от вашей видео карты.
Есть некоторые ограничения, например количество источников освещения. Когда вы представляете аппаратную акселерацию, то это понятие ускользает от внимания. Да и видим ли мы на самом деле те 50 миллионов полигонов в секунду движка трансформации? А если подумать, то совершенно непонятно, чья 3D карта сможет поддерживать 4, 8 или 16 независимых акселерированных источников света, да и будет ли цифра такой, или она будет больше или меньше? К тому же фанов 3DS MAX изначально будет волновать вопрос, какой тип освещения будет акселерироваться? Я говорю про фанов 3DS только потому, что остальные могут не понимать, чем эти источники отличаются. Так всё же, будет акселерироваться только точечный источник или ещё и направленный свет? Вопросы набираются и набираются... Также существенным является то, как это затронет 3D игры. Если лучше всего продаваемая карта сможет акселерировать всего 4 источника света, не многие разработчики решаться перейти этот порог, из боязни получить серьёзный удар по производительности. Как всегда ситуация такова - игры управляют индустрией, а железо создаёт игры.
Самый серьёзный аргумент против геометрической акселерации (а это уже поймёт каждый) является её немасштабируемость. Когда вы модифицируете свою систему устанавливая новый процессор, ваш акселератор, не поддерживающий геометрическую обработку, начинает работать ещё быстрее, в то время, как акселерирующие рассчёт геометрии карты продолжают работать с той же производительностью. Хорошая реализация геометрической акселерации должна показывать результаты в 2 раза более высокие чем можно добиться при работе с плавающей запятой на нынешнем Pentium III 500. Существует и менее консервативное мнение, что это может дать 4x кратный прирост производительности, но надо ещё посмотреть, будет ли оставшаяся часть графического конвейера способна поспевать за этой лавиной данных. И вот тут то появляется эта проблема, когда смена P3-500 на P3-667 не даст практически никакого прироста производительности.
Не подумайте что это плохо, это ужасно для Intel, но отнюдь не для пользователя. Апгрейд процессора дорогая процедура, даже без учета смены памяти и материнской платы. И в то время как "стандартный" акселератор будет масштабироваться вместе со сменой центрального процессора, скорее всего к моменту, когда вам будет недоставать производительности появится новое поколение карт с ещё более навороченной геометрической акселерацией. А что же с текстурированием? Единственное, чего не увеличит геометрическая акселерация, так это скорость заполнения (fillrate). Быстрый геометрический акселератор работающий всего с 2x мультитекстурированием всё равно не будет иметь никаких преимуществ в многопроходной обработке. Насколько сильно при этом будет замедляться работа зависит от конкретной 3D архитектуры, очевидно, что комбинация массивного мультитекстурирования и геометрической акселерации была бы идеальной.
Ну вот опять потянуло на историю. Помните, как 3dfx первый раз появилась на рынке PC со своим "только 3D акселератором" Voodoo Graphics. Распаяв 60-pin "feature connectors" над текстурным процессором, покрасив карту в чёрный цвет и достав ещё несколько текстурных процессоров можно было сделать на коленке Obsidian. Quantum 3D воспользовался этой идеей. Следующий проект 3dfx - Voodoo2 продавался уже с 2 текстурными процессорами и позволял режим работы SLI.
Итак, что же дальше? Поскольку большинство производителей молчит в тряпочку, сегодня только увеличение колличества и скорости процессоров может привести к увеличению производительности. Большинство 3D операций не сильно зависят от специальных наборов инструкций, что было продемонстрировано Metabyte с их технологией PGC, и скорость может быть существенно увеличена даже на картах, не рассчитанных на параллельную обработку. Не стоит удивляться, если завтрашние карты будут созданы с несколькими текстурными, растеризирующими или геометрическими процессорами, или если эти процессоры можно будет ставить как Add-on (не важно каким методом) Существует несколько причин, связаннях с финансами, когда Add-on продукты не продаются так, как продавался изначальный продукт, но всё же метод опробирован и используется некоторыми 3D акселераторами сегодня.
С распределением нагрузки на несколько процессоров 3D акселераторы смогут брать на себя пропорционально бОльшую нагрузку. Два текстурных процессора каждый из которых обрабатывает 4 текстуры за проход, смогут вместе обрабатывать уже 8 текстур, что позволит использовать вместе множество дополнительных эффектов. Два геометрических процессора смогут обрабатывать в два раза более сложные сцены не испытывая серьёзных проблем. Ещё Oxygen 202 и 402 содержали 2 и 4 текстурных/визуализирующих процессора соответственно, что очень серьёзно увеличивало производительность. А если вспомнить ещё их выдающийся драйвер, который позволял каждому чипу (или набору чипов) работать в тандеме с одним из процессоров многопроцессорной системы, практически получая работу двух компьютеров в одном и тем самым облегчая геометрическую акселерацию.
А кто это использует сегодня? nVidia уже начала распускать слухи о том, что мы не увидим такие технологии раньше их NV20 (следующего за NV10 чипа), а 3dfx пока вообще сальвадорит (в смысле партизанит) и не распространяется о своём следующем процессоре. Однако выгоды, полученные при переходе с Voodoo на Voodoo2 и затем на SLI были настолько значительны, что не могли быть не замечены сегодняшним рынком.
Энергопотребление
А теперь давайте посчитаем транзисторы. В 3D акселераторах важнейшим параметром является частота чипа. Мы видим ядра, работающие на частотах от 175 до 183Mhz, да ещё и без особых наворотов с охлаждением. Следующее поколение должно ещё увеличить предел частоты до 250Mhz по минимальным подсчётам.
3D акселераторы уже содержат примерно то же количество транзисторов, что и центральные процессоры и производятся по той же 0.25 микронной технологии. Следующее поколение будет производиться по 0.22 или 0.18 технологии.
И тут станет совсем жарко. Вспомним, что ещё год назад 3D карты продавались даже без радиаторов, не говоря уже о вентиляторах. Теперь, с появлением 10 миллионов транзисторов в TNT2 и Voodoo3 (практически столько же, как и в Pentium III) карта не может жить хотя бы без радиатора. Скорости продолжают увеличиваться, важность хорошего радиатора становится всё очевиднее. К несчастью для акселераторов, места между AGP и PCI слотом на материнской плате мало, и обеспечить эффективное охлаждения, не залезая на соседний слот довольно трудно. С появлением более высокочастотных чипов эта проблема может становиться всё важнее. Со временем метод подключения графической карты персонального компьютера должен подвергнуться серьёзной переработке, так как вопрос приемлемого охлаждения серьезно встанет поперек горла.
Ещё одна проблема, кроме разгона чипа - его энергопотребление. Некоторые чипы уже поедают бОльшую часть ресурса шины в этом плане. Количество транзисторов, как я уже сказал, продолжает увеличиваться, если вспомнить ещё и о потребностях в энергии при охлаждении, то появляется серьёзный аргумент в пользу изменения спецификаций ATX в целом. Скорее всего, у следующего поколения чипов проблема ещё не будет стоять ребром, но на горизонте тёмное облачко уже маячит.
Думаете всё? А ещё не говорили о AGP. Оно было разработано для более умных 3D карт, передающих большие текстуры через системную память. Не смотря на интересную концепцию, скорость AGP текстурирования не сравнима со скоростью текстурирования из локальной памяти. Есть только несколько программ, эффективно использующих эту технологию... Но их именно "несколько". Есть и хорошая новость, - что существует теоретическое AGP4x, которое на бумаге выглядит неплохо. Да что я буду вам втирать - 1Гб данных в секунду наверное позволит прокачивать достаточно много больших текстур.
Память
AGP это хорошо, а что с локальной памятью? Даже самая быстрая AGP технология и рядом не стояла с текстурированием из локальной памяти, базированной на 5ns SD/SGRAM. Следующее поколение карт будет иметь около 64Мб текстурной памяти на борту. Как всегда, цена карты напрямую зависит от количества памяти. И чем больше её будет на акселераторе, тем выше будет его цена. Многие High-End акселераторы решают эту проблему сегментацией памяти, так для Z-buffer используется сверх быстрые VRAM и 3DRAM, а обычная текстурная память набирается из обычного DRAM. 3D акселераторы, фокусирующиеся на играх часто имеют соотношение скорости текстурирования к скорости генерации треугольников в пользу текстурирования, это позволяет сегодня использовать не слишком сложные 3D модели с качественными текстурами, что даёт оптимальный баланс производительности.
В акселераторах следующего поколения, имеющих более 32Мб памяти, вполне может случится что хорошим решением станет разделение памяти например на буфер кадра, буфер глубины и буфер текстур. Это поможет удержать цены на приемлемом уровне.
Есть ещё одна технология, с коротой пора прощаться - синхронизарованная работа с памятью. Сегодня есть карты 183/183 или 175/200, но с появлением 300Mhz чипов будет сложно сохранить такую тенденцию. Так же важна доступность оперативной памяти. В новейших изделиях сейчас устанавливается 5ns память и индустрия 3D акселераторов настолько динамично развивается, что технологии изготовления памяти находятся просто под прессингом, дабы была возможность обеспечивать необходимые параметры микросхем. Карты с 350-400Mhz 3D чипами мы увидим комплектующимися 64-96Mb 200-250Mhz памяти. Есть и вероятность использования в акселераторах памяти следующего поколения - например RAMBUS или DDR SDRAM. RAMBUS уже использовался компанией Cirrus Logic в серии Laguna. Это были времена Virge и RageII. Да и в Nintendo64 стоит именно этот тип памяти.
Закончим?
Любимый вопрос - что будет через пару лет. Мой совет - вспомнить что было 2 года назад и сравните с тем что сейчас. А потом представьте себе такое же изменение технологий как уже произошло, умножить это с коэффициентом поправки на 2 (общая экстенсивность развития отрасли), вот и получите примерное представление. Скорее всего вы ошибётесь в меньшую сторону.
Ещё становится модной тема воксельной акселерации. Воксели - это такие штуки, которые вы могли вообще никогда и не видеть в работе. Если коротко - это обьёмные пиксели, то есть трёхмерные точки. Их отличает алгоритм рендеринга. Большинство сегодняшних акселераторов (и некоторых ожидаемых) могут акселерировать только полигоны, воксели же вообще никак не нуждаются в полигонах, и работают примерно как эффекты частиц в Quake-образных играх. Первой эту технологию использовала NovaLogic в своём "симуляторе" вертолёта Comanche для создания реалистичного ландшафта. Так же эту технологию использовали Delta Force и недавно вышедший Outcast, а если покопаться в памяти, так ещё всплывут совершенно чумовой Armored Fist 1 и 2, да несколько других, менее знаменитых.
Так что же удерживает нас от использование вокселей? Самая большая проблема - необходимо много оперативной памяти - так как каждый элемент содержит 3 координаты, в то время как единственный полигон, на экране рисуемый уже несколькими точкими требует вообще всего трёх координат. Это делает использование вокселей большой проблемой. Поэтому большинство игр, где используется эта технология утилизирует воксели для создания "не точных" обьектов, таких как поверхность земли. Кроме того воксели имеют заранее заданный размер, в то время как полигоны описываются математически. При приближении к воксельному обьекту мы увидим нечто вроде блочной конструкции.
Так почему у этого есть потенциал? Грубо говоря, воксели хороши для отображения поверхности земли или воды, а так же не так тратят ресурсы компьютера, как полигоны. Но воксели не слишком хороши для отрисовки обьектов типа зданий, техники или персонажей.
А вы знаете что именно человек изобрёл прямую линию? В природе такого понятия нет. К чему это я? Да просто так... Помните, как Quake 3 показал, что за разница в качестве может быть достигнута за счёт использования искривлённых поверхностей? Прежде всего давайте поймём, что это такое. Представьте, что нам надо создать арку. В стандартном движке мы будем создавать арку из полигонов или групп полигонов, как из кирпичиков. При использовании искривлённых полигонов для создания арки всего лишь надо описать искривлённость арки математически. Первый вариант потребует например 500 полигонов, и вы увидите эти "кирпичики" при приближении, с использованием кривых насколько бы вы близко не были, вам не увидеть составляющих. Разница такая же, как между векторной и растровой картинкой. Польза видна невооружённым взглядом - прежде всего создавать искривлённую геометрию проще, во вторых для этого требуется меньше ресурсов, в третьих 3D движок сможет отображать намного более реалистичные модели. А кроме того можно задавать детализацию для систем с разной производительностью.
Но реально это полигоны.
Все эти технологии отображения 3D пространства сейчас всё равно остаются полигональными, в основном потому что все 3D акселераторы работают с полигонами. В играх может использоваться огромное количество полигонов, это может быть не заметно, но это всё равно полигоны Акселерация сплайнов может сильно изменить качество детализации, так как описание обьектов сплайнами позволит создавать гораздо более реалистичные модели, которые будут хорошо смотреться при любом увеличении.
Не обошлось и без проблем, для отображения некоторых сложных поверхностей невозможно использовать кривые. То есть кривые подходят для изображения простенькой арки, но вот создать с их использованием модель человека - сложно.
Да если уж на то пошло, то результаты мы увидим к концу года. 3D рынок сейчас очень горячее место, продукты сменяют друг друга с интервалом уже в 6 месяцев, так что места ошибкам особо нет. Ни одна компания не может быть уверена в своём постоянном превосходстве, но с в ситуации, когда нет приверженности пользователей к одной фирме производители стремятся использовать любой шанс и технологию чтобы доказать что их продукт - лучший. Будет ли победитель из знаменитых фирм, таких как nVidia или 3dfx, или же это будет "тёмная лошадка" вроде PowerVR или Bitboys, мы узнаем к моменту появления готовых продуктов. Сегодня стало понятно, что основное достоинство карты - не только то количество fps, которое она может обеспечить, но и набор возможностей, которые она может предоставить.
Начало: http://www.cybernova.net/forum/9-473-1.