Краткое Знакомство с Кросс Платформенным api графа Сцены с Открытым Исходным Кодом




НазваниеКраткое Знакомство с Кросс Платформенным api графа Сцены с Открытым Исходным Кодом
страница1/14
Дата конвертации29.10.2012
Размер1.83 Mb.
ТипРеферат
  1   2   3   4   5   6   7   8   9   ...   14


Введение в OpenSceneGraph


Краткое Знакомство с Кросс Платформенным API Графа Сцены с Открытым Исходным Кодом


Paul Martz


Перевел: Татаринцев Денис

11.07.2009

asmzx@tut.by

Содержание


Предисловие………………………………………………………….5


1 Обзор Графов Сцены и OpenSceneGraph………………….…9


    1. История OpenSceneGraph……………………………...…….9


1.2 Установка OSG………………….……………………………...11

1.2.1 Требования к Оборудованию………………………..11

1.2.2 Apple Mac OS X…………….…………………………..12

1.2.3 Fedora Linux……………………………………………..12

1.2.4 Microsoft Windows………………………………………13

1.2.5 Проверка Вашей Установки OSG…………………...13


1.3 Запуск osgviewer……………………………………………….14

1.3.1 Получение Помощи……………………………………15

1.3.2 Режимы Отображения………………………………...16

1.3.3 Переменные Окружения……………………………...16

1.3.4 Вывод Статистик……………………………………….17

1.3.5 Запись Анимации………………………………………18


1.4 Компиляция OSG Приложений…………………….………..19

1.4.1 Apple Mac OS X……………….………………………..19

1.4.2 Fedora Linux……………………………………………..19

1.4.3 Microsoft Windows………………………………………20


1.5 Введение в Графы Сцен……………………………………...21

1.5.1 Возможности Графа Сцены………………………….22

1.5.2 Как Отображается Граф Сцены……………………..24


1.6 Обзор OpenSceneGraph………………………………………25

1.6.1 Дизайн и Архитектура…………………………………26

1.6.2 Соглашения об Именовании…………………………27

1.6.3 Компоненты……………………………………………..27


2 Построение Графа Сцены………………………………………39


2.1 Управление Памятью………………………………………….39

2.1.1 Класс Referenced………………………………………41

2.1.2 Шаблонный Класс ref_ptr<>………………………….42

2.1.3 Примеры Управления Памятью…………………..…42


2.2 Geodes и Geometry…………………………………………….45

2.2.1 Обзор Классов Геометрии……………………………49


2.3 Узел Group…………………………………………………...….52

2.3.1 Дочерний Интерфейс……………………………….…53

2.3.2 Родительский Интерфейс…………………………….54

2.3.3 Узлы Transform…………………………………………56

2.3.4 Узел LOD……………………………………………..…59

2.3.5 Узел Switch……………………………………………...61


2.4 Состояние Отображения……………………………………..62

2.4.1 Атрибуты и Режимы…………………………………...63

2.4.2 Наследование Состояния…………………………….65

2.4.3 Пример Кода Настройки Состояния………………..67

2.4.4 Наложение Текстур…………………………………....70

2.4.5 Освещение……………………………………………...74


2.5 Ввод/Вывод Файлов…………………………………………...79

2.5.1 Интерфейс…………………………………………...….79

2.5.2 Рассмотрение Регистрации и Подгружаемых Модулей………………………………………………...82


2.6 NodeKits и osgText……………………………………………..83

2.6.1 Компонент osgText…………………………………….83

2.6.2 Использование osgText……………………………….84

2.6.3 Код Примера Text……………………………………...88

2.6.4 Формат Файла .osg…………………………………….88


3 Использование OpenSceneGraph в Вашем Приложении…93


3.1 Отображение……………………………………………………93

3.1.1 Класс Viewer…………………………………………….94

3.1.2 CompositeViewer………………………………………..97


3.2 Динамическая Модификация………………………………...97

3.2.1 Изменение Данных…………………………………….98

3.2.2 Обратные Вызовы……………………………………..99

3.2.3 NodeVisitors……………………………………………104

3.2.4 Выбор…………………………………………………..106


Приложение: Куда Двигаться Дальше………………………...113


Глоссарий…………………………………………………………..115


Библиография……………………………………………………..118

Предисловие


Эта книга является кратким введением в OpenSceneGraph (OSG) – кросс-платформенный прикладной программный интерфейс (API) графа сцены с открытым исходным кодом. В частности в этой книге описывается OSG v2.0. OSG играет ключевую роль среди 3D программного обеспечения. OSG является ПО промежуточного уровня, стоящим над низкоуровневым абстрактным слоем (HAL) OpenGL, предоставляя богатые возможности высокоуровневого отображения, ввода/вывода, а так же функциональности для пространственной организации в 3D приложении.


Многие годы развития OSG исходные коды являлись так же и документацией. Дистрибутив OSG содержит несколько примеров, в которых показаны различные эффекты отображения и методы интеграции OSG с приложениями конечных пользователей. Эти наглядные примеры и возможность пройтись по ядру OSG отладчиком позволили нескольким разработчикам стать экспертами в OSG API.


Хотя раньше хватало и исходного кода, в качестве документации, но код не подходит для более традиционных форм документации. Документация сама по себе является достаточно простым педагогическим инструментам с картинками и таблицами, которые трудно вставлять в исходный код. С ростом и усложнением OSG отсутствие формальной документации приводило к неприемлемо долгой кривой обучения новых пользователей. До выхода этой книги отсутствие формального описания приводило к недоверию некоторых разработчиков, достаточна ли OSG готова и стабильна, для написания профессиональных приложения.


В ответ на постоянные просьбы OSG сообщества, Don Burns и Robert Osfield начали писать документацию, бросив работу над более неотложными OSG делами. В середине 2006 у Don’a появился клиент в лице Computer Graphics Systems Development Corporation (CGSD), с контрактом на разработку документации, Дон пригласил в качестве субподрядчика Paul Martz. Роберт предложил, что первая книга по OSG должна быть свободно доступна и кратка. Таким образом было рождено Введение в OpenSceneGraph.


Введение в OpenSceneGraph является кратким справочником программиста, в котором раскрываются основные моменты OSG API. Книга является первой из серии запланированных книг, в которых будет более детальное описание OSG. Введение в OpenSceneGraph преследует следующие цели.


  • Предоставить новым OSG разработчикам быстрое и доступное введение в основы OSG.




  • Познакомить читателя с условиями распространения OSG и структурой организации исходных кодов.




  • Продемонстрировать правильное использование часто используемых элементов OSG API.




  • Указать читателю источники более подробной информации.


В духе программ с открытым исходным кодом, Введение в OpenSceneGraph доступно в виде PDF файла бесплатно. Тем не менее вы можете внести вклад в OSG сообщество купив бумажный вариант этой книги. Для размещения online заказа на эту книгу посетите Web сайт Lulu.com и поищите OpenSceneGraph.


http://www.lulu.com


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


Не зависимо от того скачали вы эту книгу бесплатно или купили бумажную версию, ваш отзыв о книге позволит гарантировать что этот документ будет оставаться в актуальном состоянии. Пожалуйста оставляйте ваши комментарии в списке рассылок osg-пользователей.

Смотрите Приложение: Куда Двигаться Дальше, чтобы получить информацию о списке рассылок osg-пользователей.


Чтобы получить информацию о новых исправлениях в книге, посетите Web сайт OpenSceneGraph книг.


http://www.osgbooks.com/


Этот URL содержит самую актуальную информацию о получении последнего обновления этой книги, содержит ссылку на исходные коды примеров, и информацию о ближайших публикациях.


Целевая Аудитория


Это короткая книга и сделать ее короткой было не простой задачей. Рассматриваемый материал ограничен обзором лишь малой части функциональности OSG, но что более важно, эта книга адресована определенному кругу читателей.


Эта книга адресована разработчикам программного обеспечения не знающим OSG и рассматривающим возможность использования OSG в своем приложении. Эта книга не имеет отношения к приложениям из какой то конкретной области, но предоставляет полезную информацию, которая может быть полезна на рынках визуализаций и симуляторов, а это является традиционно сильной стороной OSG.


OSG имеет C++ API, поэтому предполагается что вы достаточно знакомы с C++. Вообще вы должны быть знакомы с такими понятиями C++ как public и private доступ, виртуальные функции, выделение памяти, наследование, конструкторы и деструкторы. OSG широко использует стандартную библиотеку шаблонов (STL), поэтому вы должны быть знакомы и с ней тоже, особенно с list, vector, и map. Некоторое знакомство паттернами проектирования, реализованными на C++ желательно, но не обязательно.


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


Если вы рассматриваете возможность использования OSG в вашем приложении, вы вероятно знакомы с 3D графикой. Для этой книги вам должен быть знаком OpenGL, стандартный кросс платформенный API для низкоуровневого программирования 3D графики. Вы должны знать на концептуальном уровне о различных координатных системах и четко представлять как задаются трехмерные Декартовые координаты для описания вершин геометрии. Вы должны знать что текстурирование просто накладывает изображение на геометрию, но как графическое оборудование выполняет эту задачу знать не обязательно.


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


Рекомендуется к Прочтению


Если вы немного подзабыли что либо из упомянутого выше, вы можете найти это в списке перечисленных ниже книг, рекомендуемых к прочтению.


  • OpenGL® Programming Guide, Fifth Edition, by OpenGL ARB, Dave Shreiner, Mason Woo, Jackie Neider, and Tom Davis (Addison-Wesley) [ARB05].




  • Geometric Tools for Computer Graphics, by Philip Schneider and David H. Eberly (Morgan Kaufmann).




  • Real-Time Rendering, Second Edition, by Tomas Akenine-Moller and Eric Haines (AK Peters).




  • Computer Graphics, Principles and Practice, Second Edition, by James D. Foley, Andries van Dam, Steven K. Feiner, and John F. Hughes (Addison-Wesley).




  • The C++ Programming Language, Third Edition, by Bjarne Stroustrup (Addison-Wesley).


Структура Книги


Введение в OpenSceneGraph состоит из трех основных глав и приложения.


Глава 1, Обзор Графов Сцены и OpenSceneGraph, начинается с краткой истории происхождения OSG, далее следуют инструкции о том, как получить и установить OSG и как пользоваться некоторыми примерами и приложениями, включенными в дистрибутив OSG. В этой главе дается введение в концепцию графа сцены и далее следует обзор OSG и ее организация.


В Главе 2, Построение Графа Сцены, вы получите возможность просмотра отладчиком структуры данных для хранения и отображения геометрии. Описываются фундаментальные основы ядра OSG, такие как указатели с подсчетом ссылок, узлы графа сцены, рисуемая геометрия, и состояние (включая наложение текстур и освещение). Эта глава так же описывает вспомогательный узел osgText для быстрого добавления текста в вашу сцену, ввод/вывод файлов для доступа к сохраненным данным графа сцены и изображениям. По завершении главы вы будете твердо понимать, как использовать OSG для построения графа сцены, который отображает различную геометрию.


В Главе 3, Использование OpenSceneGraph в Вашем Приложении, вы узнаете только об этом. Последняя глава описывает отображение, позиционирование и ориентирование точки наблюдения, анимацию и динамическую модификацию вашего графа сцены.


Наконец Приложение: Куда Двигаться Дальше, объяснит где вы можете найти дополнительную информацию о OSG и как стать участником OSG сообщества.


Соглашения


Эта книга использует следующие соглашения стилей:


  • Bold—классы и имена из пространства имен OSG, методы и функции OSG и OpenGL API, типы OSG и OpenGL.




  • Italics—Переменные, имена параметров, аргументы, матрицы и размерность пространства (такая как x, y, и z).




  • Monospace—отрывки кода, небольшие участки кода с комментариями, перечисления и константы.


Кроме того, URL Web адреса даны отдельно от текста и используют monospace шрифт, italics обозначает введение нового термина.


Об Авторе


Paul Martz является президентом компании Skew Matrix Software LLC, которая предоставляет услуги по разработке программного обеспечения на заказ, составлению документации и услуги по обучению разработчиков. Paul вовлечен в разработку 3D графического программного обеспечения с 1987 и является автором OpenGL®Distilled [Martz06]. Он играет на барабанах, обучает музыке, и известен как любитель игры в покер.

1 Обзор Графов Сцены и OpenSceneGraph


В этой главе дается введение в концепцию графа сцены. Вы узнаете историю OSG и ее организацию, взгляните на ее возможности, узнаете как получить и установить OSG, как запустить несколько примеров. Эта глава познакомит вас с графом сцены и OSG, не вдаваясь в детали при написании приложений основанных на OSG. Главы 2 и 3 раскроют эту тему более подробно. Эта глава является просто знакомством.


1.1 История OpenSceneGraph


В 1997, Don Burns был нанят в качестве консультанта по программному обеспечению в

Silicon Graphics, Inc. (теперь просто SGI) после многочасовых занятий дельтапланеризмом. Неизбежно интерес к компьютерной графике и дельтапланеризму в купе с доступом к современному оборудованию привел к тому, что он начал разрабатывать симулятор дельтаплана, который работал на SGI Onyx системах используя (принадлежавший SGI) граф сцены Performer.


Товарищи по увлечению дельтапланеризмом поддержали идею о том, что симулятор должен быть доступен на более распространенном оборудовании, поэтому Don начал экспериментировать с Mesa3D в операционной системе Linux на видеокарте 3dfx Voodoo. В то время как эта операционная система предоставляла приемлемую поддержку OpenGL, графы сцены под Linux небыли доступны в то время. Don начал писать SG, как упрощенный Performer-подобный граф сцены. Акцент в этом SG был сделан на простоту и удобность использования. В конечном счете SGI портировала Performer под Linux и Don’у стал больше не нужен его SG граф сцены.

Robert Osfield познакомился с Don’ом в начале 1990ых по списку рассылок энтузиастов дельтапланеризма. Robert работал консультантом по дизайну на производстве дельтапланов, и имел опыт в моделировании стабилизации тангажа. Оба стали сотрудничать над улучшением симулятора. Robert был сторонником программ с открытым исходным кодом и предложил продолжить разработку SG как независимого проекта с открытым исходным кодом. Поскольку Don’а удовлетворял Performer, он потерял интерес к SG и передал лидерство над проектом Robert’у. Имя изменилось на OpenSceneGraph и изначально девять человек были зарегистрированы в списке рассылок osg-пользователей.


Позже в 2000, Brede Johansen сделал первый значительный вклад в OpenSceneGraph, написав OpenFlight OSG подгружаемый модуль. Он написал этот модуль, работая над Kongsberg Maritime Ship Simulation, Kongsberg, Норвегия, которая продавала основанную на OSG систему визуализации SeaView R5.


В 2001, Robert стал тратить все свое время на OSG, предлагая Профессиональные Услуги OpenSceneGraph. В то время он разработал и реализовал многие из ключевых возможностей, присутствующих в OSG сегодня. Одним из первых клиентов Robert’a был Glasgow Science Center’s Virtual Reality Theatre, результатом работы с которым стало появление приложения Present3D (программа для просмотра 3D презентаций).


Don переехал в Keyhole Technologies (теперь Google Earth отделение Google) и впоследствии ушел в отставку в 2001. Он основал свою компанию Andes Computer Engineering, находящуюся в San Jose, California, в основном продолжая разработку OSG. Первое представление OpenSceneGraph широкой публике состоялось на SIGGRAPH 2001. Слушателями стали 12 человек, среди которых оказался представитель компании Magic Earth, искавший библиотеку графа сцены с открытым исходным кодом, для использования ее при разработке приложений в нефтяной и газовых отраслях. Компания решила заключить контракт с Don’ом и Robert’ом на поддержку и разработку, и таким образом стала первым клиентом, оказавшим финансовую помощь OSG.


Каждый год посещаемость мероприятий, посвященных OSG, росла. Количество зарегистрированных членов в списке рассылок osg-пользователей росло невероятными темпами, как видно на Рисунке 1-1. Когда эта книга вышла в печать, список рассылок содержал более 1700 подписчиков.


Возможности OSG и дополнительные библиотеки быстро росли. В 2003, для компании Magic Earth, была разработана дополнительная библиотека Producer (изначально называвшаяся OSGMP), для предоставления возможности многоканального отображения. В 2004 были добавлены шейдеры, поддержка больших подгружаемых баз данных земной поверхности. В 2006 был полностью переделан подгружаемый модуль OpenFlight, создан osgViewer, представлявший собой интегрированною библиотеку для управления и отображения сцены.




  1   2   3   4   5   6   7   8   9   ...   14

Добавить в свой блог или на сайт

Похожие:

Краткое Знакомство с Кросс Платформенным api графа Сцены с Открытым Исходным Кодом iconThis draft document is not an api standard; it is under consideration within an api technical committee but has not received all approvals required to become a

Краткое Знакомство с Кросс Платформенным api графа Сцены с Открытым Исходным Кодом iconThis draft document is not an api standard; it is under consideration within an api technical committee but has not received all approvals required to become an

Краткое Знакомство с Кросс Платформенным api графа Сцены с Открытым Исходным Кодом iconПроект: алгоритмы и методы кросс-коммутации асинхронных потоков
Целью проекта является разработка алгоритмов мультиплексирования и кросс-коммутации асинхронных потоков данных, реализация устройства...

Краткое Знакомство с Кросс Платформенным api графа Сцены с Открытым Исходным Кодом iconЗадача раскраски графа: постановка и решение. Приближенная раскраска графа по Ершову
...

Краткое Знакомство с Кросс Платформенным api графа Сцены с Открытым Исходным Кодом iconНаправление "Кросс-культурный фактор в менеджменте"
Главная цель тренинга: показать неоднородность российского менеджмента и значение кросс-культурной компетенции в управлении современном...

Краткое Знакомство с Кросс Платформенным api графа Сцены с Открытым Исходным Кодом iconСценарий 23 февраля День защитника Отечества 5
Сцена — пространство у стены зала. Левый край сцены может изображать княжеский терем, правый — лес. Посередине сцены стоит ширма....

Краткое Знакомство с Кросс Платформенным api графа Сцены с Открытым Исходным Кодом iconКазахская академия труда и социальных отношений социально-гуманитарный факультет
Учебная программа (Syllabus) дисциплины «Кросс-культурные исследования в этнопсихологии» составлена на основе госо по специальности...

Краткое Знакомство с Кросс Платформенным api графа Сцены с Открытым Исходным Кодом iconПрограмма дисциплины «Кросс-культурная психология»  для направления 03300. 68 «Психология»
Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов направления подготовки/ специальности...

Краткое Знакомство с Кросс Платформенным api графа Сцены с Открытым Исходным Кодом iconПрограмма научно-исследовательского семинара по кросс-культурной психологии  для направления 030300. 68 Психология подготовки магистра для магистерской программы «Прикладная социальная психология»
Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов направления подготовки/ специальности...

Краткое Знакомство с Кросс Платформенным api графа Сцены с Открытым Исходным Кодом iconПрограмма научно-исследовательского семинара «Кросс-культурная психология управления персоналом»
Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов для направления 030300. 68...


Разместите кнопку на своём сайте:
lib.convdocs.org


База данных защищена авторским правом ©lib.convdocs.org 2012
обратиться к администрации
lib.convdocs.org
Главная страница