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



страница1/13
Дата09.10.2012
Размер1.82 Mb.
ТипРеферат
  1   2   3   4   5   6   7   8   9   ...   13


Введение в OpenSceneGraph

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

Paul Martz

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

11.07.2009

asmzx@tut.by

Содержание

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


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


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

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

1.2.2 Apple Mac OS X…………….…………………………….6

1.2.3 Fedora Linux………………………………………………7

1.2.4 Microsoft Windows………………………………………..8

1.2.5 Проверка Вашей Установки OSG…………………….9
1.3 Запуск osgviewer……………………………………………….10

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

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

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

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

1.3.5 Запись Анимации………………………………………15
1.4 Компиляция OSG Приложений…………………….………..16

1.4.1 Apple Mac OS X……………….………………………….6

1.4.2 Fedora Linux………………………………………………7

1.4.3 Microsoft Windows………………………………………..8
1.5 Введение в Графы Сцен………………………………………2

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

1.5.2 Как Отображается Граф Сцены………………………4
1.6 Обзор OpenSceneGraph……………………………………….5

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

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

1.6.3 Компоненты……………………………………………..55
2 Построение Графа Сцены……………………………….4
2.1 Управление Памятью………………………………….

2.1.1 Класс Referenced…………………………….

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

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

2.2.1 Обзор Классов Геометрии……………….
2.3 Узел Group………………………………….

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

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

2.3.3 Узлы Transform…………………….

2.3.4 Узел LOD………………………………………

2.3.5 Узел Switch…………………………………
2.4 Состояние Отображения…………………………….

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

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

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

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

2.4.5 Освещение……………………………..
2.5 Ввод/Вывод Файлов……………….

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

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

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

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

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

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

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

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

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

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

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

3.2.3 NodeVisitors……………………..

3.2.4 Выбор…………………………………
Приложение: Куда Двигаться Дальше……………..
Глоссарий…………………
Библиография……………………….

Предисловие
Эта книга является кратким введением в 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   ...   13

Похожие:

Перевел: Татаринцев Денис iconПеревел: Татаринцев Денис
Краткое Знакомство с Кросс Платформенным api графа Сцены с Открытым Исходным Кодом
Перевел: Татаринцев Денис iconФонвизин денис Иванович
Фонвизин денис Иванович [1745-1792] знаменитый русский писатель происходил из обрусевших остзейских дворян (фон-Визин)
Перевел: Татаринцев Денис iconЛитература / Публицистика Азбука открытий. Стихи. Перевел с гагаузского Вадим Кузнецов

Перевел: Татаринцев Денис iconУспех! Беспре­дельная Власть
Перевёл с английского Л. М. Щукин по изданию: unlimited power by Anthony Robbins.—
Перевел: Татаринцев Денис iconУспех! Беспре­дельная Власть
Перевёл с английского Л. М. Щукин по изданию: unlimited power by Anthony Robbins.—
Перевел: Татаринцев Денис iconОбласти перевода
С начала работы внештатным переводчиком в 1980 году я перевел тысячи различного рода документов
Перевел: Татаринцев Денис iconДенис иванович фонвизин

Перевел: Татаринцев Денис iconДенис Васильевич давыдов 1784—1839

Перевел: Татаринцев Денис iconДенис Куталев астрология новых планет

Перевел: Татаринцев Денис iconПеревел с армянского
Рыдающая женщина. – (Возводя руки к небу). Агабаб, родной… Что же ты наделал, Агабаб…
Разместите кнопку на своём сайте:
ru.convdocs.org


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