Министерство образования и науки Российской Федерации Ростовский Государственный Университет

Вид материалаДокументы

Содержание


РАЗРАБОТКА ГРАФИЧЕСКОЙ БИБЛИОТЕКИ ДЛЯ РАБОТЫ С ТРЕХМЕРНЫМИ МОДЕЛЯМИ МЕСТНОСТИ Марков А. А., Гальченко Г. А.
Разработка графической библиотеки для работы с трехмерными моделями местностиВыбор принципа представления данных о ландшафте
Использование регулярной карты высот.
Подобный материал:
1   ...   35   36   37   38   39   40   41   42   ...   75

РАЗРАБОТКА ГРАФИЧЕСКОЙ БИБЛИОТЕКИ ДЛЯ РАБОТЫ С ТРЕХМЕРНЫМИ МОДЕЛЯМИ МЕСТНОСТИ

Марков А. А., Гальченко Г. А.

Классический Лицей №1 при Ростовском государственном университете


markovizomega@yandex.ru

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

Компьютер позволяет автоматизировать и значительно упростить работу людей мно­гих профес­сий. Для этого существует довольно много специализированных программ.

С увеличением вычислительных мощностей все шире для наглядного представления информации в программном обеспечении используется трехмерная графика [1]. Начина­ется внедрение трехмерных моделей местности [2].

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

Трехмерные модели местности – основа разработки ряда новейших компьютерных технологий в следующих областях:
    • математическое моделирование для отработки военной техники;
    • тренажеры;
    • командно-штабные учения;
    • моделирование систем управления транспортными потоками;
    • архитектурное и ландшафтное проектирование;
    • объемные презентации;
    • виртуальный туризм;
    • компьютерные игры.

Однако в России широкого применения трех­мерные модели местности пока не полу­чили, что связано с отсутствием достаточно широкой базы специального про­граммного обеспечения

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

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

Созданная в ходе выполнения работы графическая библиотека позволяет достаточно полно использовать все возможности и преимущества трехмерных моделей местности. Она позволяет расширить возможности уже созданного программного обеспечения или же соз­дать на ее основе новое высокопроизводительное приложение, в котором для представле­ния информации будут применяться вышеуказанные модели. Разработчик смо­жет вопло­тить большинство идей заказчика, так как библиотека обладает широкими воз­можностями.

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

Направление дальнейшей работы над библиотекой – расширение ее функцио­нальных возможностей, за счет добавления в нее таких функций как:
    • поддержка экспорта и импорта файлов моделей наиболее распространенных фор­матов (3DS Max, Maya и т.д.);
    • расширение набора встроенных объектов (здания, деревья и т.д.);
    • фотореалистичный рендеринг;

Разработка графической библиотеки для работы с
трехмерными моделями местности
Выбор принципа представления данных о ландшафте


Основной проблемой вставшей перед мной в ходе разработки библиотеки стал выбор между существующими методами представления данных о ландшафте.

Использование регулярной карты высот.

Данные представлены в виде двухмерного массива. Уже заданы две координаты (x, y - по высоте и ширине массива), и третья координата задается значением в конкретной ячейке, это высота.

На рис. 1 изображен пример, демонстрирующий данный принцип.



Рис. 1. Пример построения ландшафта по регулярной карте высот.

Обычно карту высот хранят в файлах изображений. Это позволяет легко вносить из­мене­ния и наглядно просматривать данные. Тогда двумя координатами будет по­ложение конкретного пикселя на картинке, а третья координата будет представлена цве­том (чем выше значение, прямая зависимость от яркости пикселя – тем больше значение высоты для этой точки). Обычно такие картинки содержатся в монохромном варианте, но можно ис­пользовать и все цвета радуги.

Второй ва­риант дает больше градаций высоты, чем пред­полагаемые 256 градаций в случае монохромного представления.

С помощью этого способа можно представить достаточно обширные пространства. Но у него есть один существенный недостаток – слишком много описаний для точек, а также, в некоторых случаях, наблюдается избыточность данных, например, ко­гда задается простая плоскость, то в этом случае для построения будет использоваться множество то­чек, хотя можно бы было обойтись тремя. Хотя и эта самая избыточность может пойти на пользу, например, при вертексном (вершинном) освещении.

У этого метода существует и несколько плюсов:
    • Наглядность, в любой программе просмотра графических файлов можно сразу увидеть всю информацию;
    • Простота изменения этих самых данных, так как существует множество про­грамм для работы с растровой графикой;
    • В таких картах можно хранить не только данные о высоте. Напри­мер, предполо­жим, что для хранения высоты мы используем 16 бит, т.е. две цветовые компоненты, это получается 256x256=65536 градаций высоты. Остальные 8 бит можно использовать для хранения информации о каких-либо особенностях ланд­шафта, например, расположение зданий, строений, мостов, растительности и так да­лее.
    • Еще одна идея использования карт высот. Будем хранить, также числовые, значе­ния, но теперь не высот, а блоков (назовем их ландшафтными). Можно заранее создать некоторое количество карт высот небольшого размера (скажем 8x8 или 16x16 пикселей), а в карте блоков высот хранить идентификатор существую­щего блока. Это дает нам значительно больший размер карты и, следовательно, ландшафта. Правда тут нужно будет обратить особое внимание на места соединения блоков. То есть, по­лучается, что первый способ представления данных для по­строения ландшафта плавно перешел в третий.
    • Из некоторых других плюсов можно упомянуть легкость нахождения коорди­нат (и высоты!) на карте.
    • И еще один плюс – так как вершинные точки расположены регулярно и доста­точно близко, можно более правильно и достаточно аккуратно производить ди­нами­ческое освещение (зачастую, освещенность вершины напрямую зависит от рас­стоя­ния от этой вершины до источника освещения). Это и есть та самая польза от из­бы­точности данных.

Список использованных источников и литературы

  1. Дэйв Салватор. Шаг в третье измерение. // PC Magazine, 7 мая, 2001.
  2. Краснов М. В. OpenGL. Графика в проектах Delphi. – СПб.: БХВ-Петербург, 2002. – 352 с.: ил.
  3. Материалы семинара "Трехмерные цифровые модели местности - опыт и область их применения в Швеции"
  4. Пирогов В. Ассемблер для Windows. – BHV-Санкт-Петербург. – 656 стр.
  5. Поздняков К. Разработка графического движка. Ландшафт. // www.gamedev.ru
  6. Пономаренко С. Пиксел и вектор. Принципы цифровой графики. – СПб.: BHV-Санкт-Петербург. – 496 стр.
  7. Серба А. Ландшафт шаг за шагом // www.gamedev.ru.
  8. Технологии построения трехмерных моделей местности. // www.traintech.ru.
  9. Шишкин Е. В., Боресков А. В. Компьютерная графика. М.: Диалог-МИФИ, 1995. – 288 с., ил.
  10. Якушев А. Основы 3D математики. Векторные и матричные преобразования // www.gamedev.ru.
  11. Якушев А. Основы 3D математики. Работа с камерой // www.gamedev.ru.
  12. Якушев А. Основы 3D математики. Рендеринг // ссылка скрыта.