Войти
OpenGL communityФорумВопросы по программированию

Подсветить gl_list

#0
12:21, 12 окт. 2014

Всем привет!

подскажите плз как можно сделать следующее:

у меня есть список сгенерированных glList (2d)
все отрисовывается - проблем нет:

.........
            GLuint tmpl_list_id = _list_templates[tmpl_id];
            glCallList(tmpl_list_id);


            if (isSelected(tmpl_id))
          {
              ????????????
          }
..........


Вопрос:

как правильно сделать подсветку если объект выделен ?
т/е можно как-то по простому, шейдером подсветить tmpl_list_id ?

Пример:

Без подсветки
Без подсветки | Подсветить gl_list

С подсветкой
С подсветкой | Подсветить gl_list


Спасибо


#1
17:05, 12 окт. 2014

if (line.is_selected)
{
  drawLineScale(1.1f)
  drawLineWithWhiteColor()
  drawLineScale(1.0)
  drawLineWithBlackColor()
}
else
{
  drawLineScale(1.0f)
  drawLineWithBlackColor()
}

#2
22:15, 12 окт. 2014
if (line.is_selected)
{
  drawLineScale(1.1f)
  drawLineWithWhiteColor()
  ......./

Нет, так не пойдет.. 

Есть уже сгенерированный лист
        glCallList(tmpl_list_id);

нужен метод обработать именно этот лист шейдером - например влепить синие пиксели по границе черного-белого  (если такое вообще возможно).

#3
0:07, 13 окт. 2014

Лучше займись выведением гллистов из своего кода. После этого проблема исчезнет сама собой.

#4
0:38, 13 окт. 2014

>> Лучше займись выведением гллистов из своего кода. После этого проблема исчезнет сама собой.
какой смысл избавляться от гллистов ?
есть более продвинутый способ буферизации ?

#5
14:53, 13 окт. 2014

Если по старинке все делается (судя по листам) - то по умолчанию выключить эмиссионный цвет в источниках, в листах задавать материал с ненулевым эмиссионным цветом, на момент рисования нужного листа включать источник с эмиссионным цветом.

#6
15:17, 13 окт. 2014

ltise
> есть более продвинутый способ буферизации ?
VBO же. И быстрее, и компактнее, чем глисты.

OpenGL communityФорумВопросы по программированию

Тема в архиве.