Смекни!
smekni.com

3D-формати і їх застосування (стр. 1 из 2)

МІНІСТЕРСТВО ОСВІТИ УКРАЇНИ

Бердичівський політехнічний коледж

КОНТРОЛЬНА РОБОТА

з предмета "Комп'ютерна графіка”

Виконав:студент групи ПЗС-504

ШПАК Р.В.

Перевірив викладач:КОЗІК В.Ю.

м. Бердичів

2008 р.


1. 3D-формати

Тут ми дамо стислу характеристику деяких популярних форматів, які містять у собі опис тривимірних об'єктів.

Формат VRML

VRML (мова моделювання віртуальної реальності — Virtual Reality Modeling Language) — графічний формат, що базується на підмножині Open Inventor фірми Silicon Graphics. Він призначений для опису тривимірних зображень й обміну ними в мережі World Wide Web.

Мова VRML, що була розроблена Gavin Bell, Rick Carey, Mark Pesce і Tony Parisi, стала першою мовою тривимірного моделювання для Web. У 1995 була створена група VAG (VRML Authoring Group) і з'явилася остаточна редакція специфікації VRML 1.0. У 1997 році технологію підтримали у своїх браузерах як Microsoft, так і Netscape. ISO схвалила другу версію специфікації як міжнародний стандарт VRML 97 (або ISO/IEC 14772-1). Саме цю специфікацію розглянемо дещо докладніше.

VRML-файл має розширення WRL. Він використовує формат ASCII й являє собою звичайний текстовий файл із списком об'єктів, які названі вузлами (nodes). До вузлів VRML 2.0, зокрема, відносяться ЗD-геометрія, властивості світла, що створюється за допомогою VRML, файли зображень формату JPEG, відеофайли формату MPEG, звукові файли формату MIDI, текстові документи формату HTML.

Перелік вузлів VRML 2.0 наведено у таблиці 6.23.


Вузли можуть входити в ієрархічні структури, у яких одні вузли успадковують характеристики інших вузлів, розташованих на більш високих рівнях ієрархії.

VRML 2.0 дозволяє створювати й реєструвати нові об'єкти на основі існуючого стандарту мови.

Вузли складаються з типів (nodetype), за котрими у фігурних дужках ідуть поля:

Поля можуть бути двох різних типів:

Значення поля field є типу private, тобто не можуть бути змінені іншими вузлами. У свою чергу, значення поля exposedField є типу public, тобто можуть бути змінені іншими вузлами.

Якщо поля вузлів не вказані, їм присвоюються значення за умовчанням. Наприклад, Cube {} задає куб зі сторонами в одну одиницю масштабу, в поточному місці розташування курсору, із гранями поточного кольору.

Кожне поле має наступні параметри:

• тип;

• ім'я;

• значення за мовчазною згодою.

Вузол може одержувати повідомлення типу eventIn, що починаються із суфікса set_ (наприклад, set_color, set_position і т.д.). Дані повідомлення змінюють поля вузла, й, відповідно, сам вузол. У свою чергу, вузол може посилати повідомлення типу eventOut, що закінчуються префіксом _changed (наприклад, color_ohanged, position_changed і т.д.). Дані повідомлення показують, що в самому вузлі щось змінилося.

Поля типу exposedField можуть бути використані для більш короткої вказівки на те, що поле посилає й одержує повідомлення типу eventln і eventOut. Для прикладу опис типа:

еквівалентний опису типа:

тобто, отримано повідомлення set_fоо типу eventln, отже автоматично встановлюється значення поля foo, і генерується повідомлення foo_change типy eventOut.

Зв'язок між вузлом, що генерує повідомлення типу eventln, і вузлом, що отримує повідомлення типу eventOut, отримала назву route (маршрут).

VRML використовує декартову тривимірну систему координат. За умовчанням об'єкти проецируються на двовимірний пристрій відображення у напрямку позитивної осі Z.

Сцени можуть містити довільне число локальних систем координат, визначені полями "transformation" вузлів "Transform" та "Billboard".

Концептуально, VRML також має систему світових координат. Різні локальні координатні перетворення відображаються у системі світових координат відповідно до ієрархії у графі сцени.

VRML 2.0 має наступні елементи й механізми:

• елементи для представлення інформації про 2D- і ЗD-примітиви;

• елементи для визначення характеристик цих примітивів;

• елементи для перегляду й моделювання 2D- і ЗD-інформації;

• механізм для збереження й передачі мережами 2D- і ЗD-даних;

• механізм для включення даних з інших метафайлів;

• механізм для визначення нових типів і форм інформації.

Структура VRML-файлу така:

• обов'язковий рядок-заголовок #VRML V2.0 utf8. (Символ "#" починає коментар. Коментар продовжується до кінця поточного рядка. Ідентифікатор utf8 вказує, що в VRML використовуватимуться символи кодування UTF-8 стандарту ISO 10646. Рядок закінчується символами newline ASCII або переводу каретки);

• будь-яка кількість прототипів (визначення нових класів об'єктів);

• будь-яка кількість вузлів;

• будь-яка кількість команд ROUTE (визначення зв'язку чи маршруту події — тобто хто що і кому повинен передавати).

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

Визначення прототипу складається з наступного.

• Ключове слово PROTO.

• Ім'я типу нового вузла.

• Оголошення прототипу, що містить:

• список eventIns і eventOuts типу public;

• список exposedFields типу public і полів зі значеннями за умовчанням.

• Визначення прототипу, що містить:

• список одного чи більше вузлів;

• нуль чи більшу кількість маршрутів і прототипів.

Команди ROUTE у кінці файлу VRML вказують шляхи для інформації, яка передається між різними вузлами й частинами вузлів. Ці команди необхідні для реалізації інтерактивності та складного поводження, яке можливе в світі VRML 2.0 (The Virtual Reality Modeling Language Specification. Version 2.0, ISO/IEC CD 14772 [108]).

Наведемо приклад файлу VRML. VRML-світ із червоною кулею та кубом [107]:

Основні ідеї мови VRML активно використовуються в сучасних засобах візуалізації тривимірних сцен.

Формат 3DS

Це один із найпоширеніших форматів для ЗD-графіки. Файли формату 3DS були стандартними файлами програми 3D Studio, ще коли вона працювала під DOS. У 3D Studio MAX з'явився інший формат збереження — МАХ, але для розробки ігор цей новий формат виявився незручним. Натомість формат 3DS виявився придатним для цієї мети: крім самих тривимірних моделей (які являють собою каркасні сітки), він зберігає їхнє положення у світових координатах, координати текстур, кольори вершин, ключові кадри анімації, дані про властивості матеріалів і навіть атмосферні ефекти. Це практично готовий формат для збереження моделей і цілих карт (тільки скриптові команди доводиться зберігати окремо). Підкреслимо, що при збереженні ЗDS-файлів можна вказати, щоб координати текстур зберігалися разом із моделлю. Після цієї операції накладення текстури відбувається якісніше. Формат 3DS є зручним і практичним для будь-яких видів ігрових моделей. Він широко використовується для обміну даними між системами тривимірного моделювання.

Формати MDL, MD2 і MD3

Ці формати призначені для збереження анімаційних моделей, особливо анімації людей. Усі три формати відкриті, ними може скористатися будь-який бажаючий. У них зберігаються моделі й дані про немов би "кістякову" анімацію. Анімації моделей зберігаються в цих форматах у тривимірних кадрах, причому кожному кадру відповідає своя повноцінна модель. Розмір файлів при цьому зростає пропорційно кількості кадрів анімації й може виявитися завеликим для серйозних ігор, втім, формати MDL, MD2 і MD3 можна досить сильно ущільнити.

Формат SMD

У файлах формату SMD зберігається "чиста" кістякова анімація. Це приводить до зменшення розмірів файлів і поліпшення якості анімації. Система збереження файлів має деякі особливості. По-перше, необхідний ключовий SMD-файл. У ньому зберігається сама модель без анімації. Його необхідно завантажувати в першу чергу. По-друге, необхідні анімаційні дані про модель, які зберігаються в інших файлах (один файл на одну анімацію). Якщо необхідна висока якість анімації, використовують цей формат.


Формат X

Формат X— це "рідний" формат DirectX для тривимірних моделей. Він використовувався тільки Direct3D:RM, але й Direct3D:IM можна було "примусити" працювати з цим форматом.

Direct3D:Retained Mode (Direct3D:RM) — це набір АРІ, створений для легшого програмування тривимірної графіки (порівняно з більш низькорівневим Direct3D:Immediate Mode (Direct3D:IM), на якому заснований сам Direct3D:RM). Direct3D:RM має набір інструментів для завантаження й маніпулювання форматом тривимірних моделей X. Раніше Direct3D був пов'язаний з DirectDraw, але з початком розробки Direct 8 відділ Microsoft прийняв рішення назавжди зупинити розвиток цього компонента, a Direct3D зробити цілком самодостатнім засобом виводу графіки в Direct. Тепер він називається DirectXGraphics. Утім, у складі SDK дотепер є файл ddraw.h, щоб користувачі мали можливість і далі працювати з DirectDraw.

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

При створенні файлів як у форматі 3DS, так і у форматі X, вводиться тільки ім'я текстури. Самі текстури (переважно у форматі BMP) зберігають у вигляді окремих файлів на диску. Зручність формату X полягає, зокрема, в тім, що за допомогою невеликої утиліти 3dsconv, ви можете конвертувати моделі з популярного формату 3DS у формат X. Ви можете малювати свої моделі в Kinetix 3D Studio MAX, експортувати їх у формат 3DS і одержувати моделі у форматі X.


2. Класифікація форматів графічних зображень

Форматом файлу можна назвати сукупність методів, правил представлення й розміщення даних. Відповідно, формат графічних файлів — це набір методів, правил, призначених для представлення, зберігання, обробки й розповсюдження зображень, наданих у цифровій формі.