Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Talisman был проектом Microsoft по созданию новой архитектуры трехмерной графики, основанной на быстром наложении двухмерных «фрагментов изображения» на экран, адаптации мозаичного рендеринга . Теоретически такой подход резко снизил бы объем пропускной способности памяти, необходимой для 3D-игр, и тем самым привел бы к более дешевым графическим ускорителям . Проект имел место во время появления первых высокопроизводительных 3D-ускорителей, которые быстро превзошли Talisman как по производительности, так и по цене. Системы на базе Talisman никогда не выпускались в продажу, и в конце 1990-х проект был закрыт.

Описание [ править ]

Обычное 3D [ править ]

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

В общем, отображение мало меняется от одного кадра к другому; как правило, при любом данном переходе от кадра к кадру объекты на дисплее могут немного сдвинуться, но их форма и текстуры вряд ли вообще изменятся. Изменение геометрии - относительно легкая операция для ЦП , загрузка текстур из памяти значительно дороже, а затем отправка результирующего визуализированного кадра в буфер кадра - самая дорогостоящая операция из всех.

Например, рассмотрите настройки рендеринга эпохи с 24-битным цветом, с базовым 3D-композитингом с трилинейной фильтрацией и без сглаживания : при разрешении 640 x 480 потребуется 1900 Мбит / с пропускной способности памяти; при разрешении 1024 x 768 потребуется 4900 Мбит / с. Ожидается, что даже базовое сглаживание примерно удвоит эти цифры. [1] Для справки : современные машины SGI RealityEngine2 обладали высокой пропускной способностью памяти около 10 000 Мбит / с, поэтому эти машины широко использовались в трехмерной графике. Типичный ПК той эпохи, использующий AGP 2X, мог предложить только 508 Мбит / с.

Первой атакой на эту проблему было внедрение графических ускорителей, которые обрабатывали хранение и отображение текстур. У этих карт, как и у оригинальной Voodoo Graphics , ЦП пересчитывал геометрию для каждого кадра, а затем отправлял полученную серию координат на карту. Затем карта выполняла оставшуюся часть операции; применение текстур к геометрии, рендеринг кадра, применение фильтрации или сглаживания и вывод результатов в локальный буфер кадра. Потребность в полосе пропускания в такой системе резко сократилась; для сцены с 10 000 треугольников может потребоваться от 500 до 1000 кбит / с, в зависимости от того, сколько геометрических точек может быть разделено между треугольниками.

Плиточный рендеринг [ править ]

По мере того, как сложность сцены увеличивалась, необходимость повторно генерировать геометрию для того, что по сути было фиксированным набором объектов, стала сама по себе узким местом. Можно было бы добиться гораздо большего повышения производительности, если бы графическая карта также сохраняла и манипулировала полигонами. В такой системе весь конвейер отображения может запускаться на карте, требуя минимального взаимодействия с процессором. Это потребовало бы, чтобы видеокарта была намного «умнее»; в отличие от очень простых операций, связанных с наложением текстур, карта теперь должна иметь полный процессор, способный вычислять функции, используемые в 3D-моделировании. В то время ряд компаний изучали этот путь, так называемые карты « трансформации и освещения » или T&L, но сложность и стоимость систем оказались значительными.

Одним из решений, которое изучалось в этот период, была концепция мозаичного рендеринга . Это было основано на наблюдении, что небольшие изменения положения камеры можно моделировать, манипулируя небольшими 2D-изображениями, «плитками». Например, движение камеры в сцену можно смоделировать, взяв каждую плитку и увеличив ее. Точно так же другие движения в сцене могут быть смоделированы с применением соответствующего аффинного преобразования . Однако этот процесс является приблизительным, так как по мере увеличения движения визуальная точность будет снижаться. Такая система может снизить потребность в повторном вычислении геометрии в среднем до двух-трех кадров.

Проблема с этим подходом заключается в том, что не все плитки обязательно нужно перерисовывать каждый раз, а только те, которые содержат объекты, расположенные близко к камере. Если вся геометрия отправляется на карту, тогда эта задача может быть решена полностью на карте, но для этого требуются карты такой же сложности, что и системы T&L. Если геометрия находится под контролем ЦП, то в идеале карта должна иметь возможность запрашивать ЦП повторно визуализировать только те объекты в тайлах, которые устарели. Во многих случаях для этого потребуется изменить конвейер рендеринга ЦП. В любом случае карта и / или драйверы должны знать порядок и положение объектов, что обычно скрыто в коде.

Талисман [ править ]

Talisman представлял собой полный набор программного и аппаратного обеспечения, который пытался решить проблему мозаичного рендеринга. Система поделилась некоторой информацией о плитках и объектах внутри них, чтобы узнать, какие плитки устарели. Если плитка устарела, ЦП просили повторно визуализировать объекты в этой плитке и отправить результаты обратно в драйвер, а затем на карту. После рендеринга определенного фрагмента на карте он сохранялся на карте в сжатом формате, чтобы его можно было повторно использовать в будущих кадрах. Microsoft подсчитала, что каждую плитку можно повторно использовать в среднем примерно для четырех кадров, тем самым снижая нагрузку на ЦП примерно в четыре раза.

В Talisman буферы изображений были разбиты на «блоки» размером 32 x 32 пикселя, которые были индивидуально визуализированы с использованием трехмерных объектов и текстур, предоставленных ЦП. Указатели на фрагменты затем сохранялись в упорядоченном по оси z (от начала до конца) списке для каждых 32 строк развертки на дисплее. Одна проблема заключается в том, что куски нельзя чисто «сшить», проблема, которая иногда проявлялась в различных видеоиграх, использующих программный рендеринг . Чтобы избежать этого, Talisman также сохранил отдельный «буфер края» для каждого фрагмента, в котором хранилась «область переполнения», которая закрывала бы пробелы в отображении.

Конвейер рендеринга [ править ]

В обычной 3D-системе геометрия периодически генерируется, отправляется на карту для композиции, объединяется в кадровый буфер, а затем, в конечном итоге, улавливается видеооборудованием для отображения. Системы талисманов по сути полностью изменили этот процесс; экран был разделен на полосы высотой 32 строки, и пока видеооборудование рисовало одну из этих полос, оборудование обращалось к стороне Talisman и сообщало ей, что нужно подготовить детали для следующей полосы.

Система будет реагировать, извлекая любые фрагменты, которые были видны в этой полосе с учетом текущего местоположения камеры. В типичном случае многие фрагменты будут скрыты другими фрагментами и могут быть проигнорированы во время компоновки, что сэкономит время. Это причина z-сортировки фрагментов, которая позволяет эффективно извлекать их в «порядке видимости». Если фрагменты можно было изменить без искажения, вызывали соответствующее аффинное преобразование для обновления фрагмента на месте. Если он не мог, скажем, из-за того, что камера слишком сильно переместилась с момента последнего полного обновления, ЦП попросили предоставить новую геометрию для этого фрагмента, которую затем карта визуализировала и поместила обратно в хранилище.

В Talisman не было аналога фреймбуфера, который рендерил фрагменты по запросу прямо на экран, когда линия развертки монитора продвигалась вниз по экрану. Это интересный аналог Atari 2600 , который использует аналогичную систему для рендеринга 2D-изображений на экране, метод, известный как «гонка по лучу». В обоих случаях это уменьшило объем необходимой памяти и полосу пропускания памяти, используемую между системой отображения и видеооборудованием. В обоих случаях это также потребовало значительно более тесной интеграции между видеосистемой и программами, которые ее запускают. В случае Talisman программы должны были хранить свои объекты в определенном формате, понятном программным драйверам Talisman, что позволяло быстро извлекать их из памяти во время прерываний .

История [ править ]

Введение [ править ]

Усилия Talisman были попыткой Microsoft коммерциализировать концепции, над которыми экспериментировали в течение некоторого времени. В частности, систему PixelFlow , разработанную в исследовательской лаборатории Hewlett-Packard в Университете Северной Каролины в Чапел-Хилл, можно считать прямым родителем Talisman. [2]

Когда Talisman был впервые обнародован на конференции SIGGRAPH в 1996 году , они пообещали резкое снижение стоимости внедрения графической подсистемы. [3] Они планировали работать с поставщиками, чтобы продать концепцию Talisman для включения в системы отображения других компаний. То есть предполагалось, что Talisman станет частью более крупного медиа-чипа, а не целой 3D-системой, которая будет стоять отдельно в системе. Их базовая система будет поддерживать 20-30 000 полигонов на дисплее 1024 x 768 при 32 бит / пиксель, со скоростью рендеринга полигонов 40 Мпикс / с и скоростью компоновки слоев изображения 320 Мпикс / с.

Эскаланте [ править ]

В то время Microsoft работала с несколькими поставщиками, чтобы разработать эталонную реализацию, известную как Escalante . Samsung и 3DO работали вместе над разработкой однокристального DSP- подобного «процессора мультимедийных сигналов» (MSP), сочетающего функциональность Talisman с дополнительными мультимедийными функциями. Cirrus Logic предоставит микросхему СБИС , которая будет извлекать данные, помещенные в память MSP, применять эффекты и отправлять их для отображения. Этот чип, известный как «процессор полигональных объектов» (POP), периодически опрашивался другим чипом Cirrus Logic, «Image Layer Compositor» (ILC), который был привязан к видеосхеме. Кроме того,Escalante рассчитан на использование 4 МБ RDRAMна двух 8-битных каналах 600 МГц с пропускной способностью 1,2 ГБ / с. [4] Позже Philips вступила в бой с запланированной новой версией своего процессора TriMedia , в котором большая часть Talisman реализована в одном процессоре, и Trident Microsystems с аналогичными планами.

Именно в разгар проекта Talisman жанр шутеров от первого лица начал выходить на первый план в играх. Это создало рыночный спрос на ускорители, которые можно было бы использовать с существующими играми с минимальными изменениями. К тому времени, когда эталонный дизайн Escalante был готов к производству, рыночные силы уже привели к появлению ряда новых дизайнов карт с такими улучшенными характеристиками, что карты Talisman просто не могли конкурировать с ними. Карты с большим объемом оперативной памяти, расположенные так, чтобы обеспечить чрезвычайно высокую скорость, решили проблему с полосой пропускания, просто перебрав проблему, вместо того, чтобы пытаться решить ее с помощью умной реализации.

Кроме того, концепция Talisman требовала тесной интеграции между системой отображения и программным обеспечением, использующим ее. В отличие от новых 3D-карт, поступающих на рынок в то время, системы Talisman должны иметь возможность запрашивать у ЦП повторную визуализацию частей изображения, чтобы обновить их. Это требовало, чтобы игры имели определенную организацию в памяти, чтобы отвечать на эти запросы. Чтобы помочь разработчикам в решении этой задачи, Direct3D был изменен, чтобы он более точно соответствовал потребностям Talisman. Однако для любой игры, которая уже была написана, или тех, которые не хотели быть привязанными к Talisman, это сделало систему D3D медленнее и значительно менее интересной.

Исчезновение [ править ]

В результате этих изменений Talisman так и не стал коммерческим продуктом. Cirrus Logic и Samsung отказались от этой системы в 1997 году, в результате чего Microsoft отказалась от планов по выпуску Escalante в 1997 году, и внешним наблюдателям казалось, что весь проект мертв. [5]

Однако вскоре после этого произошло короткое возрождение, когда Fujitsu заявила, что работает над однокристальной реализацией, которая будет доступна в 1998 году, и появились слухи о подобных проектах в S3 Graphics и ATI Technologies . [6] Ни одна из этих систем так и не была отправлена, и Талисман был тихо убит. Это вызвало большой восторг у сторонних поставщиков графических ускорителей, а также людей в Microsoft, которые поддерживали их на рынке с помощью DirectX .

Наследие [ править ]

Тем не менее, некоторые идеи, впервые реализованные в системе Talisman, с тех пор стали распространены в большинстве ускорителей. В частности, сейчас широко используется сжатие текстур. На более поздних картах сжатие также использовалось для z-буферов, чтобы уменьшить требования к памяти при сортировке дисплея. Идея использования «чанков» для сортировки дисплея также использовалась в небольшом количестве карт, называемом рендерингом на основе тайлов , но она стала конкурентоспособной на рабочем столе только намного позже, с выпуском графических процессоров NVidia на базе Maxwell. в 2014 году. Многие графические процессоры, специально разработанные для мобильных устройств (таких как сотовые телефоны), используют мозаичный подход. Только одна ключевая идея Talisman, запрашивающая обновления геометрии только «при необходимости», с тех пор не применялась.

Ссылки [ править ]

  1. ^ Аллен Баллман, "Что такое Талисман?" Архивировано 13 сентября2006 г. в Wayback Machine , Microsoft Research, SIGGRAPH 1996.
  2. ^ Комбинированный выпуск: Microsoft Talisman "Repackages" Chapel Hill Concept
  3. ^ Джей Torborg и Джеймс Kajiya, «Талисман: Товарреальном времени 3Dграфики для ПК», SIGGRAPH 1996
  4. ^ Фрэнсис Вейл, Intel MMX против Microsoft Talisman: Abbott и Costello Do Multimedia , 21-е; Сеть VXM, 1997 г.
  5. ^ Фрэнсис Вейл, Талисман, Часть II: Microsoft все еще не получает трехмерное изображение , 21-е; Сеть VXM, 1997 г.
  6. ^ Марк Hachman, F «ujitsu довести Талисман к жизни от Microsoft» , Новости Электронного покупателя , 16 сентября 1998

Внешние ссылки [ править ]

  • Chicken Crossing , короткометражный фильм, созданный в реальном времени с использованием концепций Talisman, представлен на SIGGRAPH '96