Форум программистов, компьютерный форум, киберфорум
Наши страницы
OpenGL
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/14: Рейтинг темы: голосов - 14, средняя оценка - 4.57
dsoft
12 / 12 / 0
Регистрация: 21.08.2009
Сообщений: 87
#1

2 вопроса по OpenGl (планеты)

30.09.2009, 23:26. Просмотров 2539. Ответов 12
Метки нет (Все метки)

1. Как нарисовать орбиту планеты? Хотелось бы в виде слегка туманного кольца.
2. Как создать атмосферу у планеты.

Или я плохо ищу на просторох паутины или..., но ничего путнего найти не удалось.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.09.2009, 23:26
Ответы с готовыми решениями:

Создаю игру с научным уколоном на C++/opengl. Как подключить openGL и добиться кроссплатформенности
Я читал про opengl - для его инициализации нужно создавать windows - окно. Для linux видимо...

(2 главы перевода книги доступно) OpenGL Programming Guide, Version 4.3, 8th Edition - OpenGL
Продолжая тему с переводом книги http://www.cyberforum.ru/opengl/thread1551398.html Выкладываю для...

Ошибки при подключение opengl, немного не связанные с opengl
#include <windows.h> #include "stdafx.h" #include <gl/gl.h> #include <gl/glu.h> #include...

Модель солнечной системы - планеты на время пропадают
Всем привет, строю модель солнечной системы...возникла такая проблема- при вращении камеры...

OpenGL.Урок 1. простой OpenGL-проект
Не компилируется кодю #include <GL\glut.h> void DrawLine() { ...

12
Turbosega
40 / 40 / 10
Регистрация: 27.06.2008
Сообщений: 118
01.10.2009, 17:25 #2
Сначала прочти хорошую книжку по OpenGL! А там уж сам допрёш как все это делать.
0
dsoft
12 / 12 / 0
Регистрация: 21.08.2009
Сообщений: 87
01.10.2009, 23:11  [ТС] #3
Ну, во-первых, книжек я закачал предостаточно, и в них даже намёка нет на подобные темы, иначе бы и вопросы не возникли. Во-вторых, когда у меня будет направление в какую сторону "копать", тогда я и "допрёш", как вы соизволили выразиться.
А пока за такой ответ можно поставить жирный минус.
0
Turbosega
40 / 40 / 10
Регистрация: 27.06.2008
Сообщений: 118
02.10.2009, 09:42 #4
А пока за такой ответ можно поставить жирный минус.
Ну и на этом спасибо!

А в чём собственно у вас проблемы возникли - с рисованием сферы или кола (елипса)?
Это не так уж сложно, а вот поигратся с освещением вам придется хорошо!
0
dsoft
12 / 12 / 0
Регистрация: 21.08.2009
Сообщений: 87
02.10.2009, 23:21  [ТС] #5
Пока мне удалось "накопать" на других форумах, что атмосферу можно отобразить используя мультитекстурирование. Изобразить орбиту в виде тора, эллипса тоже не проблема, но даже наложение текстуры не позволит мне её сделать туманной. Нужен другой подход. Пока ищу.
0
snake32
1649 / 1102 / 193
Регистрация: 26.02.2009
Сообщений: 4,088
Записей в блоге: 5
05.10.2009, 12:32 #6
dsoft, не понятно что Вы имеете под словом тумманность если даже любая текстура не подходит. А может хватит одной линии (эллипс или окружность) полу-прозрачной?
0
dsoft
12 / 12 / 0
Регистрация: 21.08.2009
Сообщений: 87
06.10.2009, 00:19  [ТС] #7
Просто я такое увидел в одной программе, а так как OpenGL и я малознакомые субъекты и нам только предстоит подружиться, я не всегда знаю в какую сторону грести для решения того или иного вопроса. Полупрозрачный эллипс это интересно, а как реализовать?
0
snake32
1649 / 1102 / 193
Регистрация: 26.02.2009
Сообщений: 4,088
Записей в блоге: 5
06.10.2009, 15:06 #8
Цитата Сообщение от dsoft Посмотреть сообщение
Полупрозрачный эллипс это интересно, а как реализовать?
Греби в сторону GL_BLEND и альфа канала.
0
dsoft
12 / 12 / 0
Регистрация: 21.08.2009
Сообщений: 87
06.10.2009, 23:41  [ТС] #9
В MSDN-е я встретил такой код:
Delphi
1
2
3
4
5
6
7
8
9
    glPolygonMode(GL_BOTH, GL_LINE);  // Unfilled mode 
    glBegin(GL_POLYGON);              // Use polygon to approximate a circle 
      for(I := 0 to 99 do
      begin
        cosine := 25 * cos(I * 2 * PI / 100.0); 
        sine   := 25 * sin(I * 2 * PI / 100.0); 
        glVertex2f(cosine, sine); 
      end;
    glEnd;
таким образом Гейтц предлагает заменить код от IRIS рисующей эллипс. Но это же "тормоза".
0
snake32
1649 / 1102 / 193
Регистрация: 26.02.2009
Сообщений: 4,088
Записей в блоге: 5
12.10.2009, 01:03 #10
Цитата Сообщение от dsoft Посмотреть сообщение
В MSDN-е я встретил такой код:
Судя по коду это - окружность. Насколько знаю все непрямые участки разбивают n простых треугольников (отрезков). Чем больше n, тем более гладкой кажется поверхность (кривая), но тем больше нагрузка на систему(меньше FPS). Своего рода n - уровень детализации. В коде n=100.
Цитата Сообщение от dsoft Посмотреть сообщение
Но это же "тормоза"
Если в процессе визуализации "орбита" не меняется, то можно за ранее всё расчитать и сохранить в дисплейный список(display list). А потом просто вызывать его.
Если меняется, то юзать массив вершин, или наверно можно ещё лучше использовать вместе с вершинным шейдером(я пока только изучаю), тем самым переложить расчёты на видеокарту.
0
dsoft
12 / 12 / 0
Регистрация: 21.08.2009
Сообщений: 87
12.10.2009, 23:17  [ТС] #11
С орбитой всё получилось нормально, только полупрозрачной сделать её так и не удалось. Шейдеры для меня вообще тёмный лес.
0
snake32
1649 / 1102 / 193
Регистрация: 26.02.2009
Сообщений: 4,088
Записей в блоге: 5
13.10.2009, 04:03 #12
Цитата Сообщение от dsoft Посмотреть сообщение
Шейдеры для меня вообще тёмный лес.
Для меня тоже "дело ясное, что дело - тёмное".
Цитата Сообщение от dsoft Посмотреть сообщение
только полупрозрачной сделать её так и не удалось.
А Вы после инициализации ГЛя смешивание включали?
C++
1
2
3
4
5
6
7
  glEnable( GL_BLEND );
  glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA );
  ...
  //Задаём цвет перед рисованием орбиты
  glColor4f( red, green, blue, 0.5f ); //- полупрозрачный цвет(alpha = 0.5)
  //здесь рисуем орбиту
  ...
1
dsoft
12 / 12 / 0
Регистрация: 21.08.2009
Сообщений: 87
13.10.2009, 23:27  [ТС] #13
"...Так вот где таилась погибель моя,"
"мне смертию кость угрожала..."

А я по наивности использовал функцию glColor3f. Правда, чтобы увидеть, что орбита стала полупрозрачной, пришлось для пробы увеличить её толщину. Значит, то что я видел в другой программе, сделано не так. Там линия орбиты от центра к краям истаивает.
0
13.10.2009, 23:27
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.10.2009, 23:27

Сильно отличаются OpenGL ES и OpenGL и как?
Сильно отличаются OpenGL ES и OpenGL и как?

Не загружается текстура в OpenGL (OpenGL + Классы)
Здравствуйте! Пишу движок для игры. Первый прототип я сделал процедурно. Все работает как надо. ...

OpenGL + GlTools по книге OpenGL Суперкнига
В главе 4 есть пример с отрисовкой 3хмерного вращающегося тора. Вот код: void RenderScene(void) {...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru