Развитие компьютерного планетария Stellarium



Дата27.04.2016
Памер163 Kb.
#37491

Развитие компьютерного планетария Stellarium


В.И. Виноградов, К.В. Корняков

Нижегородский государственный университет им. Н.И.Лобачевского

Введение


В октябре 2007 года в Нижнем Новгороде был открыт первый в России цифровой планетарий. В настоящее время основным источником материала для цифровой системы является компьютерный планетарий Stellarium [1]. Данная программа имеет открытый исходный код (лицензия GPL), разрабатывается с 2003 года на языке С++ и с использованием библиотеки OpenGL и нашла применение во многих планетариях мира. Stellarium позволяет наблюдать звездное небо из любой точки Земли в любое время года и суток, а также отображать созвездия, планеты Солнечной системы, галактики и туманности.

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


Основные направления деятельности


Stellarium предназначен прежде всего для демонстрации звездного неба. Стоит отметить, что система имеет очень высокое качество визуализации звезд, создавая очень реалистичную картину. Но, техника визуализации объектов Солнечной системы (Солнца, планет и их спутников) довольно проста. Фактически Солнце и планеты представляют собой сферы с наложенными на них текстурами поверхности. Поэтому при взгляде из космоса у Земли, например, отсутствует атмосфера, у Луны – рельеф, а у Солнца совершенно отсутствует динамика.

Отсюда определилось первое направление деятельности: реалистичный рендеринг Солнца и планет с использованием современных технологий компьютерной графики. Было решено начать с визуализации Солнца, поскольку оно выглядит наименее реалистично.

Также существенным недостатком Stellarium является отсутствие возможности для загрузки и демонстрации трехмерных моделей, хотя таковая имеется, например, в другом открытом компьютерном планетарии – Celestia [2]. Во время лекции о космических аппаратах, станциях и спутниках очень важно сопровождать рассказ демонстрацией моделей этих объектов, чтобы зритель получал детальное и достоверное представление. Эта задача выделилась во второе самостоятельное направление, над которым велась работа.

Реалистичный рендеринг Солнца


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

Было принято решение моделировать процессы поэтапно, постепенно наращивая реалистичность отображение явлений, происходящих на звезде. Сначала была визуализирована гранулированная структура поверхности Солнца, которая возникает в результате процессов, подобных кипению воды. Для создания этого эффекта был придуман несложный, но в то же время эффективный способ: на сферу накладывается три текстуры, одна из которых цветная, а две другие представляют собой черно-белые карты интенсивности. При помощи фрагментного шейдера задается движение черно-белым текстурам, которое зависит от таймера. При движении текстур изменяется интенсивность цвета в каждой точке, что создает на поверхности Солнца необходимый визуальный эффект (Рис. 1).







Рис. 1.Визуализация поверхности Солнца

Полученный метод визуализации Солнца необходимо было внедрить в компьютерный планетарий Stellarium. Stellarium взаимодействует с операционной системой посредством библиотеки SDL [3], которая содержит лишь базовое API для работы с шейдерами. Поэтому, поскольку для работы с текстурами были использованы фрагментные шейдеры, возникла необходимость в создании интерфейсного класса. На данный момент класс предоставляет минимальную функциональность для работы с фрагментными шейдерами, а именно: загрузка и выгрузка текстур, инициализация шейдерных переменных, подключение и отключение шейдера. Планируется продолжить работу по совершенствованию класса, реализовать поддержку вершинных и геометрических шейдеров.

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

Импорт и визуализация трехмерных объектов


Трехмерные модели создаются в различных редакторах и представляются в разных форматах данных. В сети Интернет довольно много общедоступных моделей космических объектов, созданных с высокой степенью детализации и достоверности. Значительная их часть представлена в формате 3ds, вследствие чего, именно этот формат и был выбран в качестве основного для использования в Stellarium.

Задача чтения 3ds-файлов осложнена отсутствием официальной спецификации формата, к тому же сам файл является бинарным. Было решено использовать существующую свободно распространяемую библиотеку для работы с 3ds форматом – lib3ds [4]. Эта библиотека поддерживает весь цикл работы с файловым форматом: от чтения данных, до загрузки их в специальные структуры данных.

Необходимые коды lib3ds были интегрированы в Stellarium, затем была реализована функция рендеринга трехмерных объектов средствами OpenGL (Рис. 2). В результате в Stellarium появилась возможность импорта произвольного числа трехмерных объектов. Загруженные объекты могут быть запущены вокруг любого тела Солнечной системы по эллиптической орбите, параметры которой также можно выбрать.

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







Рис. 2.Примеры трехмерных моделей

Заключение


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

Также решена основная проблема модели Солнца в Stellarium – отсутствие динамики. Однако по этому направлению имеется еще несколько нерешенных задач. Результаты разработки планируется представить в Нижегородском Планетарии после визуализации солнечных пятен и короны.

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

Список литературы


  1. www.stellarium.org

  2. www.shatters.net/celestia

  3. www.libsdl.org

  4. www.lib3ds.sourceforge.net

  5. www.whisqu.se/per/docs/graphics56.htm

  6. www.opengl.org/documentation/red_book

  7. www.nnit.ru/news/n41708

  8. Хилл Ф. «OpenGL. Программирование компьютерной графики. Для профессионалов». – СПб.: Питер, 2002. – 1088 с.

  9. skywatching.net/astro/solnce_fotosfera.php

  10. Рост Р. Дж. «OpenGL. Трехмерная графика и язык программирования шейдеров. Для профессионалов». – СПб.: Питер, 2005. – 428 с.

  11. ru.wikipedia.org/wiki/Солнце

    Контакты:

    Корняков Кирилл Владимирович

    Моб. тел.: +7 915 933 69 36

    E-mail: kirill.kornyakov@gmail.com

    E-mail проектной группы: itlab.planetarium@cs.vmk.unn.ru



Каталог: data -> objects
data -> Get lucky daft Punk
data -> Испитна питања из предмета штеточине украсних биљака (izborni)
data -> Испитна питања из предмета штеточине украсних биљака
data -> Press Release Dec. 2010 – No. 14-10 The essa expands its certification range
data -> Press Release No. 03-11 Compass through the world of security
objects -> Миграция на gnu/Linux и свободное программное обеспечение
objects -> Использование Mandriva и свободных программных продуктов в корпоративных ит-инфраструктурах
objects -> Применение технологии оперативной аналитической обработки данных в задачах здравоохранения


Поделитесь с Вашими друзьями:




База данных защищена авторским правом ©shkola.of.by 2022
звярнуцца да адміністрацыі

    Галоўная старонка