Что нас ждет в ближайшее время в мире 3D графики

Фотореалистичная графика

В последнее время ведется много дискуссий об использовании фотореалистичной графики в играх и приложениях, однако ни один из существующих на рынке 3D акселераторов пока не имеет возможности обеспечить необходимую аппаратную поддержку. При этом nVidia подтвердила, что в чипсет NV10 будет встроена аппаратная поддержка расчета трансформаций и освещенности (Transformation and Lighting, T & L), иначе говоря, в NV10 будет встроен специализированный геометрический или сопроцессор акселератор геометрии (geometry accelerator), а это значит, что станет возможно использовать фотореалистичную графику даже на компьютерах с умеренной производительностью. Заметим, что 3dfx тоже будет использовать геометрический сопроцессор в паре со своим новой чипсетом Voodoo4. Однако в отличие от nVidia, что сама разработала геометрический акселератор, 3dfx будет использовать геометрический сопроцессор IMPAC-GE от Mitsubishi (или вариант этого процессора, тем более, что Mitsubishi заявила о возможном производстве нескольких вариантов своего чипа. Заметим, что чип IMPAC-GE разрабатывался Mitsubishi совместно c Evans & Southerland. При этом, если геометрический сопроцессор от nVidia будет интегрирован в чип NV10, то геометрический сопроцессор IMPAC-GE от Mitsubishi будет внешним. Интересной особенностью чипа IMPAC-GE является возможность его перепрограммирования, то есть изменения микрокода, обеспечивающим хорошую масштабируемость и баланс распределения нагрузки между CPU и геометрическим акселератором. Кстати, Mitsubishi давно занимается разработкой различных решений в области профессиональной графики, достаточно вспомнить о давнем сотрудничестве Mitsubishi с компанией Evans & Southerland или недавний анонс специализированного процессора и карты на его основе для работы с Volume Graphics (объекты имеют не только поверхность и границы , но и внутреннюю структуру. Другой вопрос, удастся 3dfx наладить слаженную работу своего чипсета Voodoo4 и геометрический акселераторы от Mitsubishi. К слову, геометрические акселераторы делают компании 3Dlabs и Fujitsu Microelectronics, причем, если первая вряд ли будет продавать свои чипы третьим компаниям, то вторая, вероятно, не откажется от такой возможности.

Несомненно то, что важную роль в продвижении чипов геометрических акселераторов на большой рынок потребительских систем сыграла корпорация Microsoft. Дело в том, что в выходной в августе этого года пакет интерфейсов Direct 7.0 войдет версия Direct3D с поддержкой аппаратной реализации Transformation and Lighting. Можно утверждать, что любую технологию, получила благословение Microsoft, ждет успех на рынке. Тем более что сама технология этого заслуживает. Вот это, на наш взгляд, ключевой момент, объясняющий, почему именно в этом году зашла речь о геометрических акселераторы. Не секрет, что ни одна, даже самая передовая и отличная технология ничего не стоит, если она не используется в приложениях. Кстати, та же Mitsubishi заявила, что если бы не одобрение Microsoft и не обещание включить T & L в Direct, никаких работ по ускоренному продвижению на рынок геометрических акселераторов не был бы еще долгое время. Так, в августе выходит Direct 7.0, в котором, в частности, будет поддержка T & L. Это значит, что у разработчиков приложений появится возможность использовать поддержку геометрических акселераторов в своих будущим и уже создаваемых приложениях. Для массового рынка, на который будут нацелены NV10 и Voodoo4 это, конечно же, игры. Не будет игр, которые могут использовать возможности геометрических акселераторов, — и никому новые видеокарты не потребуются. Именно поэтому мы считаем, что вероятной датой появления NV10 и Voodoo4 следует считать все же конец 1999 — начало 2000 года. Даже если не будет проблем с дизайном и драйверами, торопиться с выпуском карт производителям нет смысла. Осенью приложений с поддержкой геометрических акселераторов точно не будет. К Рождеству 1999 вероятность появления пары игр и нескольких демо. Единственное, что может ускорить появление новых карт на рынке, это нетерпение одного из конкурентов. Причем, мы склоняемся к тому, что именно 3dfx может форсировать ситуацию, чтобы привлечь к себе внимание, как к первой компании, сделавшей видеоакселератор с поддержкой геометрического сопроцессора (для непрофессионального применения) и предложив готовый продукт на рынок. Но, возможно, благоразумие возьмет верх, и оба конкурента дождутся хотя бы Рождества.

Что такое геометрическая акселерация?

Чтобы понять принципы работы геометрических акселераторов, необходимо иметь базовые понятия о 3D графическом конвейере (3D graphics pipeline). Термином "3D графический конвейер" называют разные стадии, через которые должны пройти данные, генерируемые приложением для того, чтобы в результате на 2D мониторе отобразилась 3D графика. Весь процесс состоит из двух разных этапов: этап геометрических преобразований и этап рендеринга, т.е. визуализации. Каждый этап состоит из нескольких шагов стадий.

Первым является геометрический этап (geometry stage), в процессе выполнения которого производятся математические вычисления над вещественными числами (с плавающей точкой,), а полученные данные описывают полигоны — конечно треугольники, располагающиеся определенным образом, создавая в нас ощущение, что мы видим 3D объекты на 2D мониторе. Однако, эти фигуры не имеют ничего общего с реальностью, потому что они не имеют цвета и вообще ничего, кроме формы треугольников. Процесс взаеморозположення полигонов может включать в себя процедуры или вырезания отбраковки полигонов, не попадают в поле зрения пользователя, а главное-и происходит трансформация координат (transformation). Преобразование координат необходимо потому, что в трехмерном пространстве, в пространстве кадрового буфера и на экране монитора используются различные системы координат.

Затем производятся вычисления, в результате которых определяются характеристики освещенности сцены, включая определение того, является свет от источника освещения рассеиваемого или направленным, с учетом таких параметров освещаемых поверхностей, как или поглощение отражения света, исчисляется расстояние от источника (источников) света до освещаемого объекта. Также происходит разделение данных о расстоянии и направленность для удобства их последующего использования. На последней стадии геометрического этапа производятся вычисления, в результате которых определяется то, как будут выглядеть полигоны во всех трех измерениях, и полученные данные сохраняются для использования на этапе рендеринга. Прохождение всех этапов геометрического конвейера зависит от максимального использования всей доступной вычислительной мощности и должно происходить с наименьшими задержками, насколько это возможно. Широкое использование буферов FIFO (First In First Out, т.е. первыми обрабатываются данные, которые раньше поступили) обеспечивает непрерывность работы, т.е. ни один из шагов конвейера не может вызывать простоя на других шагах конвейера. Чтобы этап геометрических вычислений не стал узким местом 3D графические конвейеры необходимо использовать процессор с мощным блоком операций с вещественными числами (FPU, Floating Point Unit). Кстати, именно из-за слабой производительности FPU у процессоров K6-2/K6-III от AMD игры, не использующих набор 3DNow! выполняются медленнее, чем в системах с процессорами от Intel. Не исключено, что появление 3D акселераторов со специализированным геометрическим сопроцессора послужит хорошую службу всем владельцам систем на базе процессоров от AMD. Дело в том, что при операциях с целыми числами процессоры K6-2/K6-III продуктивнее, чем процессоры от Intel при сравнимых рабочих частотах, а встроенный в процессоры блок FPU больше не будет критически важным звеном в играх. Ресурсы, высвободившиеся можно будет задействовать и на другие цели, кроме расчета геометрии, в любом случае — и время покажет.

Вторым является этап рендеринга (rendering stage), в процессе которого информация о полигоны превратится в информацию о пикселях для отображения на экране монитора. Этот процесс может включать в себя такие процедуры, как затенение (shading), текстурирования и применения специальных эффектов к данным о полигоны, полученных после завершения геометрического этапа конвейера. Заметим, что при использовании акселератора геометрии ресурсы, высвобождающиеся CPU можно использовать, например, для реализации более прогрессивных техник тени, таких, как затенение Фонга. Сейчас этот тип затенения практически не применяется именно из-за нехватки вычислительных мощностей. Все эти вычисления завершают формирование изображения, генерация которого состоялась на геометрическом этапе, обеспечивая ему высокий уровень реализма. В отличие от геометрического этапа, зависит от вычислительной мощности процессора, выполняющего все вычисления, этап рендеринга интенсивно использует ресурсы памяти, т.е. напрямую зависит от того, сколько у вас имеется доступной для использования памяти (текстурных буферов. К слову, появление AGP было связано прежде всего с тем, что проблема ограниченных объемов локальной видеопамяти была решена расширением их за счет системной памяти компьютера. Правда, стоимость локальной памяти настолько упала, что современные видеоакселератор имеют ее столько же, сколько имели системной памяти мощные компьютеры тех времен.

После завершения обоих этапов 3D графические конвейеры итоговые данные могут быть отображены на экране монитора. Хотя все это выглядит довольно долгой и сложной процедурой, но процесс получения данных для каждого пикселя, отображаемого на экране, происходит очень быстро. Для этого нужно период времени меньше, чем одна секунда. Когда мы говорим о частоте смены кадров в игре (frame rate), то на самом деле речь идет о величине, показывающий, как много раз в секунду каждый выведенный на экран кадр изображения обновляется после обработки данных на этапах 3D графические конвейеры (геометрическом и рендеринга ) в течение каждой секунды.

Если все вычисления, необходимые на этапах 3D графические конвейеры, выполняются одним CPU системы, то в результате мы получим на экране монитора невзрачную и медленную графику, потому что центральный процессор системы должен заниматься еще и управлением всех аппаратных устройств, операционной системой и приложениями. Когда на рынке появился первый 3D графический акселератор, его чип исполнял на аппаратном уровне все вычисления этапа рендеринга, а центральный процессор системы выполнял все вычисления на геометрическом этапе. Этот метод уже на протяжении пяти лет является лучшим способом отображения 3D графики. Однако в играх и приложениях используется все более и более детализированная графика в высоких разрешениях, в результате центральный процессор становиться узким местом системы, так как геометрический этап очень сильно зависит от вычислительной мощности CPU. Для разгрузки CPU на некоторых профессиональных OpenGL и специализированных графических ускорителях (Heidi, RenderGL применяются геометрические сопроцессоры, т.е. на этих видеокартах аппаратно выполняются все вычисления обоих этапов (геометрического и рендеринга) 3D графические конвейеры. Для примера можно назвать видеоадаптеры RealiZm II от Intergraph, Oxygen от 3Dlabs и Visualize-fx6 от Hewlett Packard. Благодаря тому, что CPU занимается управлением только аппаратными устройствами системы, операционной системой и приложениями, высвобождаемых вычислительные ресурсы могут использоваться для визуализации более естественной и детализированной графики.

Заметим, что использование геометрического акселератора не означает, что работа по расчету геометрии будет вполне снята с CPU системы. Наоборот, при грамотно реализованной технологии и соответствующих драйверах удается добиться высокоэффективного параллелизма вычислений. В этом случае и CPU, и геометрический акселератор выполняют ту же работу, но параллельно. За счет этого производительность может быть существенно повышена и сохранится масштабируемость всей графической подсистемы. Будет ли такой метод применяться в картах на базе Voodo4 и NV10-и пока неясно, можно только подчеркнуть, что реализация такой технологии-и очень сложная задача. Тут стоит вспомнить о SSE и новый вариант 3DNow! (Добавлена еще 21 инструкция). Применение этих расширений позволит более эффективно использовать вычислительные мощности CPU, а именно: использование потенциала SIMD позволит одновременно преобразовывать несколько пространственных координат и параллельно рассчитывать координаты нескольких источников света. Главное, чтобы возможность использования потенциала SIMD была реализована в драйверах видеоакселератор. Применение геометрических акселераторов создаст ситуацию, когда CPU больше не будет узким местом в системе, а значит, Intel и AMD смогут успешно продвигать свои новые, еще более мощные процессоры. В этом случае замена одного CPU на более новый процессор, вероятно, позволит реально ощутить изменения, а не просто верить на слово.

В результате, при использовании графических акселераторов с геометрическими сопроцессора (невероятно быстрых и умных) удается воспроизвести фотореалистичную графику даже на системах с маломощными центральными процессорами. К сожалению, подобные профессиональные видеоускорителя стоят очень дорого. Причем высокая цена вызвана не только сложностью создания подобных карт и драйверов для них, но и очень узким сектором рынка, на который они рассчитаны. Следствием малых объемов продаж по сравнению с картами, рассчитанными на потребительский рынок, является высокая цена и малая распространенность.

Геометрическая акселерация (читай: "применение геометрического сопроцессора") может применяться в приложениях и играх, в которых нужно высокая производительность при отображении на экране динамической графики, например, 3D анимации. Эта технология может успешно применяться (и применяется) в системах CAD / CAM, Visual Simulation (всевозможные симуляторы реальности), 3D играх и при создании различных видов приложений. Результаты, выходящие благодаря использованию геометрических акселераторов, впечатляют.

Производительность графических систем, оснащенных геометрическими акселераторами, находится на высочайшем уровне. Обычно для тестирования профессиональных графических ускорителей используется тестовый пакет Viewperf, специально оптимизированный для использования с платами, имеющими на борту геометрический сопроцессор. Приведем пример тестирования профессиональной графической карты RealiZm II от компании Intergraph. Заметим, что карта RealiZm II поставляется в двух вариантах: с геометрическим акселератором и без. Результаты говорят сами за себя (чем больше значение, тем лучше):

Для справки: геометрический сопроцессор для RealiZm II имеет производительность 1,680 Mflops и содержит 14 специализированных процессоров, аппаратно ускоряют каждую стадию геометрического этапа 3D графические конвейеры, включая такие стадии, как трансформация, кадрирование (clipping) и расчет освещения. Для примера: производительность, что обеспечивает RealiZm II при работе с фотореалистичной графикой, находится на одном уровне с графической станцией Octane от SGI.

О геометрический акселератор в NV10 ничего пока неизвестно. Зато о IMPAC-GE информация доступна. Вариант IMPAC-GE (M64591AFP, в корпусе HQFP 240 pin), сделанный с использованием 0.5 мкм процесса, способный обрабатывать до 4 млн. треугольников в секунду. При этом, по заявлению Mitsubishi, при переходе на более прогрессивный технологический процесс производительность IMPAC-GE увеличится. В основе IMPAC-GE лежит архитектура SIMD (Single Instruction Multiple Data). В чип IMPAC-GE встроенный блок FPU и блок IPU (integer processing unit), который обрабатывает целые числа. Оба блока вычислений обеспечивают преобразование однородных XYZW-координатных матриц и вычисления значений RGB цветов. Кроме того, в IMPAC-GE встроенная поддержка работы с такими операциями, как распределение, вытащил квадратного корня и т.д. Чип IMPAC-GE в паре с процессором рендеринга REALimage 2100 от Evans & Southerland используется на плате FireGL 5000 от Diamond. FireGL 5000 выпускается в двух вариантах комплектации локальной памяти: 20 Мб 3D-RAM / 16 Мб CDRAM и 20 Мб 3D-RAM / 32 Мб CDRAM. К вопросу о типах памяти мы вернемся ниже.

15 миллионов транзисторов

Для визуализации 3D графики с фотореалистичной качеством чип NV10 должен будет иметь очень мощный процессор, работающий с высокой частотой (MHz) и обладающий мощным блоком операций с вещественными числами (FPU) для акселерации геометрии.

Если снова обратиться к роадмап от nVidia, то можно найти, что чип NV10 будет содержать 15 миллионов транзисторов. Примерно столько же транзисторов будет в процессоре Intel Merced 800 MHz. Можно предположить, что через такое огромное число транзисторов при производстве NV10 будет использоваться технологический процесс 0.18 мкм или даже 0.15 мкм, что, в свою очередь, позволит использовать более высокие рабочие частоты по сравнению с современными чипами 3D графических акселераторов. С другой стороны, на рынке уже есть чипы с 50 миллионами транзисторов в одном кристалле, и делают их по 0.25 мкм технологии, это, например, Fuzion 150 от PixelFusion. Переход с 0.25 мкм технологического процесса на 0.18 мкм или 0.15 мкм процесс позволит не только сократить площадь кристалла, но также решит проблему повышенного тепловыделения при высоких рабочих частотах. Недавно появился на рынке процессор Athlon от AMD (кодовое имя K7) работает на частотах до 650 MHz включительно, причем это еще не предел. Поэтому вполне естественно предположить, что рабочие частоты нового поколения графических процессоров также возрастут. По крайней мере, есть все основания ожидать, что NV10 будет работать на стандартной частоте 250 MHz или даже 300 MHz, что на 40% больше, чем максимальная частота (стандартная) современных чипов (183 MHz). Разумеется, чипы NV10 будут иметь радиатор и вентилятор для хорошего охлаждения, что гораздо лучше холодильных установок. Также, нет причин сомневаться, что NV10 будет разгоняться до более высоких частот, хотя бы на 10%.

Больше памяти, хорошей и быстрый

Акселераторы 3D графики в процессе своей работы наиболее интенсивно используют память только на этапе рендеринга, когда информация о полигоны размещается в текстурных буферах перед отображением. Кроме того, память нужна для Z-буферизацию и для кадровых буферов. Современные видеоадаптеры для потребительского рынка имеют до 32 Мб локальной видеопамяти, например, карты на чипе TNT2. Профессиональные видеоакселератор, например, Oxygen от 3Dlabs, имеют до 256 Мб локальной памяти. Понятно, что чем больше памяти отведено под текстуры, тем более сложную графику можно воспроизвести. В принципе, под текстурную память можно использовать оперативную память компьютера, собственно, для этого и придумали AGP. Однако возникают проблемы с шириной полосы пропускания при перекачке текстурных данных. Даже при использовании AGP x4 и технологий компрессии текстур сохранения текстурных данных в системной памяти компьютера может оказаться узким местом. Поэтому, особенно учитывая снижение цен на память, нет никаких оснований, предполагать, что видеоадаптеры на базе чипов следующего поколения будут иметь скромные объемы локальной памяти. Потому что основным достоинством нового поколения графических акселераторов будет возможность визуализации фотореалистичной графики, то можно смело утверждать, что 64 Мб локальной памяти будет стандартным решением. Роадмап Diamond относительно карт на NV10 это косвенно подтверждает. С другой стороны, сейчас на рынке четко просматривается тенденция сегментации карт, когда для каждого сектора предлагаются графические акселераторы с разной комплектацией объемов локальной памяти. Можно предположить, что будут версии карт на базе чипов нового поколения с 32 Мб и даже с 16 Мб на борту. Не исключено, что память на таких картах можно будет расширить.

Предполагается, что на базе NV10 будет выпускаться до пяти различных версий карт:

OEM версии с 16/32 Мб локальной памяти

Версия с 64 Мб

Ultra версия с 128 Мб

Профессиональная версия с 192 Мб

Special Edition версия с 256 Мб

Разумеется, это всего лишь предположение.

С другой стороны, есть информация, что карты на Voodoo4/Napalm будут поставляться в комплектации до 128 Мб локальной памяти. Вряд ли nVidia допустит отставание от конкурента по этому параметру.

Теперь что касается типа локальной памяти для графических акселераторов. Сегодня самым распространенным является память типа SDRAM / SGRAM. Самым логичным шагом будет переход на использование DDR SDRAM / SGRAM, что даже при неизменных тактовых частотах увеличит производительность памяти вдвое. Кроме того, не исключен вариант использования экзотических типов или памяти комбинирования различных типов памяти. Не исключено, что мы увидим на платах непрофессионального класса двухпортовую видеопамять, например, 3DRAM от Mitsubishi. А как специализированную память для сохранения текстур можно использовать CDRAM (Cached DRAM) от все той же Mitsubishi. Ожидается, что уже до конца этого года мы наконец увидим платы на чипе Verite4000 от Rendition / Micron, отличительной особенностью которых будет применение Embedded DRAM. С другой стороны, использование экзотических видов памяти может сильно подорожать систему в целом. Поэтому более вероятным представляется все же путь развития технологий, повышающих эффективность существующих решений. Например, технология сжатия текстур S3TC, уже включена в Direct3D, позволяет более эффективно использовать AGP текстурирования, фактически увеличивая пропускную способность шины AGP при перекачке текстур. Пока эта технология не получила широкого распространения, но, например, кроме самой S3, о поддержке S3TC заявили уже Matrox, VideoLogic, а, по имеющимся данной, Voodoo4 тоже будет поддерживать эту технику сжатия текстур. Кроме того, не исключено, что будет принята на вооружение технология менеджмента (Virtual Textures) и кэширования текстур, применяемая 3Dlabs в их чипе Permedia3. Суть ее в том, что Кэширование текстур происходит за счет локальной видеопамяти, а сами текстуры хранятся в системной памяти компьютера и могут иметь гигантские размеры, при этом загружаться может лишь та их часть, что действительно необходимо. Далее, вполне логично ожидать увеличения ширины шины или памяти использования нескольких независимых шин памяти, например, как 256-bit Dual Bus в серии G400 от Matrox.

Вывод

Итак, в принципе понятно, чего стоит ожидать от графических процессоров следующего поколения и плат на их основе. Можно заключить, что 2001 год будет началом широкого применения 3D графики фотореалистичной качества на массовом рынке. Современные 3D акселераторы обеспечивают высокую скорость визуализации, так что в новом поколении упор будет сделан, скорее всего, именно на качество изображения. Широкое распространение получат технологии рельефного текстурирования, анизотропная фильтрация и передовые техники тени, например, Фонга. Что касается конкретных спецификаций чипов, то даже при отсутствии официальных данных можно сделать некоторые экстраполяции. Понятно, что все те функции, за отсутствие поддержки которых сегодня ругают 3dfx и их чип Voodoo3, будут реализованы в Voodoo4. Это значит, что будет поддержка 32-битного рендеринга, 32-битной z-буферизацию, AGP-текстурирования. Будут поддерживаться стенселы и текстуры большого размера. Есть все основания предполагать, что в чипах нового поколения будут широко применяться несколько конвейеров и несколько блоков текстурирования. Это позволит реализовывать выполнение за один такт продвинутых техник рельефного текстурирования и фильтрации. Возможно, мы увидим графические процессоры, способные накладывать за один такт не две, а три, четыре и даже восемь текстур. Это позволит создавать более естественные ландшафты виртуального мира с естественным освещением. Не исключен переход к использованию более сложных примитивов, чем треугольники, например, квадратичных полигонов. Наличие больших объемов скорой локальной памяти позволит в полной мере использовать преимущества сглаживания всей сцены (full scene antialiasing) с произвольно выбираемыми коэффициентами суперсемплинга. Далее, есть вероятность, что широкое распространение могут получить технологии типа SLI или PGC, хотя шансов на это немного.

Что касается приложений, могут использовать преимущества геометрической акселерации, то тут следует дать одно объяснение. Не стоит ожидать, что, поставив в свой мощный (или не очень мощный) компьютер видеоакселератор с геометрическим сопроцессора, вы увидите огромный прирост скорости и качества отображаемой 3D графики. К сожалению, этого не произойдет, так как в большинстве игр используется специализированный движок, что, в частности, занимается расчетом T & L, перекладывая вычислительную нагрузку на CPU системы. Кроме того, в игре могут использоваться и возможности стандартных API, таких, как Direct3D и OpenGL, но разработчики предпочитают специализированным движка, так как в этом случае игра идет быстрее при использовании ресурсов CPU. С появлением поддержки в Direct3D геометрических акселераторов ситуация может измениться и произойдет отказ от специализированных игровых движков, которые возлагаются только на ресурсы CPU.

Так, напомним еще одну деталь относительно Direct 7.0, а именно тот факт, что теперь у разработчиков программного и аппаратного обеспечения появится возможность создавать собственные расширения Direct, подобно тому, как это возможно в случае с OpenGL. Это даст возможность стандартным образом использовать особенности конкретного (возможно, вузькоспециализованного) аппаратного обеспечения.

Нам же остается ждать, когда появятся официальные анонсы и первые видеоадаптеры на новом поколении графических процессоров. А заодно посмотреть, оправдались наши прогнозы.