Устройство,которое называетсявидеоадаптером(или видеоплатой,видеокартой),есть в каждомкомпьютере.В виде устройства,интегрированногов системнуюплату, либо вкачествесамостоятельногокомпонента– платы расширения.Главная функция,выполняемаявидеокартой,это преобразованиеполученнойот центральногопроцессораинформациии команд в формат,который воспринимаетсяэлектроникоймонитора, длясоздания изображенияна экране. Мониторобычно являетсянеотъемлемойчастью любойсистемы, с помощьюкоторого пользовательполучает визуальнуюинформацию.
Стандартныетипы видеоадаптеров
MDA (Monochrome DisplayAdapter - монохромныйадаптер дисплея)- простейшийвидеоадаптер,применявшийсяв первых IBM PC. Работаетв текстовомрежиме с разрешением80x25 (720x350, матрицасимвола - 9x14),поддерживаетпять атрибутовтекста: обычный,яркий, инверсный,подчеркнутыйи мигающий.Частота строчнойразвертки - 15Кгц. Интерфейсс монитором- цифровой: сигналысинхронизации,основной видеосигнал,дополнительныйсигнал яркости.
HGC (Hercules GraphicsCard - графическаякарта Hercules)- расширениеMDA с графическимрежимом 720x348,разработанноефирмой Hercules.
CGA (Color GraphicsAdapter - цветнойграфическийадаптер) - первыйадаптер сграфическимивозможностями.Работает либов текстовомрежиме с разрешениями40x25 и 80x25 (матрицасимвола - 8x8), либов графическомс разрешениями320x200 или 640x200. В текстовыхрежимах доступно256 атрибутовсимвола - 16 цветовсимвола и 16 цветовфона (либо 8 цветовфона и атрибутмигания), вграфическихрежимах доступночетыре палитрыпо четыре цветакаждая в режиме320x200, режим 640x200 - монохромный.Вывод информациина экран требовалсинхронизациис разверткой,в противномслучае возникаликонфликты повидеопамяти,проявляющиесяв виде "снега"на экране. Частотастрочной развертки- 15 Кгц. Интерфейсс монитором- цифровой: сигналысинхронизации,основной видеосигнал(три канала -красный, зеленый,синий), дополнительныйсигнал яркости.
EGA (Enhanced GraphicsAdapter - улучшенныйграфическийадаптер) - дальнейшееразвитие CGA,примененноев первых PC AT. Добавленоразрешение640x350, что в текстовыхрежимах даетформат 80x25 приматрице символа8x14 и 80x43 - при матрице8x8. Количествоодновременноотображаемыхцветов - по-прежнему16, однако палитрарасширена до64 цветов (по дваразряда яркостина каждый цвет).Введен промежуточныйбуфер дляпередаваемогона мониторпотока данных,благодаря чемуотпала необходимостьв синхронизациипри выводе втекстовыхрежимах. структуравидеопамятисделана наоснове такназываемыхбитовых плоскостей- "слоев", каждыйиз которых вграфическомрежиме содержитбиты толькосвоего цвета,а в текстовыхрежимах поплоскостямразделяютсясобственнотекст и данныезнакогенератора.Совместим сMDA и CGA. Частотыстрочной развертки- 15 и 18 Кгц. Интерфейсс монитором- цифровой: сигналысинхронизации,видеосигнал(по две линиина каждый изосновных цветов).
MCGA (Multicolor GraphicsAdapter - многоцветныйграфическийадаптер) - введенфирмой IBM в раннихмоделях PS/2. Добавленоразрешение640x400 (текст), чтодает формат80x25 при матрицесимвола 8x16 и 80x50- при матрице8x8. Количествовоспроизводимыхцветов увеличенодо 262144 (по 64 уровняна каждый изосновных цветов).Помимо палитры,введено понятиетаблицы цветов,через которуювыполняетсяпреобразование64-цветногопространствацветов EGA в пространствоцветов MCGA. Введентакже видеорежим320x200x256, в которомвместо битовыхплоскостейиспользуетсяпредставлениеэкрана непрерывнойобластью памятиобъемом 64000 байт,где каждый байтописывает цветсоответствующейему точки экрана.Совместим сCGA по всем режимам,а с EGA - по текстовым,за исключениемразмера матрицысимвола. Частотастрочной развертки- 31 Кгц, для эмуляциирежимов CGA используетсятак называемоедвойное сканирование- дублированиекаждой строкиформата Nx200 врежиме Nx400. интерфейсс монитором- аналогово-цифpовой:цифровые сигналысинхронизации,аналоговыесигналы основныхцветов, передаваемыемонитору бездискретизации.Поддерживаетподключениемонохромногомонитора и егоавтоматическоеопознание - приэтом в видео-BIOSвключаетсярежим суммированияцветов по такназываемойшкале серого(grayscale) для полученияполутоновогочеpно-белогоизображения.Суммированиевыполняетсятолько привыводе черезBIOS - при непосредственнойзаписи в видеопамятьна мониторпопадает толькосигнал зеленогоцвета (если онне имеет встроенногоцветосмесителя).
VGA (Video GraphicsArray - множество,или массив,визуальнойграфики) - расширениеMCGA, совместимоес EGA, введен фирмойIBM в средних моделяхPS/2. Фактическийстандартвидеоадаптерас конца 80-х годов.Добавлен текстовыйрежим 720x400 дляэмуляции MDA играфическийрежим 640x480 с доступомчерез битовыеплоскости. Врежиме 640x480 используетсятак называемаяквадратнаяточка (соотношениеколичестваточек по горизонталии вертикалисовпадает состандартнымсоотношениемсторон экрана- 4:3). Совместимс MDA, CGA и EGA, интерфейсс мониторомидентичен MCGA.
IBM 8514/а - специализированныйадаптер дляработы с высокимиразрешениями(640x480x256 и 1024x768x256), с элементамиграфическогоускорителя.Не поддерживаетвидеорежимыVGA. интерфейсс монитороманалогиченVGA/MCGA.
IBM XGA - следующийспециализированныйадаптер IBM. расширеноцветовое пространство(режим 640x480x64k), добавлентекстовый режим132x25 (1056x400). Интерфейсс монитороманалогиченVGA/MCGA.
SVGA (Super VGA - "сверх"VGA) - расширениеVGA с добавлениемболее высокихразрешенийи дополнительногосервиса. Видеорежимыдобавляютсяиз ряда 800x600, 1024x768,1152x864, 1280x1024, 1600x1200 - все ссоотношением4:3. Цветовоепространстворасширено до65536 (High Color)или 16.7 млн. (TrueColor). Такжедобавляютсярасширенныетекстовыережимы формата132x25, 132x43, 132x50. Из дополнительногосервиса добавленаподдержка VBE.Фактическийстандартвидеоадаптерапримерно с 1992г.
Устройствотиповой видеокарты
Она состоитиз четырехосновных устройств:памяти, контроллера,ЦАП и ПЗУ.
Видеопамятьслужит дляхранения изображения.От ее объемазависит максимальновозможноеполное разрешениевидеокарты– A*B*C, где A - количествоточек по горизонтали,B - по вертикали,и C - количествовозможныхцветов каждойточки. Например,для разрешения640x480x16 достаточно256 Кб, для 800x600x256 - 512 Кб,для 1024x768x65536 (другоеобозначение- 1024x768x64k) - 2 Мб, и т.д.Поскольку дляхранения цветовотводится целоечисло разрядов,количествоцветов всегдаявляется степеньюдвойки (16 цветов- 4 разряда, 256 - 8разрядов, 64k - 16, ит.д.).
Видеоконтроллеротвечает завывод изображенияиз видеопамяти,регенерациюее содержимого,формированиесигналов разверткидля монитораи обработкузапросов центральногопроцессора.Для исключенияконфликтовпри обращениик памяти состороны видеоконтроллераи центральногопроцессорапервый имеетотдельныйбуфер, которыйв свободноеот обращенийЦП время заполняетсяданными извидеопамяти.Если конфликтаизбежать неудается - видеоконтроллеруприходитсязадерживатьобращение ЦПк видеопамяти,что снижаетпроизводительностьсистемы; дляисключенияподобных конфликтовв ряде картприменяласьтак называемаядвухпортоваяпамять, допускающаяодновременныеобращения состороны двухустройств.
Многие современныевидеоконтроллерыявляется потоковыми- их работа основанана созданиии смешиваниивоедино несколькихпотоков графическойинформации.Обычно этоосновное изображение,на котороенакладываетсяизображениеаппаратногокурсора мышии отдельноеизображениев прямоугольномокне. Видеоконтроллерс потоковойобработкой,а также с аппаратнойподдержкойнекоторыхтиповых функцийназываетсяакселераторомили ускорителем,и служит дляразгрузки ЦПот рутинныхопераций поформированиюизображения.
ЦАП (цифроаналоговыйпреобразователь,DAC) служит дляпреобразованиярезультирующегопотока данных,формируемоговидеоконтроллером,в уровни интенсивностицвета, подаваемыена монитор. Всесовременныемониторы используютаналоговыйвидеосигнал,поэтому возможныйдиапазон цветностиизображенияопределяетсятолько параметрамиЦАП. БольшинствоЦАП имеют разрядность8x3 - три каналаосновных цветов(красный, синий,зеленый, RGB) по256 уровней яркостина каждый цвет,что в суммедает 16.7 млн. цветов.Обычно ЦАПсовмещен наодном кристаллес видеоконтроллером.
Видео-ПЗУ -постоянноезапоминающееустройство,в которое записанывидео-BIOS, экранныешрифты, служебныетаблицы и т.п.ПЗУ не используетсявидеоконтроллеромнапрямую - кнему обращаетсятолько центральныйпроцессор, ив результатевыполненияим программиз ПЗУ происходятобращения квидеоконтроллеруи видеопамяти.ПЗУ необходимотолько дляпервоначальногозапуска адаптераи работы в режимеMS DOS; операционныесистемы с графическиминтерфейсом- Windows или OS/2 -практическине используютПЗУ для управленияадаптером, хотяи могут иметьпроблемы вработе приошибках в программеBIOS, не найденныхразработчиками.
На карте обычноразмещаютсяодин или несколькоразъемов длявнутреннегосоединения;один из нихносит названиеFeature Connectorи служит дляпредоставлениявнешним устройствамдоступа к видеопамятии изображению.К этому разъемуможет подключатьсятелеприемник,аппаратныйдекодер MPEG, устройствоввода изображенияи т.п. На некоторыхкартах предусмотреныотдельныеразъемы дляподобных устройств.
Видеоускорители(акселераторы)
Ускоритель(accelerator) - набораппаратныхвозможностейадаптера,предназначенныйдля перекладываниячасти типовыхопераций поработе с изображениемна встроенныйпроцессорадаптера. Различаютсяускорителиграфики (graphicsaccelerator) с поддержкойизображенияотрезков, простыхфигур, заливкицветом, выводакурсора мышии т.п., и ускорителианимации (videoaccelerators) - с поддержкоймасштабированияэлементовизображенияи преобразованияцветовогопространства.
Почти сразупосле появленияSVGA, видеоадаптерыстали оснащатьакселераторамидля аппаратногоускоренияработы с графическимиоперационнымисистемами –прорисовкойи заливкой“окон”, аппаратнымкурсором “мыши”и пр., а затеми ускорениянекоторыхпростых, носильно загружавшихпроцессоропераций работыс цифровымвидео – MPEG.Вплоть до переносана видеочипполного декодераMPEG.
В последнеевремя в области2D-графикинаметилсянекоторыйзастой – ничегонового в этойобласти ужене было придумано,все видеоплаты,вплоть до самыхдешевых, почтивыровнялисьпо скоростии качествуизображения.Однако рыноквидеоплат былпрямо такивзорван появлениемАКСЕЛЕРАТОРОВТРЕХМЕРНОЙГРАФИКИ.
Основныепонятия 3D-графики
Артефакты(Artefacts)
Артефакт –недостаток,побочный эффект,изъян, присутствующийв изображении.Ниже приводятсяназванияраспространенныхартефактов(эти названияиспользуютсяв описаниипонятий), и иханглийскиеэквиваленты.Названия вцелом условны– у многих предметовнет стандартногоназвания.
Размытость | Blur | смазываниемелких деталейтекстуры | |
Муар | Moirepattern | текстура срегулярнойструктуройполучаетинородныйрисунок | |
Полосы мипмэппинга | Mipmap bands | видны границымежду текстурамис разнымимип-уровнями(на рисункесверху и снизу) | |
Пикселизация | Pixelization | образование"квадратов"при сильномрастягиваниитекстуры иотсутствиибилинейнойфильтрации | |
Шум | Noise,sparkling | текстура теряетсвою структуру;при движениитекстура недвигается,а "шумит" | |
Нестыковкатекстур | полигоны нестыкуютсямежду собой,оставляя тонкиесветлые илитемные промежутки | ||
Лестничныйэффект | Jaggies,stair-stepping | зубчатостькраев полигонови диагональныхлиний | |
Z-алиасинг | Z-aliasing | неправильныйрасчет глубины |
Альфа-смешение(Alpha blending)
Альфа-смешение– техника созданияэффекта полупрозрачностипутем объединенияисходногопиксела с пикселом,уже находящимсяво фрейм-буфере.Каждому пикселуобычно ставитсяв соответствиезначения красного,зеленого исинего компонентовцвета (R,G,B). Еслиставится всоответствиееще альфа-значение,то говорят чтопикселы имеютальфа-канал(компонент A всхеме RGBA). Альфа-значениеопределяетстепень прозрачностиконкретногопиксела. Объектымогут иметьразличнуюпрозрачность,например стеклоимеет высокийуровень прозрачности(и таким образомнизкое альфа-значение),а желе – среднийуровень. Альфа-смешениеесть процесскомбинированиядвух объектовна экране сучетом ихальфа-каналов.
Альфа-смешениеиспользуетсядля: антиалиасинга,прозрачности,создания теней,зеркал, тумана.
Антиалиасинг(Anti-aliasing)
Алиасинг –результатсэмплинга, тоесть преобразованиянепрерывногоизображениев дискретное.Алиасинг ухудшаеткачество изображения,вызывая разнообразныеартефакты:лестничныйэффект, муари шум. Антиалиасингпризван нейтрализоватьподобные артефактыи улучшитькачество изображения.По предназначениюантиалиасингделится накраевой и полный.
Краевой антиалиасинг– механизмборьбы с лестничнымэффектом. Краевойантиалиасингсглаживаеткрая полигонови диагональныелинии. Краевойантиалиасингприменяетсяв 3D-ускорителяхVoodoo Graphics, Voodoo 2, Verite V2000.
Для реализациикраевогоантиалиасингачаще всегоиспользуюттехнику усредненияпо площади(area averaging). Цвет пикселаопределяетсяна основаниитого, насколькокаждый полигонперекрываетданный пиксел.Например, какпоказано нарисунке ниже,пиксел перекрываютдва полигона:A и B. Метод усредненияпо площадиопределяетвидимые области,занимаемыеполигонами,которые "прикасаются"к пикселу, ивычисляетрезультирующийцвет на основаниивидимых площадейперекрытия(то есть принадлежащихи пикселу, иполигону). Пустьполигон A занимает40% площади пиксела,а полигон B –60%. Результирующийцвет в этомслучае определяетсяцветами A и B cвесовымикоэффициентами40% и 60% соответственно(то есть проводитсяоперацияальфа-смешения).Для линий иточек методтот же самый,в данном случаесчитается, чтолинии и точкиимеют ненулевуюплощадь.
К сожалению,альфа-смешениев краевомантиалиасингеприводит кпоявлениюартефакта подназваниемbleeding (дословно"кровоточение").Bleeding – окрашиваниевнутреннихребер в цветфона, это связанос тем, что междугранями образуетсятонкий просвет.Поэтому программасама должназнать, какиеребра и линиинужно сглаживать.Из-за этогокраевой антиалиасингсложно программировать.
Полный антиалиасинг,в отличие откраевого, направленна полнуюнейтрализациюалиасинга.Единственнымпредставителемполного антиалиасингаявляетсясубпиксельныйантиалиасинг.Субпиксельныйантиалиасингприменяетсяв 3D-ускорителяхPVNG, Intel740, nVidia Riva128и TNT, а такжево всех профессиональныхOpenGL-ускорителях.
Субпиксельныйантиалиасингв Intel740 и nVidiaRiva TNTбазируетсяна техникесуперсэмплинга.Суперсэмплингозначает, чтовся сцена рендеритсяв каком-то большомвиртуальномразрешении,а затем сжимаетсядо фактическогоразрешения.В общем случаевиртуальноеи фактическоеразрешениямогут бытьнекратными.Техника суперсэмплингавозможна из-затого, что этиускорителииспользуютtile-based архитектуру.Ускорителютрадиционнойархитектурыпотребовалсябы большойобъем памяти(для виртуальногоразрешения1600x1200 – более 8 MB). Делов том, что ускорительtile-based архитектурыне работаетс целым фреймбуфером,а с отдельнымифрагментами(tiles). И все данныео субпикселахон хранит толькодля фрагмента,который рендеритсяв данный момент.
В 3D-ускорителяхсерии Glint от 3DLabsиспользуетсядругой метод,основанныйна хранениимаски. Рассмотримслучай, когда1 пиксел разбиваетсяна 16 (4x4) субпикселов(эта техниканазываетсямультисэмплингом),а полигонырендерятсяfront-to-back (картинкаснизу).
Когда рендеритсяполигон непереднем плане,субпикселы2,3,4,7,8,12 окрашиваютсяв цвет переднегополигона. Причемзапоминается,какие субпикселыпопали в переднийполигон, тоесть маска. Этамаска проверяетсякогда рендеритсязадний полигон.Субпикселы1,5,6,9 окрашиваютсяв цвет заднегополигона. Субпикселы2,3, принадлежащиеобоим полигонам,не изменяютцвет и такимобразом остаютсяс цветом переднегополигона. Врезультате– никакогоbleedingа.
Обратная сторонатакого антиалиасинга– это необходимостьхранения маскидля каждогопиксела и требованиесортировкиполигоновfront-to-back. Второе требованиеможно обойти,сохраняя z-координатудля каждогосубпиксела.Однако хранитьz-координатыдля всех субпикселейна экране невозможно,так как этотребует гигантскогообъема видеопамяти.Поддержкусубпиксельногоантиалиасингас z-буферизациейреализуеттехника аккумулятора.Суть его сводитсяк тому, что обработкаведется последовательнодля каждогопиксела и приэтом используетсяодна и та жепамять. Недостаток:из-за требованияпоследовательнойобработкиневозможностьаппаратногораспараллеливанияи как следствиеуменьшениепроизводительностив число раз,равное числусубпикселовв пикселе. Напримерсубпиксельныйантиалиасинг4x4 снижаетпроизводительностьв 16 раз, или другимисловами увеличиваетFillrate в 16 раз.
Мипмэппинг(MIP-mapping)
Мипмэппинг(MIP-mapping) используетнескольковерсий однойтекстуры сразной степеньюдетализации(LOD – level-of-detail), причемследующаяверсия меньшепредыдущейв 4 раза (например128x128, 64x64, 32x32 и т.д.). Такиеверсии называютсямип-уровнями,а все версииодной текстуры– мип-каскадом.
Цели мипмэппинга:
Уменьшениевремени обработки– для объектовна далекомрасстоянииобрабатыватьтекстуру снизким разрешениемгораздо легче
Избавлениеот шума и муара- добавлениемип-уровнейс низким уровнемдетализации
Существуетнесколько видовмипмэппинга,но все они используют1 либо 2 соседнихмип-уровня. Примипмэппинге,каждый используемыймип-уровеньлибо увеличивается,либо уменьшается(соотвествие1:1 статистическиредко). Увеличениеи уменьшениеназываютсясоответственномагнификацией(magnification) и минификацией(minification). И минификация,и магнификацияимеет своинедостатки.Минификацияприводит кunderfilteringу (выражающемусяв муаре и шуме),магнификация- к overfilteringу (выражающемусяв пикселизацииили заблюриванию).Чем меньшеискажаетсямип-уровень,тем лучше выглядиттекстура вконечном итоге.
Основные видымипмэппинга:
Простоймипмэппинг(nearest mipmapping) без билинейнойфильтрациисейчас неиспользуется.
Простоймипмэппингс билинейнойфильтрацией.Самый применяемыйметод сегодня.Похож на предыдущийметод, но междутекселамивыполняетсяинтерполяция.При приближенииили удаленииобъекта отнаблюдателявыбираетсяподходящиймип-уровень.При приближениик наблюдателювыбираетсямип-уровеньс бОльшей степеньюдетализации,при удалении– с меньшей.Что же будетс мип-уровнемв конкретныймомент – будетвыполнятьсяминификацияили магнификация?Это зависитот конкретнойреализациии от параметра,называемогоLOD-bias. Если в рендерингедоминируетминификация,то на сценеприсутствуютшум и муар. Еслидоминируетмагнификация,то текстурыкажутся болееразмазанными,но муара/шуманет. Простомумипмэппингуприсущ артефакт,выражающийсяв резких переходахна текстурированнойповерхности(так называемыеполосы мипмэппинга).Это происходитпри смене степенидетализации,если мип-каскаднарисованнекачественно.
Трилинейнаяфильтрация(tri-linear filtering). Наиболееаккуратныйспособ вычисленияцвета пиксела.Трилинейнаяфильтрацияболее сложна,нежели предыдущиеметоды. В отличиеот простогомипмэппинга,в котором простовыбираетсяподходящийуровени детализации,здесь проводитсяинтерполяциямежду двумясоседнимимип-уровнями.Благодаряэтому полосымипмэппингане образуются.При вычислениицвета пикселаиспользуется8 текселов (4 прибилинейнойфильтрации)и требует 7операций смешения(3 при билинейнойфильтрации).Использованиетрилинейнойфильтрациидает гораздоболее высокоекачествоизображениядля движущихсяобъектов.
Адаптивнаяфильтрациячастично решаетпроблемуoverfilteringа/underfilteringа. Программавыбирает какобрабатыватьмип-уровни,отдельно верхнийи нижний. Напримеринтерполироватьнижний мип-уровень,и не интерполироватьверхний мип-уровень,а затем интерполироватьполученныетекстуры междусобой, как притрилинейнойфильтрации.
Мипмэппингпредполагает,что разработчиксам создаетмип-каскад.Однако многиеигры имеют лишьтекстуры содним разрешением.Для решенияэтой проблемыбыла придуманатехника авто-мипмэппинга.Драйвер 3D-ускорителясам вычисляетнесколькомип-уровней,используяосновную текстуру(она становитсямип-уровнемс максимальнойдетализацией).Техника авто-мипмэппингаиспользуетсятакже для увеличениячисла мип-уровней,если игра используетнедостаточноеих количество(например многиеигры используютвсего 3 мип-уровнядля экономиитекстурнойпамяти).
Мипмэппингдает высокоекачество дляполигонов,преимущественнообращенныхна наблюдателя(т.е. расположенныхпараллельноплоскостиэкрана), таккак такие полигонысостоят изквадратныхпикселов. Однаконаклоненныеполигоновсостоят изнеквадратныхпикселов, и кпроблеме размерапикселов добавляетсяпроблема формыпикселов. Пристандартномподходе фильтр,который хорошоработает сквадратнымипикселами, даетсильный алиасингна неквадратных.Решением этойпроблемы являетсяанизотропнаяфильтрация,которая являетсяболее сложнымфильтром, чемтрилинейнаяфильтрация.Анизотропнаяфильтрацияработает спикселами какс эллипсамии для полученияодного пикселаобрабатываетбольшое количествотекселов (до32).
Морфингуровня детализации(LOD morphing)
Морфинг уровнядетализации(LOD) весьма полезенв играх с большимиоткрытымипространствами.Его главнаяцель – обеспечениеплавного появленияобъектов вобласти видимостиигрока. Пример:автомобильныйсимулятор.Дома, деревья,которые внезапнопоявляютсяв области видимости"ниоткуда",вызывают неприятноевпечатление.В данном случае,при реализацииморфинга уровнядетализациидома и деревьяпоявляютсяполностьюпрозрачными,а по мере приближенияк игроку приобретаюточертания,становятсяболее плотными,и в непосредственнойблизости становятсяполностьюнепрозрачными.
Другое, болеесложное применениеморфинга уровнядетализации– реализацияобъектов сразным уровнемдетализации.Создаетсянескольковерсий одногообъекта с разнойстепенью детализации:самая низкаядетализациядля отображенияобъекта наочень далекомрасстоянии,и самая высокаядетализациядля самогоблизкого расстояния.Чем выше детализация,тем из большегочисла полигоновсостоит объект.Это позволяетуменьшить числополигонов насцене, и следовательноповыситьпроизводительность.Например, нетсмысла отображатьавтомобильво всей егокрасе на расстоянии,при которомигрок можетразличитьтолько цветавтомобиля.Переходы междууровнями детализацииосуществляетсятакже варьированиемпрозрачности:смена детализациипроисходитне мгновенно,непрозрачная(старая) версиястановитсяпрозрачной,а прозрачная(новая) – болееплотной.
Версии одногообъекта дляразных уровнейдетализациимогут готовитьсяна стадии разработки,а могут просчитыватьсяв реальномвремени методомпрогрессивныхсеток (progressive meshes).Прогрессивныесетки поддерживаютсяDirect3D.
Мультитекстурирование(Multitexturing)
Мультитекстурирование– метод рендерингас использованиемнесколькихтекстур заминимальноечисло проходов.Текстурынакладываютсяна объектпоследовательно,с использованиемразного родаарифметическихопераций.Мультитекстурированиепозволяетконвейеризироватьналожениетекстур сиспользованиемнескольких(обычно двух)блоков текстурирования.Рисунок нагляднодемонстрируетвыполняемыедействия. Первыйблок накладываетна пиксел текстуруTex0, используяоперацию Op0,передает пикселвторому блоку.Этот пикселпередаетсявторому блоку,который натягиваетна него текстуруTex1, используяоперацию Op1. Вэто время первыйблок не ждет,а переходитк обработкеследующегопиксела, и т.д.Мультитекстурированиепохоже наконвейеризациюв микропроцессорах,только мультитекстурированиегораздо проще,здесь нет никакихветвлений ит.п. Операцииналожениятумана и альфа-смешенияс фрейм-буферомне относятсяк мультитекстурированиюи выполняютсяпосле всехстадий.
Мультитекстурированиеможет использоватьсядля эффективнойреализациитаких эффектовкак:
картыосвещенности(lightmaps)
отражения(reflections)
морфингтекстур(texture morphing)
текстурыс детализацией(detailed textures)
Рендеринг(Rendering)
Рендеринг– процессвизуализациитрехмерныхобъектов исохранениеизображенияв фрейм-буфере.Рендерингвыполняетсяпо многоступенчатомумеханизму,называемомуконвейеромрендеринга.Конвейер рендерингаможет бытьразделен на3 стадии: тесселяция,геометрическаяобработка ирастеризация.Принцип конвейеризацииявляетсяфундаментальнымпонятием, всоответствиис ним работаюти 3D-ускорители,и 3D-API, – благодаряконвейеру можнорассмотретьработу любогоиз них. Есливзять произвольный3D-ускоритель,то он не будетускорять всестадии конвейера,и даже болеетого, стадиимогут лишьчастично ускорятьсяим. Далее мырассмотримподробнеестадии конвейерав контекстеработы 3D-ускорителей.Традиционнокаждую стадиюобозначаютбуквами.
Стадия "T".Тесселяция(триангуляция)– процесс разбиенияповерхностиобъектов наполигоны(треугольникиили четырехугольники).Эта стадияпроводитсяполностьюпрограммновне зависимостиот техническогоуровня и цены3D-аппаратуры.Тем не менеетесселятор(программныйкод, отвечающийза тесселяцию)должен учитыватьособенноститого или иного3D-ускорителя,так как онимогут иметьразные требованияк полигонам-примитивам:
произвольныетреугольники
треугольникис горизонтальнойнижней иливерхней гранью
треугольникили четырехугольникс описаниемуравненийребер (бесконечныеплоскости)
Также тесселятордолжен учитывать,умеет ли работатьс сетками(meshes) разных типов.Если 3D-программаразрабатываетсяна высокоуровневом3D-API, напримерDirect3D RM или PowerRender, то ейне надо заботитьсяобо всех этихдеталях, таккак такой API имеетсвой тесселятор.
Стадия "G".Геометрическаяобработкаделитсяна несколькофаз, и можетчастично ускоряться3D-ускорителем.
трансформация(transformation) – преобразованиекоординат(вращение, переноси масштабированиевсех объектов)
отсечение(clipping), выполняемоедо и послепреобразованиякоординат
освещение(lighting) – определениецвета каждойвершины с учетомвсех световыхисточников(решение уравненияосвещенности)
проецирование(projection) – преобразованиекоординат всистему координатэкрана
setup– предварительнаяобработкапотока вершин(перевод изплавающейточки в фиксированнуюточку данныхо вершинах, атакже сортировкавершин, отбрасываниезадних граней,субпиксельнаякоррекция)
Наиболее частолюди путаютсяименно с геометрическойобработкой.Это усугубляетсятем, что самипроизводителипутают терминологию.(Например 3Dlabsзаявляет, чтоGlint Delta – геометрическийсопроцессор,что вообщеговоря неверно,Delta – это setup engine.) Большинствосуществующих3D-ускорителейускоряют толькопоследнюю фазу– setup, при том делаютэто с разнойстепенью полноты.Говорят, что3D-ускорительимеет полныйsetup engine, если он можетпереводитьв фиксированнуюточку все данныео вершине. Взависимостиот типа примитивов,с которымиработает3D-ускоритель,речь ведетсяо triangle setup или о planar setup.
Геометрическийпроцессоромназываетсяускоритель,который ускоряетвсю стадиюгеометрическойобработки, втом числетрансформациюи освещение.Реализациягеометрическогопроцессорадовольно дорого,и как уже былосказано, онявляется объектомрекламныхспекуляций.Определитьреализованли геометрическийпроцессордовольно легко– надо выяснить,поддерживаетли 3D-ускорительоперации сматрицами. Безтакой поддержкине может идтиречь об ускорениифазы трансформации.Геометрическимипроцессорамиявляются напримерGlint Gamma и Pinolite.
Стадия "R".Растеризация– наиболееинтенсивнаяоперация, обычнореализуемаяна аппаратномуровне. Растеризаторвыполняетнепосредственнорендеринг иявляется наиболеесложной ступеньюконвейера. Еслистадия геометрическойобработкиработает свершинами, торастеризациявключает операции,проводимыена пиксельноми суб-пиксельномуровне. Растеризациявключает в себяудаление скрытыхповерхностей,текстурирование,альфа-смешение,z-буферизация,затенение,антиалиасинг,dithering.
Текстурирование(Texture mapping)
Текстурирование– основнойметод моделированияповерхностей.Текстура –изображение,накладываемоена поверхность.Использованиетекстур требуетгораздо меньшересурсов, нежелимоделированиеповерхностис помощью полигонов.Текстуры хранятсяв текстурнойпамяти, отдельныетексели (точкитекстуры)используютсядля покрытиятекстуройпикселей передзаписью вофрейм-буфер.В зависимостиот конкретногометода текстурирования,разное числотекселей требуетсядля обработкиодного пиксела.
Сэмплинг(point-sampling) – простейшийметод текстурирования,в котором дляотображенияодной точкииспользуетсявсего одинтексел (рисунокниже). Этомуметоду присущсерьезныйартефакт: когданаблюдательприближаетсявплотную ктекстурированнойповерхности,происходитпикселизация.Для избежанияэтого артефактаиспользуютдругие методытекстурирования,основанныена фильтрациитекстур.
Билинейнаяфильтрация(bi-linear filtering) использует4 смежных текселадля полученияодного пиксела(рисунок ниже).Билинейнаяфильтрациятребует четыреоперации смешениядля каждогорезультирующегопиксела: длядвух верхнихтекселей, длядвух нижнихи для двух полученныхзначений.
Более сложныеметоды текстурированияоснованы намипмэппинге.
Когда полигонытекстурируются,необходимоучитыватьперспективу.Для того, чтобытекстурированныеобъекты выгляделиправильно,необходимаперспективнаякоррекция.Она гарантирует,что текстураправильноналожится наразные частиобъекта. Перспективнаякоррекция –ресурсоемкаяпроцедура (однаоперация деленияна каждый пиксел),поэтому 3D-ускорителидолжны реализовыватьее аппаратно.Но разные ускорителидостигаютразного качестваперспективнойкоррекции.
Fillrate – скоростьтекстурирования,измеряемаяв пикселах всекунду, являетсяочень важнойвеличиной, иименно ее указываюткак основнуюхарактеристику3D-чипсета. Fillrate 100млн пикселей/секозначает, что3D-ускорительможет обработать100 млн пикселейв секунду, накладываяна них текстуры.На fillrate влияетмножествофакторов, такихкак тип фильтрации,глубина цвета,альфа-смешение,туман и антиалиасинг.
Туман(Fog)
Туман используетсядля созданияатмосферныхэффектов. Туманиспользуетсядля созданиядымки и скрытияудаленныхобъектов. Впервом случаеповышаетсяреалистичностьсцены, во втором– понижаетсяее сложность.
С туманом объектымогут рендеритьсяс разной степеньюдетализациив зависимостиот расстояниядо наблюдателя.Туман работаетпо принципу:чем дальшеобъект, тембольше туманего поглощает.Поэтому дляудаленныхобъектов разумноиспользоватьменьше полигонов,чем для близких.Туман такжескрывает ипереходы междууровнями детализации.
Туман можноразделить наполигонный(per-polygon) и пиксельный(per-pixel). Полигонныйметод линейноинтерполируетуровень туманапо значениямв вершинах дляполученияуровня туманав каждой точкеполигона. Этотметод хороштолько длямаленькихполигонов.Пиксельныйметод рассчитываетуровень туманадля каждогопиксела, и длябольших полигоновдает болеереалистичноеизображение.
Туман такжеможно разделитьи по другомупризнаку – налинейный иэкспоненциальный(или табличный).При линейномтумане степеньпоглощенияобъекта туманомлинейно зависитот расстояниядо наблюдателя,а при экспоненциальномтумане – рассчитываетсяна основаниитаблицы.
Удалениескрытых поверхностей(Hidden Surface Removal)
Удаление скрытыхповерхностей(hidden surface removal – HSR) – комплексныймеханизм, служащийдл\я уменьшени\ячисла треугольников,которые будутучаствоватьв рендеринге,а также правильномрендерингес точки зрени\яглубины.
Прежде всегонадо отброситьвсе треугольники,которые заведомоне видны.
Отсечение(clipping). Отбрасываютс\явсе треугольники,которые непопадают вобъем отсчечени\я(clip volume), которыйограниченшестью плоскост\ямипо трем координатам.Это важнейшийметод HSR, которыйвыполн\яетс\явсегда.
Отбрасываниезадних граней(backface culling). Выполняетсяпроверка, куда"смотрит"треугольник.Это возможно,так как у каждойвершины естьнормаль и поэтомувсе треугольникиявляютсяориентированнымив пространстве.Если треугольниксмотрит "нанаблюдателя",он считаетсявидимым, а если"от наблюдателя"– то невидимым.Это позволяетснизить вдвоечисло видимыхтреугольников,например длявывода сферы,состоящей изтреугольников,необходимосрендеритьтолько треугольники,составляющиеполусферу,которую видитнаблюдатель.
BSP-деревья.Программныйметод HSR длястатическойгеометрии,например уровнейв 3D-шутере. ЦельBSP-деревьев –упорядочениетреугольниковспереди назад(front-to-back) и определениетех треугольников,которые полностьюзакрываютсядругими.
После того, какосталось минимумтреугольников,надо их отрендерить,причем так,чтобы видимыепикселы быливидимы, а невидимые– невидимы.
Z-буферизация(z-buffering).
Z-сортировка(z-sorting). Z-сортировка– менее аккуратныйпрограммныйметод удаленияскрытых поверхностейпо сравнениюс z-буферизацией,также известныйкак алгоритмПаинтера. Объектысортируютсясзади наперед(back-to-front). Более удаленныеобъекты рендерятсяв первую очередь,за ними следуютменее удаленные.Если объектыпересекаютдруг друга, тоближайшийнакладываетсяна дальнего,то есть происходитz-алиасинг.
3D-программныеинтерфейсы(3D API)
API (программныйинтерфейс) –интерфейс длянаписанияпрограмм,поддерживающийоборудованиеопределенноготипа и операционнуюсистему. 3D API позволяетпрограммистусоздаватьтрехмерноепрограммноеобеспечение,использующеевсе возможности3D-ускорителей.API обычно включаютв себя функции,глобальныеданные, константыи другие элементы,позволяющиеразработчикуизбегатьнепосредственноговзаимодействияс оборудованием.
3D API делятся науниверсальныеи специализированные.
Универсальный3D API позволяетабстрагироватьсяот конкретногооборудования.Без универсальногоAPI, поддерживающихширокий спектр3D-ускорителей,разработчикамипришлось быпортироватьигры под множествоплат. Наиболееизвестныеуниверсальные3D API – OpenGL и Direct3D.
Специализированный3D API (Native 3D API) предназначендля одногоконкретногосемейства3D-ускорителейи ограждаетпрограммистаот низкоуровнегопрограммированияс помощью прямогодоступа к регистрами памяти. Примерыспециализированных3D API – Glide (от 3Dfx), RRedline (отRendition), PowerSGL (от Videologic), RenderGL (отIntergraph).
Direct3D – 3D API компанииMicrosoft, предназначенныйдля использованияпреимущественнов играх. Direct3D существуеттолько в Windows 95, вскором будущемпоявится вWindows NT 5.0. Direct3D имеет дварежима: RM (retained mode)или абстрактныйи IM (immediate mode) илинепосредственный.IM состоит изтонкого уровня,который общаетсяс аппаратуройи обеспечиваетсамое высокоебыстродействие.Абстрактныйрежим – высокоуровневыйинтерфейс,покрывающиймножествоопераций дляпрограммиста,включая инициализациюи трансформацию.У обоих режимовесть достоинстваи недостатки,большинствоDirect3D-игр используютIM.
OpenGL – открытый3D API, созданныйкомпанией SGI иконтролируемыйассоциациейOpenGL Architecture Review Board, в которуювходят DEC, E&S, IBM, Intel,Intergraph, Microsoft и SGI. OpenGL реализуетширокий диапазонфункций отвывода точки,линии или полигонадо рендерингакривых поверхностейNURBS, покрытыхтекстурой.
Использованиеуниверсального3D API предполагаетиспользованиедрайверовдля этого API. Насегодняшнийдень наличиедрайверовDirect3D и OpenGL являетсяобязательнымтребованиемко всем 3D-ускорителям.
Direct3D-драйверреализует такназываемыйуровень аппаратнойабстракции,HAL (Hardware Abstraction Layer) – интерфейс,который взаимодействуетнепосредственнос оборудованиеми позволяетприложениямиспользоватьвозможности3D-ускорителяс маскимальнымбыстродействием.HAL имеет низкоуровневыйдоступ к 3D-чипуи реализует3D-функции нааппаратномили программно-аппаратномуровне. В отличиеот HAL, уровеньэмуляции, HEL(Hardware Emulation Layer) являетсяпрограммнымрастеризатором.
OpenGL-драйвер можетбыть реализованв двух вариантах:как ICD и как MCD. ICD(Installable Client Driver) полностьювключает всестадии конвейераOpenGL, что даетмаксимальноебыстродействие,но ICD довольносложно программировать.MCD (Mini Client Driver) разработандля внесенияабстракциив конвейерOpenGL. MCD гораздо легчепрограммировать,так как разработчикпрограммируеттолько те участкикода драйверы,которые онсчитает нужнымоптимизироватьдля своегочипсета. ОднакоMCD уступает ICD вбыстродействии,плюс ко всемуMCD работает тольков Windows NT. Для широкоговнедренияOpenGL на платформеWindows 95 сейчас разрабатывается3D Graphics Device Driver Kit (Комплектразработчикадрайверовустройств для3D-графики). НовыйDDK будет включатьпереработанныйSGI ICD DDK и Direct3D DDK и позволитпоставщикамграфическихмикросхем иплат разрабатыватьOpenGL-драйверы дляWindows 95, Windows NT 4.0, а такжеWindows 98 и Windows NT 5.0.
Наложениерельефа(Bump mapping)
Наложениерельефа, илиbumpmapping, – продвинутаяметодикамоделированиярельефныхповерхностей.Суть bumpmappingа в следующем:в реальномвремени рассчитываетсярельефнаякарта, котораяиспользуетсядля симуляциирельефности.Такой рельефнойкартой можетбыть картаосвещенностиили карта смещенийUV. Общий видрельефной карты– DuDvL, где Du/Dv – дельтытекстурныхкоординатenvironment map, L – освещенность.
Прежде всегопрограммистготовит картувысот (height map), котораяописываетрельеф в видемножествавысот, либокарту смещенийнормалей (normaldispmap), которая описываетрельеф в виденормалей. Длятого, чтобынапример подчеркнутьпоказать бугоркии впадины рельефас помощью светотени,надо затемнитьлибо осветлитьстенки этихбугорков ивпадин. Такимобразом существеннымидля bumpmapping являютсяне сами высоты,их дифференциалы.
Рассмотримдва вида рельефныхкарт по отдельности.
Карта освещенности(lightmaps). Каждомупикселу ставитсяв соответствиезначение освещенностиL. Карта освещенностирассчитываетсяс учетом источниковсвета. Полученнаякарта освещенностинакладываетсяна основнуютекстуруальфа-смешением.Этот методсимулируетрельефностьматовой поверхностиигрой светаи тени.
Карта смещенийUV (UV-dispmap). Каждомупикселу ставитсяв соответствиевектор DuDv. Картасмещений UVиспользуютсядля полученияenvironment map с пертурбацией.Пертурбацияозначает, чтоenvironment map искажаетсяопределеннымобразом, чтобыпередатьрельефность.Полученныйenvironment map также накладываетсяна основнуютекстуруальфа-смешением.Этот методсимулируетрельефностьглянцевой илизеркальнойповерхностиотражениемокружающейсреды.
Используякомбинациюкарты освещенностии карты смещенийUV, можно получатьочень красивыемодели.
Z-буферизация(Z-buffering)
Z-буферизация– самый надежныйметод удаленияскрытых поверхностей.Z-буфер – областьвидеопамяти,в которой длякаждого пикселахранится значениеглубины. Когдарендеритсяновый пиксел,его глубинасравниваетсясо значением,хранимом вz-буфере, точнеес глубиной ужесрендеренногопиксела с темиже x и y координатами.Если новыйпиксел имеетзначение глубинывыше значенияв z-буфере, этозначит чтоновый пикселневидим, и онне записываетсяво фрейм-буфер,если ниже – тозаписывается.Z-буфер обычнорасположенво фреймбуфере,поэтому приотключенииаппаратнойz-буферизацииместо под z-буферосвобождается,что позволяет3D-ускорителюработать вболее высокихразрешениях.Ради полученияэтих высокихразрешенийнекоторые игрыс несложнойграфикой используютне Z-буферизацию,а более простыеметоды удаленияскрытых поверхностей.Тем не менееотключениеz-буферизацииможет приводитьк артефакту,известномукак z-алиасинг.
Главный аттрибутz-буфера – разрещающаяспособность.Она критичнадля высококачественногорендерингасцен с большойглубиной. Чемвыше разрешающаяспособность,тем выше дискретностьz-координат иточнее выполняетсярендерингудаленныхобъектов.24-разрядныйz-буфер даетразрешающуюспособность16 млн, 32-разрядный– 2 млрд, а 16-разрядный– только 64 тыс.Если при рендерингеразрешающейспособностине хватает, томожет случиться,что 2 перекрывающихсяобъекта получатодну и ту жеz-координату,в результатеаппаратуране будет знатькакой объектближе к наблюдателю,что опять жеведет к z-алиасингу.
При использованииz-буферизациинадо позаботитьсяо том, чтобыглубины быликорректны сточки зренияперспективы.Допустим, ускорительрендерит треугольникс заданнымиz-координатамитрех его вершин.Он должен рассчитатьz-координатыдля всех точек,лежащих внутритреугольника.Если их простоинтерполировать,то результатполучитсянекорректнымс точки зренияперспективы,поэтому их надокорректировать.Но современные3D-ускорителииспользуюттехнику, называемуюw-буфером.W-координата– величина сплавающейточкой, обратнаяк z-координате.Всем вершинамставятся всоответствиеименно w-координаты,которые можноинтерполироватьбез перспективнойкоррекции.
Поколения3D-акселераторов
Вообще-то, функции,ускоряющиерасчет трехмернойграфики, началипоявлятьсяв массовыхвидеочипахдавно – с 1995 года.Такие микросхемы,как S3 Virge и ATI Rage,имели в спискесвоих возможностейаппаратноеускорениенекоторыхопераций растеризации3D-изображения.Однако они быликрайне медленнымии в то времяеще не появилосьстандартныхAPI, а фирменныеAPI практическине были поддержаныразработчикамипрограммногообеспечения.
В 1996 году появляютсявидеочипы ссерьезнымизаявками нагордое звание“3D-ускоритель”– Verite1000 от фирмыRendition, MatroxMGA-1064SG и nVidia NV1(крайне интересныйпродукт – чипработал наоснове расчетане полигонов,а криволинейныхповерхностейБезье; имелзатенение поФонгу, а не поГуро (это вытекалоиз неполигоннойтехнологии);у него былаподдержкабилинейнойфильтрациитекстур, мипмэппинга,альфа-смешения,попиксельноготумана – кое-чтоиз этого тольконачинает внедрятьсяв самых последнихили толькоанонсированныхвидеочипах).Но они сновабыли практическине востребованыпроизводителямипрограмм – нагоризонтевозникли громадаMicrosoft с ее APIDirectX (Direct3D)и фирма, всколыхнувшаярынок массовой3D-акселерациии фактическисоздавшая егозаново – 3DFX.
Чипсет фирмы3DFX - VoodooGraphics (VooDoo1)надолго определилстандартыкачества, скоростии принципов3D-графикина PC. Voodoo Graphicsсостоял из двухмикросхем,снабжаемыхраздельнымибанками памяти- Pixel FX и Texel FX. Перваябыла предназначенадля работы сбуфером кадрови Z-буфером. Онаосуществлялазакраскутреугольников,используя дляэтого данные,поступающиесо второгокристалла,который контролировалбуфер текстури отвечал завсе операциипо получениюданных и ихинтерполяции.Судя по всему,первоначальноэта архитектураразрабатываласьдля более серьезных,неигровыхприменений,и первые мощныеплаты Obsidian (позжеи Obsidian II на базечипсета Voodoo2)использовалисьвоенными. Тактоваячастота — до60 МГц. Поддерживаласьтолько памятьтипа EDO (времядоступа — 30—35нс), при этомразмер буферакадров могдостигать 4 Мб,а буфера текстур— 8 Мб. Максимальноеразрешение— 800х600 точек, уплаты с буферомкадров емкостью2 Мб — 640х480. Скоростьзаполнения— 50—60 млн пикселейв секунду.Производительность— около 500 тыс.треугольниковв секунду. Выводтрехмерныхсцен в окнеWindows не поддерживался(была возможнаработа толькона полный экран).Также необходимоотметить ещёнесколькоособенностей.Первое – этобыл внешний3D-ускоритель,обычная 2D-видеокартасоединяласьс картой набазе VooDooGraphics посредствомскозного кабеля,а та, в свою очередь,соединяласьс монитором,пропуская еевидеосигналчерез себя.Когда программаначинала использовать3D-функции,тогда VooDooпросто блокировалсигнала обычнойвидеоплатыи работал сам.Второе – этомасштабируемость(массово этатехнологиястала применятьсятолько в Voodoo2), т.е.можно соединитьдве карты водну и при этомувеличиваетсямаксимальноеразрешениеи, конечно, скорость.И третье - удобныйдля программированияAPI Glide, которыйподдерживалсятолько картамиот 3Dfx и до сих пореще поддерживаетсяразработчикамипрограммногообеспечения.
К тому же, 3DFX нестала ленитьсяи добиласьширокой поддержкисвоего продуктаразработчикамиигр – путемличных беседс программистамии руководителямифирм, поставкивариантов своихкарт для проверкиработоспособностипрограмм исоздания (безпроволочеки задержек) SDK(Software DevelopmentKit) для Glideи бесплатнойрассылки егопочти всемдевелоперскимфирмам.
Только почтичерез год, кконцу 1996-нач. 1997года появилсяконкурент этомучипсету. И сталим новый продуктфирмы nVidia– Riva128. Фирмаучла свой неудачныйопыт с NV1 ипошла по уженакатанной3DFX колее вархитектуресвоего чипсета.Новый ускорительработал с принятойвсеми разработчикамипрограммногообеспеченияполигоннойтехнологиейно, кроме повторенийнекоторых идей3DFX, имел исвои плюсы.Сразу отметимвдвое большуюразрядностьшины памяти.Первый плюс.Второй плюсзаключаетсяв интеграции2D/3D ускорителейна одной микросхеме.Также, оченьнеплохой являласьработа с вводом/выводомкомпозитноговидеосигнала(конечно длявидеоплаты,у которой этифункции неявляются основными).Микросхемастала однойиз первых, ктобыл совместимс новой графическойшиной AGP (не теряяподдержки PCI)и была первой,корректно иосмысленнореализовавшейестественнуюдля AGP архитектуруDIME (Direct Memory Execution), котораяпозволяетотводить частьоперативнойпамяти компьютерапод хранениетекстур (AGP Memory).Таким образомбуфер кадрови Z-буфер находятсяв локальнойпамяти платы,а большая частьтекстур хранитсяв системнойпамяти компьютера.Поддерживалаработу толькос 16 битным цветом.Riva128 была сильнопроцессорозависимымчипом - максимальныехарактеристикибыли достижимытолько на недавнопоявившихсятогда процессорахкласса PentiumII.Fillrate составлял100 млн. пикселейв секунду. Геометрия– до 5 млн. треугольниковв секунду. Такжесуществовалнесколькодоработанныйвариант Riva 128ZX сувеличеннымобъемом памятидо 8 Мб (у обычнойRiva 128 – 2-4 Мб).
В конце 1997-нач.1998 г. (вообще, стех пор именноэто время почему-тостало у фирмлюбимым временемпредставленияновых 3D-продуктов)появилисьускорителиследующегопоколения.
Первым вышелновый чипсетот 3DFX – VooDoo2.Это было трехчиповоерешение – чипсетимел 2 микросхемыTexel FX2,работавшихпод управлениемсхемы PixelFX2. Карты наего основепродолжалитрадиции VooDooGraphics и былидополнительнымикартами дляосновной видеоплаты.В связи с наличиемдвух текстурныхпроцессоров,стало возможнымналожение двухтекстур за одинпроход - “бесплатное”мультитекстурирование(“бесплатное”в том смысле,что производительностьв режимемультитекстурированияне падала, посравнению соднотекстурнымрежимом, таккак в этом случаевторой текстурныйпроцессорпросто не работал).Тактовая частотакристаллавозросла до100 МГц. Имел 192-битнуюархитектуру,скорость работыс памятью – 2,2Гб/с, fill rate– 90 Mpixels/sec,способен обсчитывать3млн. полигонов/с. Именно в этомчипсете былаполностьюреализованадля массовогопользователятехнологияSLI (Scan Line Interleave). По этойтехнологии2 карты VooDoo2 устанавливалисьв систему исоединялисьдля параллельнойработы (однасчитала четныестроки изображения,а вторая – нечетные).При этом теоретическаяпроизводительностьвырастает вдвое(реально чутьменьше). За счетэтого Voodoo2 удавалосьдолго держатьсяна плаву.
Позже появилсяи главный конкурент– 3D-чип RivaTNT (TwiN Texel)от фирмы nVidia.Он тоже имелдва текстурныхконвейера имог делатьоднопроходноемультитекстурированиеи трилинейнуюи анизотропнуюфильтрацию.Имел 24(16)-битныйZ-буфер и8-битный буфершаблонов (черезкоторый можнобыло делатьинтересныеэффекты, вроде“правильных”теней). Fillrate – 250 Mpixels/sec(125 – в режимемультитекстурирования),6 млн. полигонов/с.Обладал прекрасными2D- возможностями– имел RAMDAC250 MHz, акселерациюдля распаковкивидео форматовMPEG-1 и MPEG-2(для проигрыванияDVD).
Чуть позже TNT,3DFX выпустилна рынок первыйсвой 2D/3D-чипсетVoodoo Banshee.Это был вариантVoodoo 2, но безодного TexelFX2 процессораи со встроеннойв чип 2D-графикой.Был медленнееVoodoo2 в режимемультитекстурирования,который фактическивытеснилоднотекстурныйк этому времени,но все равнообладал неплохойскоростью икачественнойграфикой, поэтому,хотя и не сталлидером продаж,нашел свою долюрынка.
Вышедшие черезгод чипсеты3DFX Voodoo 3 иnVidia Riva TNT2являлись эволюционнымразвитиемпредшественникови были, по существу,вариантамиBanshee и TNT- сделаннымина новом технологическомпроцессе, сисправленнымиошибками, добавлениемвторого текстурногопроцессора(для Voodoo3), работающиена более высокихчастотах чипаи памяти, и снекоторымимелкими улучшениямии нововведениями.Так, технологическийпроцесс уменьшилсяс 0,35 мкм до 0,25-0,22 мкм,частоты возрослиот 100 до 143-183 MHz,выросло количествоадресуемойпамяти – до 32Мб и режимы32-битной 3D-графикиприобреливполне рабочуюскорость ввысоких разрешениях(но не Voodoo3 –3DFX считала,что 32-битныйцвет никомуне нужен и неинтересен).
В настоящиймомент главныеигроки на полетрехмернойакселерации– фирмы nVidiaи 3DFX поменялисьролями (теперь3DFX выступаетв роли болееслабого конкурентаnVidia) выбралисебе разныепути развития,по которым ипытаются повестивесь мир засобой.
NVidia выбралапуть созданияустройств менеепроцессорозависимых,способныхвыполнять весьцикл рендерингасамостоятельно– устройствс аппаратнымрасчетомтрансформации,отсечения иосвещения, такназываемымhardware T&L(TCL). У нее ужевышло два чипсетас поддержкойT&L –GeForce256 и GeForce2GTS. Их характеристикивпечатляют– хотя они и ненамного (GeForce2GTS – всегов 2,5-3 раза) быстреечем устройства,которые дляэтих расчетовиспользуютцентральныйпроцессор PC,но зато приэтом они почтиполностьюосвобождаютего от работынад графикой(все занимаетсяспециальныйграфическийпроцессор –GPU) и позволяютиспользоватьЦП для программированияфизики илиискусственногоинтеллектапротивниковв играх, дляобработкикрасивогоокружающегозвука, процедурныхтекстур (текстур,расчет которыхидет с использованиемфрактальнойматематики)и пр.
К сожалению,пока их новыеидеи и продуктыслабо поддержаныразработчиками,но такие программыуже появляются,а поддержкаhardware T&Lв DirectX7 и OpenGLдает все основаниядумать, чтодаром усилияфирмы nVidiaне пропадути что она движетсяв правильномнаправлении.К тому же, тамгде hardware T&Lне поддерживается,новые акселераторымогут работатькак обычные(но более быстрые)и все равноявляются лидерамипо производительности.
3DFX пошла по путиувеличенияfill rate ииспользованияполноэкранногосглаживания.Она разработалаархитектуруVSA-100, одночиповоерешение с поддержкой32-битного цвета,которое можномасштабировать,объединяя до32 чипов (каждыйсо своей собственнойпамятью), а понекоторымданным и до 128чипов, добиваясьпри этом fillrate более3,5 Гигатекселейв секунду! Аеще, при использованииболее 2-х чиповна плате, становитсядоступнымиспользованиеих новейшейтехнологииT-Buffer.
ТехнологияT-Buffer была созданаинженерамикомпании 3dfx стем, чтобы повыситьуровень реализмавизуализации3D графики вперсональныхкомпьютерах.Достигнутьэтого можнопри условииизбавленияот различныхдефектов изображения,возникающихпри воспроизведениикомпьютерной3D графики. Конечнаяцель заключаетсяв приближениикачества создаваемогоизображенияна компьютерныхсистемах ккачеству изображений,получаемыхс помощью фотоили видеокамер.
ТехнологияT-Buffer, на которойрешила сконцентрироватьсякомпания 3dfx, должнаспособствоватьобеспечениюболее качественнойвизуализациикомпьютерной3D графики засчет наложенияразличныхцифровых эффектовв режиме реальноговремени насформированноев результатерендерингаизображение.Самыми важнымисреди предлагаемыхк использованиюэффектов являются:full-scene spatial anti-aliasing (сглаживаниевсей сцены,т.е. удалениенеровностейлиний и границполигонов навсем пространствевидимой сцены,чаще называемымпросто full-scene anti-aliasing),motion blur (эффект размытостиконтуров быстродвижущихсяобъектов, аналогичныйтому, которыйвозникает присъемке фотокамеройдвижущихсяобъектов) иdepth of field (эффектоблегчающийвизуальноевосприятиеконкретныхобъектов сценыза счет фокусировкитолько на конкретномобъекте иличасти сцена,а все остальнаясцена остаетсяне в фокусе,т.е. размывается).Эффект depth of field позволяетиспользоватьтакой параметр,как расстояниемежду объектами.Делается этоза счет введенияразличныхуровней четкостиили величиныфокусировкидля каждогообъекта сцены.Объект иличасть сцены,на которыхсделана фокусировка,выглядят болеечетко, а всеостальныеобъекты илиокружающаясцена выглядятболее размытыми.Таким образом,внимание наблюдателяможет концентрироватьсякак на близких,так и на удаленныхобъектах иличастях сцены.
Пока компаниязапаздываетс выпускомсвоих новыхпродуктов наVSA-100 – видеоплатсерий Voodoo4и Voodoo5, но ужестало известно,что хотя онии имеют fillrate болеевысокий (ненамного), чемчипы GeForce256 иGeForce2 от nVidia,но включениефункций T-Bufferсильно тормозитих работу (адля карт серииVoodoo5 6000, которыенесут в себечетыре чипаVSA-100 и могутработать сT-Buffer нанормальныхскоростях,установленачрезвычайновысокая цена– более 600 долларов!).
К тому же, всеэффекты новойтехнологииможно использоватьна любой видеоплате,которая имеетхорошую скорость– например, ужеимеются драйверас полноценной(и вполне работоспособнойпо скорости)поддержкойfull-scene spatial anti-aliasing для видеокартна базе GeForce.А разработчикипрограммногообеспеченияновую технологиюпока не поддерживаютникак, толькоантиалиасингможно использоватьв любых, дажестарых, программах,а новые эффектыдолжны бытьсразу запрограммированыв программах.Так что, похоже,T-Buffer, втом виде, какего преподносит3DFX, не нуженникому и этотпуть ведетфирму в никуда.
Я почти не коснулсяв своей работепродукциидругих фирм-производителейвидео чипсетов– таких какATI, Matrox, S3,Intel, NEC(Videologiс), 3DLabsи других. Всеони либо шлипо протореннойnVidia и 3DFXдороге (и приэтом не слишкомпреуспели вскорости икачестве своихпродуктов посравнению сглавнымиконкурентами),либо (зачастую,к сожалению,совершенноне заслуженно)их инновациине пришлись“ко двору” ибыли или совсемне востребованы(как, например,тайловая архитектурачипов Videologic),или позднеевыпущены вновых продуктахгигантамииндустрии.
Вот, вкратце,и вся история,классификацияи особенностистроения иработы видеоадаптеровперсональныхкомпьютеров.
Использованныематериалы:
материалыстатей и обзоровсайта iXBTHardware(ixbt.stack.net)
материалыстатей и обзоровсайта 3DNews(www.3dnews.ru)
материалыстатей и обзоровжурнала и сайта“Компьютерра”(www.computerra.ru)
материалыстатей и обзоровжурнала и сайта“Мир ПК” (www.pcworld.ru)
материалыстатей и обзоровжурнала и сайта“PCMagazine:RussianEdition”(www.pcmagazine.ru)
материалыжурнала фирмы“Пирит” “Upgrade”№№7 и 8
Е.Рудометов,В.Рудометов.АрхитектураПК, комплектующие,мультимедиа.-СПб: “Питер”,2000
МосковскийГосударственныйУниверситет
экономики,статистикии информатики
Контрольнаяработа по курсу
“Вычислительныемашины и системы”
на тему
“Видеоадаптеры.Классификация,особенностистроения иработы.”
студентагруппы ЗИ-202
СытинаС.Ф.
шифр– 98192
Москва,2000