WWW.REFERATCENTRAL.ORG.UA - Я ТУТ НАВЧАЮСЬ

... відкритий, безкоштовний архів рефератів, курсових, дипломних робіт

ГоловнаІнформатика, Компютерні науки → Огляд сучасних відеосистем для РС (пошукова робота) - Реферат

Огляд сучасних відеосистем для РС (пошукова робота) - Реферат

гри з підтримкою Direct3D і OpenGL[3].
Ще існує близько 10 бібліотек низького рівня, створенихрозроблювачами різних прискорювачів; таких як: R-Redline фірми Rendition, S3D Toolkit фірми S3 і т.д. Як і випливало очікувати, програми, написані спеціально для них, поступово зникають[2].
Хоча більшість сучасних прискорювачів беруть на себе лише дві-три останні стадії конвеєра, існує важливе і швидко прогресуюче виключення з цього правила: з'явилися перші доступні чіпи з підтримкою геометричних перетворень, здатні значно збільшити швидкість побудови зображення на комп'ютерах з недостатньою обчислювальною потужністю (а вона, потужність, недостатня по визначенню - інакше не було би потреби в прискорювачах узагалі).
3D акселерація
Отже, самий загальний прискорювач складається з геометричного процесора (Geometry Processor, поки практично завжди відсутній), механізму установки (Setup engine, стадія 7 конвеєра) і механізму відмальовки примітивів - зафарбування (Fill engine, стадії 8 і 9), що при детальному розгляді виявляється комбінацією двох блоків - обробки текстур (Texel engine) і обробки буфера кадру (Pixel engine). Продуктивність прискорювача залежить від процесора, продуктивності пам'яті, шини і самих обробних блоків. Як правило, приводяться два числа - максимальна пропускна здатність (трикутників у секунду, triangle throughput) і максимальна продуктивність зафарбування (крапок у секунду, fill rate). Такий підхід можливий, але не дуже коректний. Та й усі ми знаємо, що кращим тестом є швидкість гри, у яку ми любимо грати (fps, кадрів у секунду на якомусь стандартному наборі дій) і якість зображення (у цифрах не вимірити). Саме ці параметри і необхідно довідатися в першу чергу в Internet чи, може бути, у сусіда в під'їзді, але не коштує при цьому забувати про сильну залежність числа кадрів від обсягу пам'яті і потужності процесора комп'ютера цього самого сусіда.
Якщо не вдаватися в глибокі технічні подробиці, зафарбування відбувається в такий спосіб: блок обробки буфера кадру визначають, чи видна зафарбовувана крапка, наприклад, за допомогою буфера глибин (Z Buffer). Якщо вона видна, блок обробки текстур обчислює колір текстури, що відповідає цій крапці примітива. Тут є кілька важливих моментів - інтерполяція (filtering, згладжування) і вибір рівня текстури (mip-mapping). Перший забезпечує зображення без різких прямокутних пікселей, навіть коли ви знаходитеся поблизу предмета і дозвіл текстури явно недостатнє. Другий усуває перекручування (дивні візерунки), що виникають при надмірному видаленні від текстури, вибираючи аналог текстури з меншим дозволом. Фактично, існує кілька режимів комбінування цих двох методів. Зараз найбільш поширені білінійна фільтрація (bilinear filtering - спочатку визначається необхідна для цієї відстані текстура, а потім значення кольору лінійно інтерполюється між чотирма сусідніми крапками текстури, по кожній з координат на поверхні обраної текстури) і трилінійна (trilinear - дві білінійних для двох текстур, з меншим і великим дозволами, потім результат інтерполюється між ними). Остання виглядає більш приємно, але і вимагає великих витрат, тому що не реалізується за один такт на сучасних прискорювачах з одним блоком обробки текстур і, у результаті, удвічі знижує швидкість зафарбування. Зараз з'явилися перші прискорювачі з анізотропної (anisotropic - усередині куба, із двох наборів по 4 сусідні крапки текстур, разом по 8 крапкам) фільтрацією, що виглядає зовсім добре, але і займає ще вдвічі більше часу. Потім обчислений за допомогою одного з вищеописаних методів колір текстури міститься в буфер кадру, заміняючи значення, що знаходилося там раніше, або комбінується з ним за яким-небудь правилом (combination, blending, alpha-blending). Як мінімум, прискорювач повинний підтримувати режими Джерело*Приймач (Src*Dest) і Джерело+Приймач (Src+Dest). Подібні можливості дозволяють реалізувати кольорове висвітлення, ефекти типу чи металу відображення, реалізовувати трилінійну фільтрацію там, де вона не підтримується апаратно і т.д. (так називана багатопрохідна побудова зображення, multipass rendering).
Як правило, для кожної крапки текстури, крім RGB кольору, можна задати ступінь її прозорості (alpha, RGBA формат текстури), що буде використовуватися прискорювачем для регулювання впливу джерела на приймач. Подібним чином зафарбовуються, наприклад, напівпрозорі по краях вибухи й ореоли навколо джерел світла в Unreal.
Не є життєво необхідної, але дуже прискорює роботу програм, що використовують багатопрохідну побудову зображення (наприклад, Quake2 чи Unreal), можливість мультитекстурування (multitexturing). Фактично, ця наявність двох (чи навіть більш) блоків обробки текстур, здатних одночасно обчислювати два кольори по двох текстурах для однієї крапки примітива, а потім комбінувати їх між собою. Подібною можливістю володіє Vооdоо2, RivaTNT і ще трохи поки "недороблених" чіпів[1].
Важливі також точність представлення квітів (16 біт - Hi-Color чи 32 біта - True-Color, останній набагато краще) і точність буфера глибин (Z-Buffer, 16 біт гірше, 24 і 32 краще), використовуваного для визначення видимості окремих крапок примітива. Помилки у визначенні глибини здатні приводити до дивних ефектів, наприклад, до ніг, що переглядають крізь постамент, статуї в грі Unreal.
І остання дія блоку обробки буфера кадру - накладання глобальних ефектів на готову картинку. Наприклад, туман, чи серпанок темрява (з погляду прискорювача це те саме), тобто ефект, відомий як fogging. Чи використовуваний у RivaZX метод повноекранного згладжування (full screen antialiasing), коли зображення розраховується з великим дозволом, чим показується користувачу, причому сусідні крапки зображення сумуються, і саме сумарне значення демонструється користувачу як одна крапка. Подібним чином усуваються різкі границі між полігонами, зображенню надається приємний "монолітний" вид. Існує також крайове згладжування примітивів, що приводить до практично ідентичного (ледве гірше) результату [3] (edge antialiasing), але потребуюче набагато менше витрат на побудову зображення.
5.ОСОБЛИВОСТІ МОДЕЛЮВАННЯ СВІТЛА І СЦЕНИ
Фізична модель світла
Світло - це дуже складна система, щоб змоделювати її в досконалості. Саме тому ми рідко можемо бачити створені комп'ютером тривимірні зображення, що були б по сьогоденню фотореалістичні. В усіх випадках, чим складніше і реалістично створювана вами віртуальна сцена, тим більше обчислень ви повинні зробити, і тем повільніше вона буде відтворюватися на екран. Як програміст, ви повинні будете вирішити, чим ви більше готові пожертвувати: якістю чи зображення швидкістю його прорахунку на комп'ютері[4]; чи хочете ви, щоб ваша програма привела усіх у здивування своєю красою, але вимагала майже годину для промальовування одного єдиного зображення, чи могла працювати зі швидкістю виводу 60 кадрів у секунду, але при цьому була схожа на карикатуру.
Цей розділ буде присвячений
Loading...

 
 

Цікаве