Видеоадаптеры, класифікація, особливості будівлі та работы

Тип работы:
Реферат
Предмет:
Информатика, программирование


Узнать стоимость

Детальная информация о работе

Выдержка из работы

Пристрій, що називається видеоадаптером (чи видеоплатой, відеокартою), є у кожному комп’ютері. У нинішньому вигляді устрою, інтегрованого в системну плату, або у ролі самостійного компонента — плати розширення. Головна функція, виконувана відеокартою, це перетворення отриманої Центрального процесора інформації та команд в формат, який сприймається електронікою монітора, до створення зображення на екрані. Монітор зазвичай є невід'ємною частиною будь-який системи, з допомогою якого користувач отримує візуальну информацию.

Стандартні типи видеоадаптеров

MDA (Monochrome Display Adapter — монохромний адаптер дисплея) — найпростіший видеоадаптер, застосовували у перших IBM PC. Працює в текстовому режимі з дозволом 80×25 (720×350, матриця символу — 9×14), підтримує п’ять атрибутів тексту: звичайний, яскравий, інверсний, підкреслений і миготливий. Частота малої розгорнення — 15 Кгц. Інтерфейс з монітором — цифровий: сигнали синхронізації, основний відеосигнал, додатковий сигнал яркости.

HGC (Hercules Graphics Card — графічна карта Hercules) — розширення MDA з графічним режимом 720×348, розроблене фірмою Hercules.

CGA (Color Graphics Adapter — кольорової графічний адаптер) — перший адаптер з графічними можливостями. Працює або у текстовому режимі з дозволами 40×25 і 80×25 (матриця символу — 8×8), або у графічному з дозволами 320×200 чи 640×200. У текстових режимах доступно 256 атрибутів символу — 16 квітів символу і 16 квітів фону (або 8 квітів фону і атрибут миготіння), в графічних режимах доступно чотири палітри чотири кольору кожна у режимі 320×200, режим 640×200 — монохромний. Висновок інформації на екран вимагав синхронізації з розгорненням, інакше виникали конфлікти по відеопам'яті, які у вигляді «снігу «на екрані. Частота малої розгорнення — 15 Кгц. Інтерфейс з монітором — цифровий: сигнали синхронізації, основний відеосигнал (три каналу — червоний, зелений, синій), додатковий сигнал яркости.

EGA (Enhanced Graphics Adapter — поліпшений графічний адаптер) — розвиток CGA, застосоване у перших PC AT. Додано дозвіл 640×350, що у текстових режимах дає формат 80×25 при матриці символу 8×14 і 80×43 — при матриці 8×8. Кількість одночасно відображуваних квітів — по- колишньому 16, проте палітра розширено до 64 квітів (дві розряду яскравості за кожен колір). Введений проміжний буфер для переданого на монітор потоку даних, завдяки чому відпала потреба в синхронізації при виведення в текстових режимах. структура відеопам'яті зроблено з урахуванням так званих бітових площин — «верств », кожен із що у графічному режимі містить біти лише свого кольору, а текстових режимах по площинам поділяються власне і дані знакогенератора. Сумісний з MDA і CGA. Частоти малої розгорнення — 15 і 18 Кгц. Інтерфейс з монітором — цифровий: сигнали синхронізації, відеосигнал (по дві лінії на кожен із основних цветов).

MCGA (Multicolor Graphics Adapter — багатобарвний графічний адаптер) — запроваджено фірмою IBM в ранніх моделях PS/2. Додано дозвіл 640×400 (текст), що дозволяє формат 80×25 при матриці символу 8×16 і 80×50 — при матриці 8×8. Кількість відтворювальних квітів збільшено до 262 144 (по 64 рівня кожен з основних квітів). Крім палітри, уведено поняття таблиці квітів, якою виконується перетворення 64-цветного простору квітів EGA у просторі квітів MCGA. Введений також видеорежим 320×200×256, у якому замість бітових площин використовується уявлення екрана безупинної областю пам’яті обсягом 64 000 байт, де кожен байт описує колір відповідної йому точки екрана. Сумісний з CGA за всі режимам, і з EGA — по текстовим, крім розміру матриці символу. Частота малої розгорнення — 31 Кгц, для эмуляции режимів CGA використовується зване подвійне сканування — дублювання кожного рядка формату Nx200 як Nx400. інтерфейс з монітором — аналогово-цифpовой: цифрові сигнали синхронізації, аналогові сигнали основних квітів, передані монітора без дискретизації. Підтримує підключення монохромного монітора та її автоматичне впізнання — причому у видео-BIOS включається режим підсумовування квітів по так званої шкалою сірого (grayscale) для отримання полутонового чеpно-белого зображення. Підсумовування виконується лише за виведення через BIOS — при безпосередньої запис у видеопамять на монітор потрапляє лише сигнал зеленкуватого кольору (якщо він має вмонтованого цветосмесителя).

VGA (Video Graphics Array — безліч, чи масив, візуальної графіки) — розширення MCGA, совместимое з EGA, запроваджено фірмою IBM у моделях PS/2. Фактичний стандарт видеоадаптера з кінця 80-х. Додано текстовий режим 720×400 для эмуляции MDA і графічний режим 640×480 з доступом через бітові площині. У режимі 640×480 використовується так звана квадратна точка (співвідношення кількості точок за горизонталлю і вертикалі збігається з стандартним співвідношенням сторін екрана — 4: 3). Сумісний з MDA, CGA і EGA, інтерфейс з монітором ідентичний MCGA.

IBM 8514/а — спеціалізований адаптер до роботи з високими дозволами (640×480×256 і 1024×768×256), із елементами графічного прискорювача. Не підтримує відеорежими VGA. інтерфейс з монітором аналогічний VGA/MCGA.

IBM XGA — наступний спеціалізований адаптер IBM. розширене колірне простір (режим 640×480×64k), додано текстовий режим 132×25 (1056×400). Інтерфейс з монітором аналогічний VGA/MCGA.

SVGA (Super VGA — «понад «VGA) — розширення VGA з додаванням більш високих дозволів та будівництво додаткового сервісу. Відеорежими додаються з низки 800×600, 1024×768, 1152×864, 1280×1024, 1600×1200 — усе з співвідношенням 4:3. Колірне простір розширене до 65 536 (High Color) чи 16.7 млн. (True Color). Також додаються розширені текстові режими формату 132×25, 132×43, 132×50. З додаткового сервісу додана підтримка VBE. Фактичний стандарт видеоадаптера приблизно від 1992 г.

Пристрій типовий видеокарты

Воно складається з чотирьох основних пристроїв: пам’яті, контролера, ЦАП і ПЗУ.

Видеопамять служить для зберігання зображення. Від його обсягу залежить максимально можливе повне дозвіл відеокарти — A*B*C, де A — кількість точок за горизонталлю, B — за вертикаллю, і З — кількість можливих квітів кожної точки. Наприклад, до розв’язання 640×480×16 досить 256 Кб, для 800×600×256 — 512 Кб, для 1024×768×65 536 (інше позначення — 1024×768×64k) — 2 МБ, тощо. Коли щодо зберігання квітів відводиться ціла кількість розрядів, кількість квітів завжди є ступенем двійки (16 квітів — 4 розряду, 256 — 8 розрядів, 64k — 16, і т.д.).

Видеоконтроллер відпо-відає висновок зображення з відеопам'яті, регенерацію її вмісту, формування сигналів розгорнення для монітори і обробку запитів центрального процесора. Щоб не допустити конфліктів при зверненні до пам’яті із боку видеоконтроллера і центрального процесора перший має окремий буфер, що у вільний від звернень ЦП час заповнюється даними з відеопам'яті. Якщо конфлікту уникнути вдається — видеоконтроллеру доводиться затримувати звернення ЦП до відеопам'яті, що знижує продуктивність системи; щоб уникнути подібних конфліктів у ряді карт застосовувалася так звана двухпортовая пам’ять, яка припускає одночасні звернення з боку двох устройств.

Багато сучасні видеоконтроллеры є потоковими — їхньої роботи полягає в створенні та змішуванні воєдино кількох потоків графічної інформації. Зазвичай це основне зображення, яким накладається зображення апаратного курсору миші та окремі зображення у прямокутному вікні. Видеоконтроллер з потоковой обробкою, ні з апаратної підтримкою деяких типових функцій називається акселератором чи прискорювачем, і є для розвантаження ЦП від рутинних операцій із формуванню изображения.

ЦАП (цифроаналоговый перетворювач, DAC) служить для перетворення результуючого потоку даних, формованого видеоконтроллером, в рівні інтенсивності кольору, що подаються на монітор. Усі сучасні монітори використовують аналоговий відеосигнал, тому можливий діапазон кольоровості зображення визначається лише параметрами ЦАП. Більшість ЦАП мають розрядність 8×3 — три каналу основних квітів (червоний, синій, зелений, RGB) по 256 рівнів яскравості за кожен колір, що сумарно дає 16.7 млн. квітів. Зазвичай ЦАП сполучено однією кристалі з видеоконтроллером.

Видео-ПЗУ — постійне запам’ятовуючий пристрій, у якому записані видео-BIOS, екранні шрифти, службові таблиці тощо. ПЗУ немає видеоконтроллером безпосередньо — щодо нього звертається лише центральний процесор, і цього виконання ним програм з ПЗУ відбуваються звернення до видеоконтроллеру і відеопам'яті. ПЗУ необхідно лише початкового запуску адаптера та роботи у режимі MS DOS; операційні системи з графічним інтерфейсом — Windows чи OS/2 — мало використовують ПЗУ керувати адаптером, хоч і може мати проблеми, у роботі при помилках у програмі BIOS, не знайдених разработчиками.

На карті зазвичай розміщуються чи кілька рознімань для внутрішнього сполуки; них називається Feature Connector і є для надання зовнішнім пристроям доступу до відеопам'яті і зображенню. До цьому розніманню може підключатися телеприймач, апаратний декодер MPEG, пристрій введення зображення т.п. На деяких картах передбачені окремі рознімання щодо таких устройств.

Видеоускорители (акселераторы)

Прискорювач (accelerator) — набір апаратних можливостей адаптера, готовий до перекладання частини типових операцій із працювати з зображенням на вмонтований процесор адаптера. Відрізняються прискорювачі графіки (graphics accelerator) із підтримкою зображення відрізків, простих постатей, заливання кольором, виведення курсору миші тощо., і прискорювачі анімації (video accelerators) — із підтримкою масштабирования елементів зображення перетворення колірного пространства.

Майже після появи SVGA, видеоадаптеры стали оснащувати акселераторами для апаратного прискорення роботи з графічними операційними системами — прорисовкой і заливанням «вікон», апаратним курсором «миші» тощо., та був і прискорення деякі прості, але дуже загружавших процесор операцій роботи з цифровим відео — MPEG. Аж по перенесення видеочип повного декодера MPEG.

Останнім часом у сфері 2D-графики намітився певний застій — жодних знахідок у цій галузі не вигадали, все відеоплати, аж аж до дешевих, майже вирівнялися за швидкістю і якістю зображення. Проте ринок відеоплат був прямо таки висаджений у повітря появою АКСЕЛЕРАТОРІВ ТРИВИМІРНОЇ ГРАФИКИ.

Основні поняття 3D-графики

. Артефакти (Artefacts)

Артефакт — недолік, побічний ефект, недолік, присутній у зображенні. Нижче наводяться назви поширених артефактів (ці назви використовують у описі понять), та його англійські еквівалентами. Назви загалом умовні - в багатьох предметів немає стандартного назви. |Розмитість |Blur |змащення дрібних |[pic] | | | |деталей текстури | | |Муар |Moire pattern|текстура з |[pic] | | | |регулярної | | | | |структурою отримує| | | | |чужорідний малюнок | | |Смуги |Mipmap bands |видно кордону между|[pic] | |мипмэппинга | |текстурами з | | | | |різними | | | | |мип-уровнями (на | | | | |малюнку зверху і | | | | |знизу) | | |Пикселизация |Pixelization |освіту |[pic] | | | | «квадратів «при | | | | |сильному | | | | |розтягування | | | | |текстури і | | | | |відсутності | | | | |билинейной | | | | |фільтрації | | |Шум |Noise, |текстура втрачає |[pic] | | |sparkling |свою структуру; при| | | | |русі текстура | | | | |не рухається, а | | | | | «шумить «| | |Нестиковка | |полігони не |[pic] | |текстур | |стикуються між | | | | |собою, залишаючи | | | | |тонкі світлі чи | | | | |темні проміжки | | |Сходовий |Jaggies, |зубчатість країв |[pic] | |ефект |stair-steppin|полигонов і | | | |g |діагональних ліній | | |Z-алиасинг |Z-aliasing |неправильний расчет|[pic] | | | |глибини | |

. Альфа-смешение (Alpha blending)

Альфа-смешение — техніка створення ефекту напівпрозорості шляхом об'єднання вихідного пиксела з пикселом, що перебуває у фрейм-буфере. Кожному пикселу зазвичай ставлять у відповідність значення червоного, зеленого і синього компонентів кольору (R, G, B). Якщо ставлять у відповідність ще альфа- значення, то говорять, що пикселы мають альфа-канал (компонент A у схемі RGBA). Альфа-значение виявляє міру прозорості конкретного пиксела. Об'єкти може мати різну прозорість, наприклад скло має високий рівень прозорості (отже низька альфа-значение), а желе — середній рівень. Альфа-смешение є процес комбінування двох об'єктів на екрані з урахуванням їхньої альфа-каналов.

Альфа-смешение використовується для: антиалиасинга, прозорості, створення тіней, дзеркал, тумана.

. Антиалиасинг (Anti-aliasing)

Алиасинг — результат семплінгу, тобто перетворення безперервного зображення у дискретне. Алиасинг погіршує якість зображення, викликаючи різноманітні артефакти: сходовий ефект, муар і зчинили крик. Антиалиасинг покликаний нейтралізувати подібні артефакти і підвищити якість зображення. По призначенню антиалиасинг ділиться на крайової і полный.

Крайовий антиалиасинг — механізм боротьби з сходовим ефектом. Крайовий антиалиасинг згладжує краю полігонів і діагональні лінії. Крайовий антиалиасинг застосовується у 3D-ускорителях Voodoo Graphics, Voodoo 2, Verite V2000.

[pic]

[pic] [pic]

Задля реалізації крайового антиалиасинга найчастіше використовують техніку усереднення площею (area averaging). Колір пиксела визначається на підставі, наскільки кожен полігон перекриває даний піксел. Наприклад, як показано малюнку нижче, піксел перекривають два полігону: A і B. Метод усереднення площею визначає видимі області, займані полігонами, які «доторкаються «до пикселу, і обчислює результуючий колір виходячи з видимих площ перекриття (тобто що належать і пикселу, і полігону). Нехай полігон A займає 40% площі пиксела, а полігон B — 60%. Результуючий колір у разі визначається квітами A і B з ваговими коефіцієнтами 40% і 60% відповідно (тобто проводиться операція альфа-смешения). Для ліній і точок метод той самий, у цьому разі вважається, що лінії точки мають ненулевую площадь.

[pic]

На жаль, альфа-смешение в крайовому антиалиасинге призводить до появі артефакту під назвою bleeding (дослівно «кровоточение »). Bleeding — забарвлення внутрішніх ребер в колір фону, це пов’язано з тим, що між гранями утворюється тонкий просвіток. Програма сама повинна знати, які ребра і лінії потрібно згладжувати. Через це крайової антиалиасинг складно программировать.

[pic]

Повний антиалиасинг, на відміну крайового, спрямовано повну нейтралізацію алиасинга. Єдиним представником повного антиалиасинга є субпиксельный антиалиасинг. Субпиксельный антиалиасинг застосовується в 3D-ускорителях PVNG, Intel740, nVidia Riva128 і TNT, і навіть переважають у всіх професійних OpenGL-ускорителях.

Субпиксельный антиалиасинг в Intel740 і nVidia Riva TNT виходить з техніці суперсэмплинга. Суперсэмплинг означає, що все сцена рендерится в якомусь великому віртуальному вирішенні, та був стискається до фактичного дозволу. У випадку віртуальне і фактичне дозволу може бути некратными. Техніка суперсэмплинга можлива тому, що це прискорювачі використовують tile-based архітектуру. Ускорителю традиційної архітектури був потрібен великий обсяг пам’яті (для віртуального дозволу 1600×1200 — більш як вісім MB). Річ у тім, що прискорювач tile-based архітектури не працює із цілим фреймбуфером, і з окремі фрагменти (tiles). І всі даних про субпикселах він зберігає лише фрагмента, який рендерится в даний момент.

[pic]

У 3D-ускорителях серії Glint від 3DLabs використовується інший метод, заснований на зберіганні маски. Розглянемо випадок, коли 1 піксел розбивається на 16 (4×4) субпикселов (ця техніка називається мультисэмплингом), а полігони рендерятся front-to-back (картинка снизу).

[pic]

Коли рендерится полігон не місці, субпикселы 2,3,4,7,8,12 офарблюються в колір переднього полігону. Причому запам’ятовується, які субпикселы потрапили до передній полігон, тобто маска. Ця маска перевіряється коли рендерится задній полігон. Субпикселы 1,5,6,9 офарблюються в колір заднього полігону. Субпикселы 2,3, належать обом полігонів, не змінюють колір отже залишаються над кольорами переднього полігону. У результаті - ніякого bleedingа.

Зворотний бік такого антиалиасинга — це необхідність зберігання маски кожному за пиксела і висунув вимогу сортування полігонів front-to-back. Друге вимога можна обминути, зберігаючи z-координату кожному за субпиксела. Проте зберігати z-координаты всім субпикселей на екрані неможливо, оскільки це вимагатиме гігантського обсягу відеопам'яті. Підтримку субпиксельного антиалиасинга з z-буферизацией реалізує техніка акумулятора. Суть його зводиться до того що, що обробка ведеться послідовно кожному за пиксела і навіть використовується сама й той самий пам’ять. Недолік: через вимоги послідовної обробки неможливість апаратного розпаралелювання як наслідок зменшення продуктивності до раз, однакову числу субпикселов в пикселе. Наприклад субпиксельный антиалиасинг 4×4 знижує продуктивність в 16 один чи інакше кажучи збільшує Fillrate в 16 раз.

. Мипмэппинг (MIP-mapping)

Мипмэппинг (MIP-mapping) використовує кілька однієї текстури з різною мірою деталізації (LOD — level-of-detail), причому наступна версія менше попередньої вчетверо (наприклад 128×128, 64×64, 32×32 тощо.). Такі версії називаються мип-уровнями, проте версії однієї текстури — мип- каскадом.

Цілі мипмэппинга: o Зменшення часу обробки — для об'єктів на далекій відстані обробляти текстуру з низьким дозволом набагато легше o Зняти шуму й муару — додавання мип-уровней з низькому рівні детализации

Є кілька видів мипмэппинга, але вони використовують 1 або 2 сусідніх мип-уровня. При мипмэппинге, кожен використовуваний мип-уровень або збільшується, або зменшується (соотвествие 1:1 статистично рідко). Збільшення і зменшення називаються відповідно магнификацией (magnification) і минификацией (minification). І минификация, і магнификация має свої вади. Минификация призводить до underfilteringу (выражающемуся в муаре і шумі), магнификация — до overfilteringу (выражающемуся в пикселизации чи заблюриванию). Чим менший спотворюється мип- рівень, краще виглядає текстура у кінцевому итоге.

[pic]

Основні види мипмэппинга: o Простий мипмэппинг (nearest mipmapping) без билинейной фільтрації нині різноманітні використовується. o Простий мипмэппинг з билинейной фільтрацією. Найбільш застосовуваний метод сьогодні. Схожий подібний до попереднього метод, але між текселами виконується інтерполяція. Аби наблизитися чи видаленні об'єкта від спостерігача вибирається підходящий мип-уровень. Аби наблизитися до спостерігачеві вибирається мип-уровень з бОльшей ступенем деталізації, під час видалення — з не меншою. Що буде з мип-уровнем в конкретний момент — виконуватиметься минификация чи магнификация? Це від конкретної реалізації і зажадав від параметра, званого LOD-bias. Якщо рендеринге домінує минификация, то, на сцені присутні гомін лісу і муар. Якщо домінує магнификация, то текстури видаються розмазаними, але муара/шума немає. Простій мипмэппингу притаманний артефакт, відтворений у різких переходах на текстурированной поверхности

(звані смуги мипмэппинга). Це відбувається за зміні ступеня деталізації, якщо мип-каскад намальований неякісно. o Трилинейная фільтрація (tri-linear filtering). Найбільш акуратний спосіб обчислення кольору пиксела. Трилинейная фільтрація складніша, ніж попередні методи. На відміну від простого мипмэппинга, у якому поєднуються вибирається підходящий уровени деталізації, тут проводиться інтерполяція між двома сусідніми мип-уровнями. Завдяки цьому смуги мипмэппинга не утворюються. При обчисленні кольору пиксела використовується 8 текселов

(4 при билинейной фільтрації) і вимагає 7 операцій змішання (3 при билинейной фільтрації). Використання трилинейной фільтрації дає значно більше високу якість зображення для рухомих объектов.

Адаптивна фільтрація частково розв’язує проблеми overfilteringа/underfilteringа. Програма вибирає як обробляти мип- рівні, окремо верхній і нижній. Наприклад інтерполювати нижній мип- рівень, і інтерполюйте верхній мип-уровень, та був інтерполюйте отримані текстури між собою, як із трилинейной фильтрации.

Мипмэппинг передбачає, що розробник сам створює мип-каскад. Проте багато гри мають лише текстури з однією дозволом. Аби вирішити цієї проблеми була придумана техніка авто-мипмэппинга. Драйвер 3D-ускорителя сам обчислює кілька мип-уровней, використовуючи основну текстуру (вона стає мип-уровнем з максимальною деталізацією). Техніка авто- мипмэппинга застосовується також збільшення числа мип-уровней, якщо гра використовує недостатнє їх кількість (наприклад багато гри використовують лише три мип-уровня для економії текстурной памяти).

Мипмэппинг дає високу якість для полігонів, переважно звернених на спостерігача (тобто. розташованих паралельно площині екрана), бо такі полігони складаються з квадратних пікселів. Проте похилені полігонів складаються з неквадратных пікселів, і до проблеми розміру пікселів додається проблема форми пікселів. При стандартному підході фільтр, який добре працює із квадратними пикселами, дає сильний алиасинг на неквадратных. Розв’язанням цієї проблеми є анізотропна фільтрація, що є складнішим фільтром, ніж трилинейная фільтрація. Анізотропна фільтрація працює із пикселами і з эллипсами й у отримання одного пиксела обробляє дуже багато текселов (до 32).

[pic]

. Морфинг рівня деталізації (LOD morphing)

Морфинг рівня деталізації (LOD) дуже корисним в іграх з більшими на відкритими просторами. Його головна мета — забезпечення плавного появи об'єктів у сфері видимості гравця. Приклад: автомобільний стимулятор. Будинку, дерева, які раптово з’являються у області видимості «нізвідки », викликають неприємною. У разі, при реалізації морфинга рівня деталізації будинки і дерева з’являються зовсім прозорі, а, по мері наближення до гравця набувають обриси, стають більш щільними, й у безпосередній наближеності стають повністю непрозрачными.

Інше, складніше застосування морфинга рівня деталізації - реалізація об'єктів із різними рівнями деталізації. Складається кілька версій одного об'єкта з різною мірою деталізації: найнижча деталізація для відображення об'єкта на дуже далекій відстані, та висока деталізація самих близької відстані. Що деталізація, із більшої кількості полігонів полягає об'єкт. Це дозволяє зменшити число полігонів на сцені, і отже підвищити продуктивність. Наприклад, немає сенсу відображати автомобіль у всій його красі з відривом, у якому гравець може розрізнити тільки колір автомобіля. Переходи між рівнями деталізації здійснюється також варіюванням прозорості: зміна деталізації відбувається миттєво, непрозора (стара) версія стає прозорою, а прозора (нова) — більш плотной.

Версії одного об'єкта до різних рівнів деталізації можуть готуватися на стадії розробки, а можуть прораховуватися у часі методом прогресивних сіток (progressive meshes). Прогресивні сітки підтримуються Direct3D.

[pic]

. Мультитекстурирование (Multitexturing)

Мультитекстурирование — метод рендеринга із кількох текстур за мінімальне число проходів. Текстури накладаються об'єкт послідовно, з допомогою різноманітних арифметичних операцій. Мультитекстурирование дозволяє конвейеризировать накладення текстур з використанням кількох (зазвичай двох) блоків текстурирования. Малюнок наочно демонструє що їх дії. Перший блок накладає на піксел текстуру Tex0, використовуючи операцію Op0, передає піксел другому блоку. Цей піксел передається другому блоку, який назбирає нею текстуру Tex1, використовуючи операцію Op1. Саме тоді перший блок не чекає, а переходить до опрацювання наступного пиксела, тощо. Мультитекстурирование схоже конвейеризацию в мікропроцесорах, лише мультитекстурирование набагато простіше, але жодних розгалужень тощо. Операції накладення туману і альфа-смешения з фрейм-буфером не ставляться до мультитекстурированию і виконуються після всіх стадий.

[pic]

Мультитекстурирование можна використовувати для ефективної реалізації таких ефектів як: o карти освітленості (lightmaps) o відображення (reflections) o морфинг текстур (texture morphing) o текстури з деталізацією (detailed textures)

. Рендеринг (Rendering)

Рендеринг — процес візуалізації тривимірних об'єктів і збереження зображення на фрейм-буфере. Рендеринг виконується по многоступенчатому механізму, званому конвеєром рендеринга. Конвеєр рендеринга може бути розділений на 3 стадії: тесселяция, геометрична обробка і растеризация. Принцип конвейеризации є фундаментальним поняттям, в відповідність до ним працюють, і 3D-ускорители, і 3D-API, — завдяки конвеєра можна розгледіти роботу кожного з них. Якщо взяти довільний 3D-ускоритель, він нічого очікувати прискорювати все стадії конвеєра, і навіть більше того, стадії можна лише частково прискорюватися їм. Далі ми розглянемо докладніше стадії конвеєра контексті роботи 3D-ускорителей. Традиційно кожну стадію позначають буквами.

Стадія «T «. Тесселяция (тріангуляція) — процес розбивки поверхні об'єктів на полігони (трикутники чи чотирикутники). Ця стадія проводиться повністю програмно незалежно від технічного рівня життя та ціни 3D-аппаратуры. Проте тесселятор (програмний код, відповідальний за тесселяцию) має враховувати особливості тієї чи іншої 3D-ускорителя, так як можуть мати різні вимоги до полигонам-примитивам: o довільні трикутники o трикутники із горизонтальним нижньої чи верхньої межею o трикутник чи чотирикутник з описом рівнянь ребер

(нескінченні плоскости)

Також тесселятор має враховувати, чи вміє працювати з сітками (meshes) різних типів. Якщо 3D-программа розробляється на высокоуровневом 3D-API, наприклад Direct3D RM чи PowerRender, їй зайве піклуватися про цих деталях, оскільки такий АПІ має власний тесселятор.

Стадія «G «. Геометрична обработкаделится сталася на кілька фаз, і може частково прискорюватися 3D-ускорителем. o трансформація (transformation) — перетворення координат

(обертання, перенесення і масштабирование на всі об'єкти) o відсікання (clipping), яке виконує доі після перетворення координат o висвітлення (lighting) — визначення кольору кожної вершини з урахуванням інтересів усіх світлових джерел (рішення рівняння освітленості) o проектування (projection) — перетворення координат до системи координат екрана o 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)

Текстурирование — основний метод моделювання поверхонь. Текстура — зображення, накладываемое на поверхню. Використання текстур вимагає набагато менше ресурсів, ніж моделювання поверхні з допомогою полігонів. Текстури зберігаються у текстурной пам’яті, окремі тексели (точки текстури) йдуть на покриття текстурою пикселей перед записом у фрейм-буфер. Залежно від конкретного методу текстурирования, різне число текселей потрібно обробки одного пиксела.

[pic]

Сэмплинг (point-sampling) — найпростіший метод текстурирования, у якому для відображення однієї точки використовується лише тексел (малюнок нижче). Цьому методу притаманний серйозний артефакт: коли спостерігач наближається впритул до текстурированной поверхні, відбувається пикселизация. Для запобігання цього артефакту використовують інші методи текстурирования, засновані на фільтрації текстур.

[pic]

Билинейная фільтрація (bi-linear filtering) використовує 4 суміжних тексела щоб одержати одного пиксела (малюнок нижче). Билинейная фільтрація вимагає чотири операції змішання кожному за результуючого пиксела: для двох верхніх текселей, обох нижніх й у двох отриманих значений.

[pic]

Більше складні методи текстурирования засновані на мипмэппинге.

Коли полігони текстурируются, необхідно враховувати перспективу. Для здобуття права текстурированные об'єкти виглядали правильно, необхідна перспективна корекція. Вона гарантує, що текстура правильно накладеться на різні частини об'єкта. Перспективна корекція — ресурсоемкая процедура (одна операція розподілу за кожен піксел), тому 3D-ускорители повинні реалізовувати її апаратно. Але різні прискорювачі досягають різного якості перспективної коррекции.

[pic]

Fillrate — швидкість текстурирования, яка вимірюється в пикселах в секунду, є дуже важливою величиною, і її вказують як характеристику 3D-чипсета. Fillrate 100 млн пикселей/сек означає, що 3D- прискорювач може обробити 100 млн пикселей в секунду, накладаючи ними текстури. На fillrate впливає чимало чинників, як-от тип фільтрації, глибина кольору, альфа-смешение, туман і антиалиасинг.

Туман (Fog)

Туман використовується до створення атмосферних ефектів. Туман використовується до створення димки і приховання віддалених об'єктів. У першому разі підвищується реалістичність сцени, у другому — знижується її сложность.

З туманом об'єкти можуть рендериться з різною мірою деталізації в залежність від відстані до спостерігача. Туман працює за принципом: ніж далі об'єкт, то більше вписувалося туман його поглинає. Тож віддалених об'єктів розумно використовувати менше полігонів, ніж для близьких. Туман також приховує і переходи між рівнем детализации.

Туман можна розділити на полигонный (per-polygon) і пиксельный (per- pixel). Полигонный метод лінійно интерполирует рівень туману по значенням в вершинах щоб одержати рівня туману у кожному точці полігону. Цей метод хороший лише маленьких полігонів. Пиксельный метод розраховує рівень туману кожному за пиксела, й у великих полігонів дає понад реалістичне изображение.

Туман теж можна розділити і з іншого ознакою — на лінійний і експонентний (чи табличний). При лінійному тумані ступінь поглинання об'єкта туманом лінійно залежить від відстані до спостерігача, а при экспоненциальном тумані - розраховується виходячи з таблицы.

[pic]

Видалення прихованих поверхонь (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-алиасинг.

[pic]

. 3D-программные інтерфейси (3D API)

АПІ (програмний інтерфейс) — інтерфейс для написання програм, підтримуючий устаткування певного типу, і операційну систему. 3D АПІ дозволяє програмісту створювати тривимірне програмне забезпечення, що використовує всі можливості 3D-ускорителей. АПІ зазвичай мають у собі функції, глобальні дані, константи та інші елементи, дозволяють розробникові уникати безпосереднього взаємодії з оборудованием.

3D АПІ діляться на універсальні і специализированные.

Универсальный 3D АПІ дозволяє абстрагуватися від конкретного устаткування. Без універсального АПІ, підтримують широкий, спектр 3D- прискорювачів, розробниками довелося б портировать гри під безліч плат. Найвідоміші універсальні 3D АПІ - OpenGL і Direct3D.

Специализированный 3D АПІ (Native 3D АПІ) призначений на одне конкретного сімейства 3D-ускорителей і захищає програміста від низкоуровнего програмування з допомогою прямого доступу до регістрам і пам’яті. Приклади спеціалізованих 3D АПІ - Glide (від 3Dfx), RRedline (від Rendition), PowerSGL (від Videologic), RenderGL (від Intergraph).

Direct3D — 3D АПІ компанії Microsoft, готовий до використання переважно у іграх. Direct3D існує лише у Windows 95, у недалекому недалекому майбутньому виникне в Windows NT 5.0. Direct3D має дві режиму: RM (retained mode) чи абстрактний і IM (immediate mode) чи безпосередній. IM складається з тонкого рівня, який спілкується з апаратурою і відданість забезпечує найвища швидкодія. Абстрактний режим — высокоуровневый інтерфейс, покриває безліч операцій для програміста, включаючи ініціалізацію і трансформацію. В обох режимів чесноти і недоліки, більшість Direct3D-игр використовують IM.

OpenGL — відкритий 3D АПІ, створений компанією SGI й контрольовану асоціацією OpenGL Architecture Review Board, куди входять DEC, E& S, IBM, Intel, Intergraph, Microsoft і SGI. OpenGL реалізує широкий діапазон функцій від виведення точки, лінії чи полігону до рендеринга кривих поверхонь NURBS, покритих текстурой.

Використання універсального 3D АПІ припускає використання драйверів при цьому АПІ. Сьогодні наявність драйверів 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), яка описує рельєф як безлічі висот, або карту зсувів нормалей (normal dispmap), що описує рельєф як нормалей. А, щоб наприклад підкреслити показати пагорбки і западини рельєфу з допомогою світлотіні, треба затьмарити або освітлити стінки цих горбочків і западин. Отже суттєвими для bumpmapping не є самі висоти, їх дифференциалы.

Розглянемо два виду рельєфних карт по отдельности.

Карта освітленості (lightmaps). Кожному пикселу ставлять у відповідність значення освітленості L. Карта освітленості розраховується з урахуванням джерел кольору. Отримана карта освітленості накладається на основну текстуру альфа-смешением. Цей метод симулює рельєфність матовій поверхні грою світла, і тени.

. Карта зсувів UV (UV-dispmap). Кожному пикселу ставлять у відповідність вектор DuDv. Карта зсувів UV йдуть на отримання environment map з пертурбацией. Пертурбація означає, що environment map спотворюється належним чином, щоб передати рельефность.

Отриманий environment map також накладається на основну текстуру альфа-смешением. Цей метод симулює рельєфність глянсовою чи дзеркальній поверхні відбитком оточуючої среды.

Використовуючи комбінацію карти освітленості й карти зсувів UV, можна отримувати дуже гарні модели.

[pic]

. 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-алиасингу.

[pic]

З використанням z-буферизации треба подбати у тому, щоб глибини були коректні з погляду перспективи. Припустимо, прискорювач рендерит трикутник із наперед заданими z-координатами його вершин. Вони повинні розрахувати z-координаты всім точок, лежачих всередині трикутника. Якщо їх просто інтерполюйте, то результат вийде некоректним з місця зору перспективи, тому їх слід коригувати. Але нові 3D- прискорювачі використовують техніку, звану w-буфером. W-координата — величина з плаваючою точкою, зворотна до z-координате. Усім вершин ставляться у відповідність саме w-координаты, які можна інтерполюйте без перспективної коррекции.

Покоління 3D-акселераторов

Узагалі-то, функції, що прискорюють розрахунок тривимірної графіки, почали з’являтися в масових видеочипах давно — з 1995 року. Такі мікросхеми, як S3 Virge і ATI Rage, мали у списку своїх фізичних можливостей апаратне прискорення деяких операцій растеризации 3D-изображения. Проте були вкрай повільними й те ще немає стандартних АПІ, а фірмові АПІ мало підтримано розробниками програмного обеспечения.

У 1996 року з’являються видеочипы із серйозними заявками на горде звання «3D-ускоритель» — Verite1000 від фірми Rendition, Matrox MGA-1064SG і nVidia NV1 (дуже цікавий продукт — чіп працював з урахуванням розрахунку не полігонів, а криволинейных поверхонь Безьє; мав затінення по Фонгу, а за Гуро (це випливало із неполигонной технології); нього була підтримка билинейной фільтрації текстур, мипмэппинга, альфа-смешения, попиксельного туману — щось із цього треба лише починає впроваджуватися в останніх чи лише анонсованих видеочипах). Але вони були не затребувані виробниками програм — на обрії виникли громада Microsoft з її АПІ DirectX (Direct3D) і фірма, всколыхнувшая ринок масової 3D-акселерации і буде створила його наново — 3DFX.

Чипсет фірми 3DFX — Voodoo Graphics (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-видеокарта поєднувалася з розгорнутою картою з урахуванням VooDoo Graphics у вигляді скозного кабелю, а та, своєю чергою, поєднувалася з монітором, пропускаючи її відеосигнал через себе. Коли програма починала використовувати 3D-функции, тоді VooDoo просто блокував сигналу звичайній відеоплати і сам. Друге — це масштабованість (масово ця технологія почали застосовувати лише у Voodoo2), тобто. можна з'єднати дві карти в у своїй збільшується максимальне дозвіл, звісно, швидкість. І третє - зручний для програмування АПІ Glide, який підтримувався лише картами від 3Dfx і досі ще підтримується розробниками програмного обеспечения.

До того ж, 3DFX стала лінуватися і домоглася широкої підтримки свого продукту розробниками ігор — шляхом особистих розмов із програмістами і керівниками фірм, поставки варіантів своїх карт для перевірки працездатності програм, тож створення (не зволікаючи і затримок) SDK (Software Development Kit) для 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, які під управлінням схеми Pixel FX2. Карти його основі продовжували традиції VooDoo Graphics і були додатковими картами для основний відеоплати. У зв’язку з наявністю двох текстурных процесорів, можна було накладення двох текстур за прохід — «безплатне» мультитекстурирование («безплатне» тому, що продуктивність як мультитекстурирования не падала, проти однотекстурным режимом, позаяк у цьому випадку другий текстурный процесор просто більше не працював). Тактова частота кристала зросла до 100 МГц. Мав 192-битную архітектуру, швидкість роботи з пам’яттю — 2,2 Гб/с, fill rate — 90 Mpixels/sec, здатний обраховувати 3млн. полигонов/с. Саме у цьому чипсете було цілком реалізовано масової користувача технологія SLI (Scan Line Interleave). За цією технологією 2 карти VooDoo 2 встановлювалися до системи і з'єднувалися для паралельної роботи (одна вважала парні рядки зображення, а друга — непарні). У цьому теоретична продуктивність виростає вдвічі (реально трохи менше). За рахунок цієї Voodoo2 вдавалося довго триматися на плаву.

Пізніше з’явився головний конкурент — 3D-чип Riva TNT (TwiN Texel) від фірми nVidia. Він також мав два текстурных конвеєра і як міг робити однопроходное мультитекстурирование і трилинейную і анизотропную фільтрацію. Мав 24(16)-битный Z-буфер і 8-битный буфер шаблонів (через який можна робити цікаві ефекти, на кшталт «правильних» тіней). Fill rate — 250 Mpixels/sec (125 — як мультитекстурирования), 6 млн. полигонов/с. Володів прекрасними 2D- можливостями — мав RAMDAC 250 MHz, акселерацію для розпакування відео форматів MPEG-1 і MPEG-2 (для програвання DVD).

Трохи згодом TNT, 3DFX випустив ринку перше 2D/3D-чипсет Voodoo Banshee. То справді був варіант Voodoo 2, але не матимуть одного Texel FX2 процесора і з вбудованої в чіп 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 і GeForce2 GTS. Їх характеристики вражають — хоча які й не набагато (GeForce2 GTS — лише у 2,5−3 разу) швидше ніж устрою, які тих розрахунків використовують центральний процесор PC, зате цьому вони майже зовсім звільняють його з посади над графікою (все займається спеціальний графічний процесор — GPU) й дозволяють використовувати ЦП для програмування фізики чи штучного інтелекту ворогів у іграх, в обробці гарного навколишнього звуку, процедурних текстур (текстур, розрахунок яких йде з допомогою фрактальной математики) і пр.

На жаль, наразі їх нові й продукти слабко підтримані розробниками, але таких програм вже з’являються, а підтримка hardware T&L в DirectX7 і OpenGL дає підстави думати, що задарма зусилля фірми nVidia не пропадуть і що вона рухається в правильному напрямку. До того ж, там де hardware T&L не підтримується, нові акселератори можуть працювати як звичайні (а більш швидкі) і… однак є лідерами по производительности.

3DFX пішла шляхом збільшення fill rate і його використання полноэкранного згладжування. Вона розробила архітектуру VSA-100, одночиповое рішення з підтримкою 32-битного кольору, що можна масштабувати, об'єднуючи до 32 чипів (кожен зі своєї власної пам’яттю), а, по деякими даними і по 128 чипів, домагаючись у своїй fill rate більш 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, але вже настав став відомий, хоча які й мають fill rate вищий (набагато), ніж чіпи 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), чи пізніше випущені у нових продуктах гігантами индустрии.

Ось, коротенько, і весь історія, класифікація й особливо будівлі та роботи видеоадаптеров персональних компьютеров.

Використані материалы:

1) матеріали статей і оглядів сайту iXBT Hardware (ixbt. stack. net)

2) матеріали статей і оглядів сайту 3D News (internet

3) матеріали статей і оглядів журналу і сайту «Компьютерра»

(internet

4) матеріали статей і оглядів журналу і сайту «Світ ПК» (internet

5) матеріали статей і оглядів журналу і сайту «PC Magazine: Russian

Edition" (internet

6) матеріали журналу фірми «Пірит» «Upgrade» №№ 7 і 8

7) Е. Рудометов, В. Рудометов. Архітектура ПК, комплектуючі, мультимедіа.- СПб: «Пітер», 2000

ПоказатьСвернуть
Заполнить форму текущей работой