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

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

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

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

надалі. Наприклад у випадку ігрових 3D програм це - правила ігри і фізичні законипереміщення гравця, штучний інтелект монстрів і т.д.
2. Визначення відповідних поточному стану геометричних моделей (Geometry generation) - ця частина конвеєра створює геометричне представлення поточного моменту нашого маленького "віртуального світу".
3. Розбивка геометричних моделей на примітиви (Tesselation) - ця перша дійсно залежна від "заліза" стадія. На ній створюється зовнішній вигляд об'єктів у виді набору визначених примітивів, зрозуміло, на основі інформації з попереднього кроку конвеєра. Найбільш розповсюдженим примітивом у наш час є трикутник, і більшість сучасних програм і прискорювачів працюють саме з трикутниками. Не вдаючись у математичні подробиці скажу, що на трикутники завжди можна розбити будь-який плоский багатокутник, і саме трьома крапками можна однозначно задати площина в просторі. До того ж, усі ми знаємо, що в Царя було три сини, а в Горинича - три голови [1].
4. Прив'язка текстур і висвітлення (Texture and light definition) - на цій стадії визначається, як будуть освітлені геометричні примітиви (трикутники), а також які і як на них надалі будуть накладені текстури (Textures: зображення, що передають зовнішній вигляд матеріалу об'єкта, тобто негеометричну візуальну інформацію. Гарний приклад текстури - пісок на абсолютно рівному пляжі). Як правило, на цій стадії інформація обчислюється тільки для вершин примітива [2].
5. Видові геометричні перетворення (Projection) - тут визначаються нові координати для усіх вершин примітивів виходячи з положення спостерігача і напрямку його погляду. Сцена як би проектується на поверхню монітора, перетворюючись в двомірну, хоча інформація про відстань від спостерігача до вершин зберігається для наступної обробки.
6. Відкидання невидимих примітивів (Culling) - на цій стадії зі списку примітивів виключаються цілком невидимі ( щозалишилися за чи збоку від зони видимості).
7. Установка примітивів (Setup) - тут інформація про примітиви (координати вершин, накладення текстур, висвітлення і т.д.) перетвориться у вид, придатний для наступної стадії. (Наприклад: координати крапок буфера чи екрана текстур - у цілі числа фіксованого розміру, з якими працює апаратура).
8. Зафарбування примітивів (Fill) - на цій стадії, власне, і відбувається побудова в буфері кадру (пам'яті, відведеної під результуюче зображення) картинки на основі інформації про примітиви, сформованою попередньою стадією конвеєра, і інших даних. Таких, як текстури, таблиці тумана і прозорості й ін. Як правило, на цій стадії для кожної крапки зафарбовуваного примітива визначається її видимість, наприклад, за допомогою буфера глибин (Z-буфера) і, якщо вона не закрита більш близької до спостерігача крапкою (іншого примітива), обчислюється її колір. Колір визначається на основі інформації про висвітлення і накладення текстур, визначеної раніше для вершин цього примітива. Більшість характеристик прискорювача, який можна почерпнути з його опису, відносяться саме до цієї стадії, тому що в основному саме цю стадію конвеєра прискорюють апаратно (у випадку недорогих і доступних плат).
9. Фінальна обробка (Post processing) - обробка всієї результуючої картинки як єдиного цілого якими-небудь двовимірними ефектами.
Деякі стадії цього конвеєра можуть бути переставлені місцями, розбиті на чи частині сполучені. По-друге, вони можуть бути відсутні взагалі (рідко) чи можуть з'явиться нові (часто). І, по-третє, результат роботи кожної з них може бути посланий (в обхід інших стадій) назад. Наприклад, картинку, отриману на останній стадії, можна використовувати як нову текстуру для 8-ий, реалізуючи в такий спосіб ефект поверхонь, що відбивають, (дзеркал). Таких, як мармуровий піл у грі Unreal.
3D API
Для одержання результату треба визначиться з двома речами - хто які стадії буде виконувати і як він це буде робити. У нас є три основних кандидати на роботу - сама програма (як правило, початкові стадії конвеєра), бібліотека прикладного програмування (інтерфейс, API) і сам прискорювач. Утім, програми, що не використовують прискорювач (Doom, Quake у програмному режимі і т.д.), усі стадії конвеєра виконують самостійно. У поняття бібліотеки в даному контексті можна (без особливого зазору совісті) помістити драйвера даного прискорювача, тому що, з погляду програми, вони стають частиною бібліотеки. Програм і прискорювачів існує безліч, а от число загальновизнаних бібліотек дуже обмежено. Найбільше часто гри використовують наступні бібліотеки
" OpenGL - створена спочатку для професійних графічних станцій і програм тривимірного моделювання бібліотека. Поступово вона прийшла на платформу PC, в основному завдяки стрімкому прогресу в області "заліза" і грі Quake, що використовувала урізаний варіант цієї бібліотеки. Наявність підтримки цієї бібліотеки в прискорювача вкрай бажано через велике число нових ігор, орієнтованих на неї. Бібліотека є в деякому роді високорівневою, тому що бере на себе всі дії, починаючи із середини 4-ої ступіні нашого конвеєра. З одного боку, це здорово полегшує роботу програмістам, з іншого боку - здатно трохи ускладнити її ж, особливо при реалізації нестандартних чи ефектів необхідності використовувати нові можливості прискорювача, що виходять за рамки OpenGL. Гарний приклад корисності подібного підходу - можливість випустити версію OpenGL, що значно прискорює (конкретно - геометричні перетворення) роботу ігор на нових процесорах з SIMD наборами команд - AMD 3Dnow! і Intel Katmai New Instructions (MMX2). Очевидним достоїнством також є переносимість програм на інші, не Wintel-платформи. Істотним, але недоліком, що швидко виправляється - відсутність її повного варіанта для деяких розповсюджених прискорювачів.
" Direct3D - бібліотека, що є частиною Microsoft Direct і поддерживаемая зараз практично всіма прискорювачами. Фактично являє собою дві бібліотеки - низькорівневу (починаючи з 7 стадії) і високоурівневу (з 5-ої). Результат - велика гнучкість для програміста в реалізації його ідей і, як наслідок, головний біль для нього ж через безліч зв'язаних з конкретною реалізацією прискорювача параметрів. Зараз йде бурхливий розвиток цього продукту Microsoft, і, зважаючи на все, версія 6 Direct3D (яка вже офіційно вийшла) буде цілком гідним конкурентом OpenGL по своїх можливостях і швидкості.
" Glide - власна низькорівнева бібліотека (стадія 7 конвеєра і далі) фірми 3Dfx, що домоглася популярності завдяки великому поширенню перших, дійсно успішних прискорювачів (на базі набору чіпів Voodoo). Але, швидше за все, ця бібліотека піде зі сцени в найближчі кілька років. Вона не підтримується іншими прискорювачами і не буде ними підтримуватися (без дозволу 3Dfx це є незаконним), до того ж усі нові ігри, розраховані на неї, працюють, як мінімум, ще з однієї з раніше описаних бібліотек. Творці неприємного виключення з цього правила (а саме, гри Unreal) вже анонсували доповнення до
Loading...

 
 

Цікаве