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

ЛАБОРАТОРИЯ ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ

Факультет вычислительной математики и кибернетики

Лаборатория ITLabИсследованияПроекты 2003-2009 гг.Учебно-исследовательские проектыРасширение функциональности системы Stellarium Switch to English version  
Новости
О Лаборатории
Обучение
Исследования
Проекты 2011 г.
Проекты 2010 г.
Проекты 2003-2009 гг.
Образовательные комплексы
Семинар Лаборатории
Мероприятия
Вакансии Интел
Сотрудничество
Разработчики сайта
О нас пишут
Летняя школа 2011
Видео лекции
Клуб У.М.Н.И.К.
Имя:
Пароль:
запомнить:
Забыли пароль? Регистрация

Краткое описание проекта

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

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

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

участники проекта

Руководитель проекта Корняков Кирилл /?dir=276
Ветераны проекта Серкин Дмитрий
Стажеры проекта Виноградов Влад  
Любов Дмитрий  http://ezhik452.wordpress.com/
Симонов Олег
Тарасова Елена
Грачев Андрей
Носов Сергей
Выпускники проекта Сербер Дарья

                                

Основные ссылки

http://www.planetarium.nnov.ru/ - оффициальный сайт Нижегородского Планетария

 

 

http://www.stellarium.org/ - оффициальный сайт виртуального планетария Stellarium

 

 

 

Публикации

Технологии Microsoft

в теории и практике программирования

(Нижний Новгород, 19–20 марта 2008 г.)

 

  • Реалистичный рендеринг Солнца (Любов Д.В., Сербер Д.А., Тарасова Е.А.)
  • Подготовка изображений для показа на сферическом экране (Виноградов В.И.)

Подготовка изображений для показа на сферическом экране

В. И. Виноградов

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

Введение

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

Постановка задачи

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

Рис. 1. Изображение для проецирования на сферический экран.

Подписанные области соответствуют их положению на сферическом экране.

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

Методы предварительной обработки изображения

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

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

Цилиндрическая проекция

Первый из рассматриваемых нами методов основан на изменении перспективной проекции изображения на цилиндрическую проекцию. Как видно из названия, виртуальный экран, воспринимаемый зрителем будет иметь форму цилиндра (Рис. 2). С помощью этого метода удобно обрабатывать для показа на куполе панорамные изображения, так как цилиндрический экран может охватить угол обзора в 360◦.

Рис. 2. Цилиндрический виртуальный экран [1].

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

Рис. 3. Переход от декартовых координат исходного изображения к полярным координатам результирующего [1].

Далее приведены формулы перехода, где w и h – размеры исходного изображения (ширина и высота соответственно); s – размер результирующего изображения;  – угол обзора результирующего изображения на куполе по горизонтали;  - азимут центра изображения на виртуальном экране; x, y – декартовы координаты исходного кадра; x1, y1 – результирующего кадра. Так, результирующее изображение можно строить попиксельно из исходного кадра, пользуясь следующим методом: пикселю (x1, y1) результирующего изображения мы присваиваем цвет соответствующего ему пикселя (x, y) из исходного изображения. Формулы соответствия имеют следующий вид:

Проекция FishEye

Второй метод предполагает отображение кадра на виртуальном экране, располагающимся в плоскости, касательной к куполу (Рис. 4). Для этого перспективная проекция изображения переводится в FishEye проекцию. С помощью этого метода удобно обрабатывать простые изображения (например, фотографии).

Рис. 4. Плоский виртуальный экран [1].

Идея преобразования основана на соотношениях полярного радиуса изображения и углом направления на соответствующую точку при перспективном проецировании и FishEye проецировании [2]. Так, при перспективной проекции полярный радиус до пикселя изображения пропорционален тангенсу угла направления, в случае же FishEye проекции – самому углу. Выразив угол направления через полярный радиус результирующего изображения и подставив его в формулы перспективной проекции, мы получим зависимость полярного радиуса исходного изображения от полярного радиуса результирующего изображения, уже в FishEye проекции. Такие преобразования, как сдвиг центра виртуального экрана и изменение угла обзора, осуществляются уже после перехода и представляются как перспективный сдвиг и растяжение. Соответствующие формулы перехода имеют следующий вид, где w и h – размеры исходного изображения; s – размер результирующего изображения;  – угол обзора; ,  – координаты центра виртуального экрана в сферических координатах купола; x, y – декартовы координаты исходного кадра; x1, y1 – результирующего кадра:

Демонстрационная версия программы и технологии ее реализации

Для обработки изображений была разработана демонстрационная версия программы ImageConvertor, позволяющая преобразовывать изображения методами, описанными выше. Результаты обработки некоторых изображений показаны ниже:

     

Рис. 5. Цилиндрическая проекция.

Угол обзора - 260◦.

Азимут центра - 0◦.

 

 

 

 

             

 

   Рис. 6. Цилиндрическая проекция.

Угол обзора - 200◦.

Азимут центра - 0◦.

Рис. 7. Проекция FishEye.

Угол обзора - 120◦.

Координаты центра – (0, 0).

Рис. 8. Проекция FishEye.  

Угол обзора - 110◦.              

Координаты центра – (0, 25).

Разработка программы выполнялась в среде Microsoft Visual Studio 2005 на языке Visual C# с использованием технологий платформы Microsoft .NET Framework, что позволило значительно сократить время на кодирование.

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

1.      http://local.wasp.uwa.edu.au/~pbourke/projection/image2fish/index.html (Mapping images into fisheye space so they appear to be on an upright cylinder in a planetarium).

2.      http://wiki.panotools.org/Cylindrical_Projection (Cylindrical Projection).

3.      http://wiki.panotools.org/Fisheye_Projection (Fisheye projection).

4.      Нортроп Т., Уилдермьюс Ш., Райн Б. Основы разработки приложений на платформе Microsoft .NET Framework. Учебный курс Microsoft / Пер. с англ. – М.: «Русская Редакция», СПб.: «Питер», 2007.

 

  • Рендеринг трехмерных объектов (Серкин Д.М.)

Рендеринг трехмерных объектов

Д.М. Серкин

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

Введение

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

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

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

Постановка задачи

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

Необходимо решить две задачи:

·        чтение из 3ds файла информации, необходимой для отображения трехмерного объекта (вершины полигона, информация о материалах и т.п.) и загрузка ее в специально созданные структуры данных;

·        рендеринг трехмерного объекта средствами OpenGL.

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

Подход к решению

Задача чтения формата 3ds достаточно нетривиальна из-за отсутствия официальной спецификации формата, к тому же сам файл является бинарным. Нами было принято решение рассмотреть несколько существующих, свободно распространяемых решений: lib3ds и Celestia. Первое – это специальная библиотека для работы с 3ds форматом, а второе – это компьютерный планетарий, включающий в себя нужную нам функциональность.

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

Полученные результаты

В результате мы получили рабочую версию Stellarium с реализованной поддержкой произвольного числа 3d-объектов. Однако производительность рендеринга в настоящее время достаточно низка, позволяя рассматривать в реальном времени модели лишь с несколькими тысячами полигонов. Сильно детализированные объекты, с огромным количеством полигонов, невозможно вывести на экран.

Возможны две причины:

1.      Неэффективная реализация метода рендеринга и структур хранения в lib3ds.

2.      Затратные операции на преобразование проекции в Stellarium.

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

                     

Рис. 1. Модель спутника Magellan в                            Рис. 2. Модель космической станции
Stellarium.                                                                            Zond 2 в Stellarium.

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

  1. http://www.whisqu.se/per/docs/graphics56.htm (unnofficial 3ds format specification)
  2. http://www.opengl.org/documentation/red_book

 

 

«КОГРАФ-2008»

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

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

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

Введение

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

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

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

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

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

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

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

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

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

 

 

 

Полезные ссылки

Интересные ссылки

http://www.cccoe.net/stars/5mdome.html - инструкция по сбору купола в домашних условиях.

 

 

 

 

Новости

01.07.2014
10.04.2014
03.04.2014
07.03.2014
07.03.2014

© ITLab, Нижний Новгород,  2009