Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Выдиление обектов в OpenGL


Автор: Elfet 24.2.2004, 22:02
Подскажите, плиз, как в OpenGL сделать так чтобы можно было выделять(наводишь на него а он цвет
меняет) обекты с помущью курсора, причём чтобы выделялся ближайший обект к камере.

Буду очень благодарен! baaa.gif

Автор: Elfet 25.2.2004, 16:04
Ни кто что ли не делал этого? confused.gif


Я вот тут нашёл статью одну, но только у меня с ней ни чего не получилось, может я что-то не проавильно делаю, незнаю, не получилось. sad.gif
http://opengl.gamedev.ru/articles/?id=101
Не моглибы вы помочь мне разобратся с ней?

Автор: Elfet 25.2.2004, 16:27
confused.gif

Автор: Elfet 25.2.2004, 20:01
i ПЛИЗ !












confused.gif

Автор: Elfet 26.2.2004, 00:00
ТОЛИЕЩЁБУДЕТ
АНАМВСЁРАВНО
НЕСЧАСНЫЕЛЮДИДИКАРИ

Автор: Elfet 26.2.2004, 17:07
Неужели никто с OpenGL не занимаемся?
Неужели никто не сталкивался в проблемой выделения обектов?
Неужель никто мне не поможет? confused.gif

Автор: Elfet 28.2.2004, 14:20
confused.gif

Автор: maths_fan 28.2.2004, 15:33
Я занимаюсь OpenGL, но пока с таким не сталкивалась. Попытаюсь выяснить, если что-то получится, напишу. (Не нервничайте, OpenGL - это же здорово!)

Автор: Elfet 29.2.2004, 16:05
А у меня вот возникла такая проблема. smile.gif

Автор: gepard 29.2.2004, 16:56
http://www.gamedev.ru/articles/read.shtml?id=20118&page=2
Тут вроде всё по русски.

Автор: Elfet 29.2.2004, 21:19
Ух!
Для того кто только 9 дней знаком с OpenGL, это сложновато!
Но ничего, разберусь! smile.gif

Автор: Elfet 29.2.2004, 21:22
smile.gif ........................................... confused.gif ........................................... sad.gif

Автор: Elfet 1.3.2004, 20:08
А ещё чего-нибудь полезного не подакжите?
Или пример?

Автор: mr.DUDA 1.3.2004, 21:26
Elfet, хороший способ держать тему наверху форума... wink.gif

Автор: gepard 2.3.2004, 05:23
Цитата
Elfet, хороший способ держать тему наверху форума...

Во-во, я тоже хотел сказать. smile.gif
А примера я тебе, Elfet, не подскажу. Сам разгебайся с теорией.

Автор: Elfet 2.3.2004, 15:18
smile.gif Ok smile.gif

Автор: Elfet 2.3.2004, 17:49
//

Автор: MaxB 4.3.2004, 15:33
Не ратраивайся, я год назат тоже сталкивался с этой проблемой. Но такой статьи как ты нашел, мне не приходилось встречать. И пришлось решать задучу геометрией. Решил, но код получился большой и некрасивый. Я с этой статейкой прикину что к чему. и напишу пример.

Автор: Elfet 4.3.2004, 18:03
MaxB, очень жду, а то у самого не получилось sad.gif

Автор: Elfet 4.3.2004, 18:11
Рисую:
Код

  for(int x=0;x<3;x++)
  for(int y=0;y<3;y++)
  for(int z=0;z<3;z++){

  glTranslated(x, y, z);

  GLUquadricObj *d;
  d = gluNewQuadric();
  gluQuadricDrawStyle(d, GLU_LINE);

  glColor3f (0.5, 0.7, 0.5);

  gluDisk(d, 0.09, 0.1, 10, 10);
  glRotatef (90, 1, 0, 0);
  gluDisk(d, 0.09, 0.1, 10, 10);
  glRotatef (-90, 1, 0, 0);

  glTranslated(-x, -y, -z);


  };

И узнать какая из фигурок под курсором. Потом цвет поменять и ещё чего сделать.

confused.gif

У меня не получаётся. sad.gif


confused.gif

Очень прошу, помогите!!!

Автор: Elfet 8.3.2004, 14:05
А может ещё есть какой способ?

Автор: Elfet 15.3.2004, 20:35
Блин!!! У меня ничего не выходит!!! mad.gif

Может не через OpenGL это делать надо?

Автор: gepard 16.3.2004, 10:51
Да не парься. Ты что Commnd&Conquer 4 делаешь?

Автор: MaxB 17.3.2004, 17:01
Отослал тебе на мыло пример!!!
Жду вопросы!!!

Автор: slkom 18.3.2004, 15:50
tounge.gif
можно 2 способами
вот нашел толковые доки:
Выбор объектов средствами OpenGL. Буфер выбора Буфер цвета

http://www.gamedev.ru/articles/read.shtml?id=20118
http://www.gamedev.ru/articles/read.shtml?id=20118&page=2
http://www.gamedev.ru/articles/read.shtml?id=20118&page=3

Исходный код примера к статье: http://www.gamedev.ru/articles/opengl/20030824.zip


все очень даже работает
посмотри у меня, например
http://fviz.narod.ru/fviz/fviz.html
gui проги целиком на opengl... :-)

Автор: Elfet 3.4.2004, 10:48
MaxB , пример не понял, чегота, я ведь ВСЕ 6 знаю ,а твоего не знаю smile.gif




baaa.gif




хелп ми! smile.gif

Автор: gepard 4.4.2004, 12:37
http://www.gametutorials.com/Tutorials/opengl/OpenGL_Pg1.htm
Вот, полистай. Я сам, когда нашёл - офигел!
Там столько всяких классных примеров. В частности там есть и пример по выборке. Все строки и алгоритмы расписаны, но только на англ. языке.
Это крутой сайтик!

Автор: chipset 4.4.2004, 13:11
я думаю надо создать класс обьекта и каждому новому обьекту создавать новый instance а в классе будет описан x,y ширина и высота также заключить все обьекты в array
ну вот по координатам мыши и по этому можно узнать...
что то типа:
Код

int check_active_object() {//Расчитывает на то что x,y это середина
//mx,my это mousex,mousey
for(int i=0;i<amount_of_object;i++) {
if((mx>(Collection[i].x-Collection[i].Width)//Смотрит больше ли значение мыши чем левая сторона обьекта
&& mx<(Collection[i].y+Collection[i].Width))//
&& //то же самое но только с y везде...

естессно тут куча багов так как все писал на коленке, прямо в браузере, но я надеюсь сам алгоритм понятенsmile.gif
если обьект сложным, то смотреть на все x и все y...
потом просто если условие сходится возвращаешь индекс обьекта в коллекции...
ЗЫ сорри если не так понял rolleyes.gif

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)