VRML_seminar.ppt
- Количество слайдов: 26
VRML, его использование и развитие Efim Grinkrug (email: egrinkrug@hse. ru) 13 -Feb-18 Software Engineering 1
VRML – virtual reality modeling language • Сайт www. web 3 d. org • Стандарт ISO : – International Standard ISO/IEC 14772 -1: 1997 – Дополнительные стандарты для связи с • ECMA Script • Java • … 13 -Feb-18 Software Engineering 2
Цели • VRML – формат файла для описания интерактивных 3 D-объектов и миров; • VRML разработан для использования в Интернет, интранет (внутренняя сеть организации) и в других локальных клиентских системах; • VRML – универсальный формат обмена для интеграции 3 Dграфики и мультимедиа; • VRML – может быть экспортирован их различных 3 Dинструментов, таких как 3 D Studio Max. . . • VRML – предполагает наличие VRML-браузера, с помощью которого описание объектов и миров в формате VRML функционирует и визуализируется. 13 -Feb-18 Software Engineering 3
Критерии разработки • • • Authorability – Enable the development of computer programs capable of creating, editing, and maintaining VRML files, as well as automatic translation programs for converting other commonly used 3 D file formats into VRML files. Composability – Provide the ability to use and combine dynamic 3 D objects within a VRML world and thus allow re-usability. Extensibility – Provide the ability to add new object types not explicitly defined in VRML. Be capable of implementation – Capable of implementation on a wide range of systems. Performance – Emphasize scalable, interactive performance on a wide variety of computing platforms. Scalability – Enable arbitrarily large dynamic 3 D worlds. 13 -Feb-18 Software Engineering 4
Characteristics of VRML • VRML is capable of representing static and animated dynamic 3 D and multimedia objects with hyperlinks to other media such as text, sounds, movies, and images. VRML browsers, as well as authoring tools for the creation of VRML files, are widely available for many different platforms. • VRML supports an extensibility model that allows new dynamic 3 D objects to be defined allowing application communities to develop interoperable extensions to the base standard. There are mappings between VRML objects and commonly used 3 D application programmer interface (API) features. • Conceptually, each VRML file is a 3 D time-based space that contains graphic and aural objects that can be dynamically modified through a variety of mechanisms. Another part of ISO/IEC 14772 (part 2) defines the interface that applications external to the VRML browser may use to access and manipulate the objects defined in ISO/IEC 14772 -1. 13 -Feb-18 Software Engineering 5
Структура VRML-файла • VRML-файл состоит из следующих составных частей: – Заголовка (например - #VRML V 2. 0); – Графа сцены (scene graph), содержащего: • Узлы, которые описывают объекты с их свойствами. • Иерархически структурированную визуальную и аудиальную информацию • Опиcание механизмов возникновения и распространения событий. • Описание составных, определяемых пользователем, типов аудио-визуальных объектов. 13 -Feb-18 Software Engineering 6
Прототипы (Prototypes) • Прототипы (PROTO) позволяют пользователю расширять номенклатуру типов узлов, из которых строится граф сцены • Прототипы могут быть описаны в том же файле, что описывает scene graph, или во внешнем к нему файле (в этом случае они называются внешними прототипами - EXTERNPROTO) • Прототипы определяются своим интерфейсом и реализацией, которая задается в терминах других – ранее определенных – узлов. • Имеется возможность определения Script-узлов, реализация которых может быть запрограммирована на Java, Java. Script (ECMA -Script) и/или других языках программирования, что зависит уже от реализации VRML-браузера (т. е. – browser dependent…) 13 -Feb-18 Software Engineering 7
Event routing • Некоторые узлы могут генерировать события в зависимости от изменений в окружении и/или от взаимодействия с пользователем. • Механизм распространения событий позволяет указвать, как изменения в одних узлах влияет на другие узлы. • Распространение событий по «путям» (routes) образует «каскад событий» , в результате которого меняются состояния некоторых узлов или структура графа сцены. • Script-узлы позволяют изменять граф путей для событий (добавлять или убирать событийные связи) в динамике. 13 -Feb-18 Software Engineering 8
Концептуальная модель VRMLбраузера 13 -Feb-18 Software Engineering 9
«Поля» и «события» узлов • • Узлы определяются с помощью полей и событий, которые являются элементарными типами данных в VRML Все поля и события делятся на два класса: – Имеющие одно (скалярное) значение • Этим значение может быть число, строка или даже целая картинка (image) • Эти поля/события имеют преффикс SF – Имеющие упорядоченный список значений (множественное значение) • Эти поля/события имеют преффикс MF • • Поля/события SFNode и MFNode позволяют одним узлам ссылаться на другие узлы, за счет чего и образуется Direct Acyclic Graph сцены. Поля/события бывают такие: – – • event. In event. Out field exposed Field Узлы могут разделяться с помощью конструкции DEF/USE – В спецификации VRML это иногда называется “instantiation” 13 -Feb-18 Software Engineering 10
Scene graph structure • Корневые узлы (Root Nodes) – Scene graph может содержать 0 или более корневых узлов. – Это могут быть любые узлы, являющиеся Children nodes (т. е. «дочерними» узлами). • Все узлы делятся на категории: – Групповые узлы • Имеют поле, содержащее список дочерних узлов (children nodes) • Являются «родительскими» узлами для своих «дочерних узлов» – Дочерние узлы • Могут быть укуазаны в списке дочерних узлов группового узла – Недочерние узлы • Не могут быть в списке дочерних узлов группового узла • Могут использоваться как значения полей специфических узлов. • Все узлы делятся на «предков» (ancestor nodes) и потомков (descendant nodes) 13 -Feb-18 Software Engineering 11
Фиксированние типы полей/событий SFBool SFColor and MFColor SFFloat and MFFloat SFImage SFInt 32 and MFInt 32 SFNode and MFNode SFRotation and MFRotation SFString and MFString SFTime and MFTime SFVec 2 f and MFVec 2 f SFVec 3 f and MFVec 3 f 13 -Feb-18 Software Engineering 12
Иерархия трансформаций (системы координат) • Локальная система координат – Определяется в терминах трансформации относительно родительской системы координат • Мировая система координат – Система координат, в которой помещаются корневые узлы графа сцены • Не все узлы графа сцены подвержены трансформации: – – – - Интерполяторы, Time. Sensor’ы, Script’ы, и т. п. никак не изменяют свое поведение в зависимости от иерархии трансформаций. - Иерархия трансформаций влияет на те узлы, семантика которых связана с пространственным положением. 13 -Feb-18 Software Engineering 13
Стандартные единицы измерений 13 -Feb-18 Software Engineering 14
Геометрические формы • Узел Shape связывает узел, описывающий геометрию (geometry node), с узлами, описывающими «внешний вид» этой геометрии (appearance). • Узел Shape подвержен иерархии пространственных трансформаций. • Узел Shape (не считая узла Background – для фона) – единственный узел, дающий видимый результат рендеринга (отображение). • Все возможные геометрические узлы таковы: Box Cone Cylinder Elevation. Grid Extrusion Indexed. Face. Set Indexed. Line. Set Point. Set Sphere Text 13 -Feb-18 Software Engineering 15
Узлы геометрических свойств • Некоторые геометрические узлы имеют узлы свойств: – – Coordinate, Color, Normal, Texture. Coordinate • Эти узлы свойств могут разделяться разными геометрическими узлами, что позволяет экономить память • Некоторые геометрические узлы имеют поля признаков, дающих «подсказки» для работы с геометрией: – Ccw (couter clock wise), solid, convex, crease. Angle, bounding. Box. . . 13 -Feb-18 Software Engineering 16
Узлы «внешнего вида» • Узел Shape может указывать узел, определяющий внешний вид своей геометрии – Appearance node. • Appearance node может задавать «материал» c с помощью узла Material, а также – текстуру (Texture node) и узел, влияющий на трансформацию текстуры (Texture. Transform node). • Имеются узлы для определения текстур разными способами: – Image. Texture – Pixel. Texture – Movie. Texture 13 -Feb-18 Software Engineering 17
Освещение сцены • Имеются три типа узлов для определения освещения сцены: • Directional. Light • Point. Light • Spot. Light Поля источников света определяют внешний вид объектов, подверженных влиянию света, в зависимости от типа источника света и/или его места в пространстве 13 -Feb-18 Software Engineering 18
Узлы - сенсоры • Sensor nodes – являются дочерними узлами • Вырабатывают события при определенных ими условиях (каждый тип сенсора определяет, когда сгенерируется событие) • Сенсоры делятся на две категории: – Сенсоры окружения (environmental sensors); – Сенсоры «указателя» (Pointing device sensors). • Сенсоры окружения: – Proximity. Sensor – определяет, когда пользователь приближается к заданному участку 3 D-мира (пользователь – это «камера» , с которой этот мир обозревается); – Time. Sensor – это часы, вырабатывающие различныесигналы времени, использующиеся при анимациях; – Colision – определяет, когда пользователь сталкивается с объектами виртуального мира; – Visibility. Sensor – определяет, когда объекты становятся видимыми для пользователя. 13 -Feb-18 Software Engineering 19
Узлы - сенсоры • Сенсоры указателя (мышки) срабатывают и выдают сигнал, когда пользователь указывает на некоторую геомерию объектов: – Anchor – Cylinder. Sensor – Plane. Sensor – Sphere. Sensor – Touch. Sensor – Поведение каждого сенсора подробно описана в спецификации его типа. 13 -Feb-18 Software Engineering 20
Узлы-интерполяторы • Интерполяторы позволяют задавать функции от времени, используемые при анимациях: – Color. Interpolator – функция изменения цвета от времени; – Coordinate. Interpolator – изменения 3 D-координат – Normal. Interpolator – изменение векторов нормалей – Orientation. Interpolator – изменение ориентации в пространстве – Position. Interpolator – изменение векторов – Scalar. Interpolator – изменение скалярных значений (float) 13 -Feb-18 Software Engineering 21
Узлы, зависящие от времени • Time dependent nodes активизируются/пассивизируются в заданное время (и/или делают это с заданной периодичностью): – Audio. Clip – Movie. Texture – Time. Sensor «Связываемые» (bindable) узлы • Bindable nodes – только один из них может быть использхован в данный момент: – – 13 -Feb-18 Background Viewpoint Fog Navigation. Info – некоторые подсказки про «навигацию» Software Engineering 22
Прототипы • Средство определения новых типов узлов путем задания их интерфейса (proto declaration) и реализации (proto definition) ; • Интерфейс определяется так: PROTO
EXPERNPROTO • Отличается от PROTO тем, что интерфейс определяется в файле, где используется этот тип, а вместо его реализации задается ссылка (URL) на другой файл, который содержит описание PROTO (интерфейс которого «не уже» данного). Script nodes • Определяют интерфейс похожим на PROTO образом, но вместо реализации либо ссылаются (по URL) на класс (Java), который обеспечивает эту реализацию, либо прямо (inline) содержат код на Java. Script с такой реализацией. 13 -Feb-18 Software Engineering 24
Примеры • • См. Примеры из Спецификации См. сайт www. parallelgraphics. com Экспорт VRML из 3 D Studio Max VRML-Pad • Instant Reality - http: //www. instantreality. org/ Fraunhofer Institute for Computer Graphics (IGD-VCST) covers a broad spectrum of experiences and competencies in the field of virtual and augmented reality and computer vision: http: //www. igd. fraunhofer. de/en/Institut/Abteilungen/Visual-Computing. System-Technologies 13 -Feb-18 Software Engineering 25
Что дальше? Для всех: - Изобразить на VRML «звезду» (или призму). Для первокурсников: - Изобразить ее же средствами WPF (программно и с помощью XAML). Для второкурсников: - С помощью VRML-Java взаимодействия (см. Instant Reality) сделать перемещение/вращение этой VRML-фигуры. Попробовать сделать java-GUI для определения параметров фигуры / перемещения. Q&A 13 -Feb-18 Software Engineering 26


