Russian Qt Forum
Ноябрь 23, 2024, 07:04 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [РЕШЕНО] OpenGl для космоса  (Прочитано 7689 раз)
deMax
Хакер
*****
Offline Offline

Сообщений: 600



Просмотр профиля
« : Январь 22, 2014, 15:49 »

Как нарисовать космос в OpenGl?

Размер объектов от наземной антенны или спутника связи до галактик отличается в огромное число раз, естественно напрямую космос не нарисовать.
Хотелось бы сделать через слои, в начале рисую звезды в масштабе 1.0f = 100...00км, потом солнечную систему в масштабе 1.0f=1000км, потом мелкие объекты в масштабе 1.0f=1 метр.

p.s. Где взять каталог звезд, например до 7ой величины и skybox для галактик?
p.s.s. Про программы celestia и stellarium с открытыми исходниками знаю. Есть еще space engine без исходников с фантастической графикой и вымышленными звездами в местах недоступных нашим телескопам.
« Последнее редактирование: Февраль 20, 2014, 10:10 от deMax » Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #1 : Январь 22, 2014, 17:03 »

Резвый старт, сразу каталог звезд Улыбающийся  А между тем отрисовать даже звезды в виде случайно разбросанных точек - не так уж просто. Что будет если наблюдатель/камера "вертит головой"? Т.е. откуда возьмутся случайные но воспроизводимые позиции точек?

Ну а там "стожары" всякие - нужно хорошо знать розовый шум.  
Записан
Serr500
Гость
« Ответ #2 : Январь 22, 2014, 17:13 »

http://www.usno.navy.mil/USNO/astrometry/optical-IR-prod/ucac
Записан
deMax
Хакер
*****
Offline Offline

Сообщений: 600



Просмотр профиля
« Ответ #3 : Январь 23, 2014, 08:32 »

Резвый старт, сразу каталог звезд Улыбающийся  А между тем отрисовать даже звезды в виде случайно разбросанных точек - не так уж просто. Что будет если наблюдатель/камера "вертит головой"? Т.е. откуда возьмутся случайные но воспроизводимые позиции точек?

Ну а там "стожары" всякие - нужно хорошо знать розовый шум.  
Мне нужны реальные данные, а не процедурная фантазия. Для стожаров нужен очень узкий угол обзора(или зум) у меня его не будет, галактику можно скайбоксом отрисовать.

Меня про возможность слоев больше вопрос интересует.
Записан
кып
Гость
« Ответ #4 : Январь 24, 2014, 13:57 »

, потом солнечную систему в масштабе 1.0f=1000км,
Какие масштабы???

Попробуйте принять размер Земли за 1 пиксел, нет даже за 1/100 пиксела, и посчитайте на каком расстоянии нужно будет нарисовать Солнце, ну и его размер.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #5 : Январь 24, 2014, 14:52 »

Мне нужны реальные данные, а не процедурная фантазия.
Конечно если это требование заказчика, то и обсуждать нечего. А иначе фантазия куда приятнее - творческая работа вместо долбления каталогов. Если говорить о реальных данных, то какие там "километры"? Звезды/планеты меряются в телесных углах.

Меня про возможность слоев больше вопрос интересует.
Ну и в чем проблема? Берете по QPixmap (или QImage) на каждый слой, спокойно рисуете (можно параллельно), на выходе комбинируете
Записан
Vamireh
Гость
« Ответ #6 : Январь 24, 2014, 22:57 »

http://habrahabr.ru/post/150541/

тут немножко написано о том, как "нарисовать космос"
Записан
deMax
Хакер
*****
Offline Offline

Сообщений: 600



Просмотр профиля
« Ответ #7 : Февраль 13, 2014, 11:16 »

Vamireh, спасибо. У меня установлен space engine - очень крутая программа, респект автору (жалко что не очень стабильна, но зато очень красивая). Может и в игру когда перерастет.
Цитировать
тут немножко написано о том, как "нарисовать космос"
Цитировать
Да и сам рендеринг происходит слоями, так как никакой точности z-буфера не хватит для учёта размеров вселенной.
Это все что там написанно(ну еще про координаты чуть). И как в OpenGL реализовать слои?
Может очищать zbuffer перед рисованием следующего слоя?

Попробуйте принять размер Земли за 1 пиксел, нет даже за 1/100 пиксела, и посчитайте на каком расстоянии нужно будет нарисовать Солнце, ну и его размер.
В OpenGL нет пикселей, есть условные единицы.

p.s. решение - нужно использовать слои.
« Последнее редактирование: Февраль 20, 2014, 10:09 от deMax » Записан
vulko
Гость
« Ответ #8 : Март 06, 2014, 16:06 »

Vamireh, спасибо. У меня установлен space engine - очень крутая программа, респект автору (жалко что не очень стабильна, но зато очень красивая). Может и в игру когда перерастет.
Цитировать
тут немножко написано о том, как "нарисовать космос"
Цитировать
Да и сам рендеринг происходит слоями, так как никакой точности z-буфера не хватит для учёта размеров вселенной.
Это все что там написанно(ну еще про координаты чуть). И как в OpenGL реализовать слои?
Может очищать zbuffer перед рисованием следующего слоя?

Попробуйте принять размер Земли за 1 пиксел, нет даже за 1/100 пиксела, и посчитайте на каком расстоянии нужно будет нарисовать Солнце, ну и его размер.
В OpenGL нет пикселей, есть условные единицы.

p.s. решение - нужно использовать слои.

нахрена слои в opengl'е? он вам и звезды и не только нарисует сам, главное создать сцену.
Записан
deMax
Хакер
*****
Offline Offline

Сообщений: 600



Просмотр профиля
« Ответ #9 : Апрель 21, 2014, 09:56 »

нахрена слои в opengl'е? он вам и звезды и не только нарисует сам, главное создать сцену.
Это не я про слои придумал - так сделанно в space engine. Вы себе представляете масштабы космоса? opengl его не способен напрямую отобразить.
Записан
vulko
Гость
« Ответ #10 : Апрель 21, 2014, 12:44 »

нахрена слои в opengl'е? он вам и звезды и не только нарисует сам, главное создать сцену.
Это не я про слои придумал - так сделанно в space engine. Вы себе представляете масштабы космоса? opengl его не способен напрямую отобразить.

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


Страница сгенерирована за 0.053 секунд. Запросов: 23.