Розробка VRML - документiв
Мова VRML (Virtual Reality Modeling Language) призначена для опису інтерактивних 3D об'єктів і світів. Вона була розроблена для застосування в мережах INTERNET і INTRANET. На сьогоднішній день ця мова є мережним стандартом і підтримується ведучими світовими виробниками програмного забезпечення.
VRML дає розробнику можливість створювати статичні і динамічні 3D моделі, а також дозволяє включати й обробляти в моделях гіперпосилання на звукові, відео, html файли та інші VRML об'єкти.
За своєю структурою мова є об'єктно-орієнтованою. Їй властиві такі характеристики об'єктної мови, як інкапсуляція і спадкування. Поліморфізм у звичному розумінні цього слова відсутній.
Для опису простих VRML об'єктів підходить будь-який текстовий редактор, що має можливість зберігати файли у звичайному текстовому форматі.
Для відтворення VRML об'єктів необхідний VRML браузер, що підтримує мову VRML у специфікації 2.0
Найбільш доступними і простими у використанні є браузери, що інтегруються у Microsoft Internet Explorer (Microsoft VRML Viewer 2.0) і Netscape Navigator (SGI Cosmo Player).
Кожен VRML об'єкт може бути описаний структурою, що зовні дуже нагадує тип struct у C++ чи Record у Pascal. Для того щоб створити об'єкт із необхідними властивостями, потрібно описати структуру, що визначає даний тип об'єктів, ставлячи у відповідність полям цієї структури потрібні значення.
Варто зазначити, що якщо при описі об'єкта були задані значення не для всіх полів структури, то для тих полів, що не визначені, будуть використовуватися значення за замовчуванням.
Для роботи з динамічними об'єктами застосовується підхід, що базується на подіях. На найпростішому рівні організація роботи з такими об'єктами виглядає в такий спосіб: до об'єкта, що є джерелом події ставиться у відповідність об'єкт - приймач події.
Загалом, кожен VRML файл має розширення *.wrl і складається з наступних частин:
z Заголовок #VRML V2.0 utf8
Цей рядок є першим рядком для будь-якого файлу, що містить опис VRML об'єктів. z Опис прототипів
Ця частина є необов'язкової. Тут користувач може описати свої власні класи об'єктів для подальшого використання в програмі. Це дозволяє скоротити вихідні тексти.
Варто зазначити, що описані прототипи можуть бути комбінацією, як стандартних класів, так і описаних вище прототипів. z Опис графа сцени
У цій частині описуються об'єкти, що необхідні для побудови сцени (світу), що задуманий користувачем. z Опис шляхів трансляції повідомлень
Ця частина є необов'язкової. Вона необхідна тільки у тому випадку, коли є необхідність у створенні динамічних об'єктів (об'єктів, що змінюють свої властивості з часом).
Саме в цій частині програми відбувається зв'язування об'єктів - джерел подій з об'єктами - приймачами подій.
Наведена програма будує кулю зеленого кольору, із центром, що знаходиться у точці простору з координатами (1,1,1). Радіус кулі дорівнює 3.
#VRML V2.0 utf8
Transform { translation 1 1 1 children [
Shape {
appearance Appearance {
material Material {
diffuseColor 0 1 0
} }
geometry Sphere { radius 3
}
}
] }
Пояснення до прикладу:
- один з основних класів VRML. Цей клас є зовнішнім контейнером, що містить у собі деякий об'єкт (чи групу об'єктів). Сам клас не має візуального відображення.
Усередині цього класу є ряд полів даних. Одним із таких полів є translation, якому привласнюється деяке значення, що є точкою простору (x,y,z).
Це поле задає точку, у яку зміщюється початок координат для об'єкта (чи групи об'єктів), що описаний усередині цього класу. Ця властивість поширюється тiльки на об'єкти, що належать до даного класу Transform.
Наприклад, якщо в нас у деякому вузлі (у специфікації VRML термін "вузол" - NODE є синонімом терміна "об'єкт" - OBJECT) полю translation привласнене значення (1,2,3), а дочірній (описаний усередині) об'єкт (вузол) має відносні координати (0,1,1), - то це означає, що дочірній об'єкт в абсолютних координатах буде розташовуватися у точці (1,3,4).
Примітка: при описі складних об'єктів, що є композицією більш простих вузлів, рекомендується укладати складні об'єкти усередину вузлів типу Transform. Це дає можливість легко змінювати положення об'єкта у просторі шляхом зміни значення тільки, поля translation усередині вузла Transform, а не положення кожного складового елемента складного об'єкта.
- поле даних класу Transform. Усередині нього описуються дочірні об'єкти (у даному випадку - один об'єкт).
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.