Выделите точки разными цветами, используя opengl - PullRequest
0 голосов
/ 03 апреля 2012

Я построил ряд точек, используя glVertex3f () определенного цвета. Теперь, когда пользователь нажимает на точку, мне нужно отобразить связанные точки другим цветом, в то время как другие остаются в старом цвете. Пробовал с использованием условия, указанного ниже, но цвет остается тем же, который был установлен первым. Есть ли способ нанести точки на разные цвета?

   if((highlightColor)&&(i==0)){                      
         glColor3f(0,1,0);                    
         glVertex3f(tempx,calcy,0);
   } else{
         glColor3f(0,0,1);       
         glVertex3f(tempx,calcy,0);
   }   

Изначально все точки синего цвета. Затем я устанавливаю для переменной highlightColor значение true, если я хочу выделить некоторые точки другим цветом, и снова вызываю этот метод. Цвет не меняется на зеленый. Может кто-нибудь сказать мне, где я ошибся?

1 Ответ

1 голос
/ 03 апреля 2012

Если у вас включено тестирование глубины, и если выделенное рисование не первое, оно может быть отклонено, потому что не пройдёт тест глубины по z-буферу.Также может быть, что вы не очищаете буфер глубины?Если вы не хотите выключать проверку глубины (например, чтобы избежать переключения состояния), то вы можете сместить z выделенной точки ближе, чтобы она прошла проверку глубины.

Кроме того, вы уверены, что if состояние проходит вообще?если это так, то в качестве проверки работоспособности вы можете нарисовать немного смещенное / смещенное (x, y) в каком-то пустом месте, просто чтобы убедиться, что оно действительно входит в этот блок.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...