使用opengl突出显示不同颜色的点

时间:2012-04-03 16:28:08

标签: opengl

我使用某种颜色的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 个答案:

答案 0 :(得分:1)

如果您启用了深度测试,如果突出显示的绘图不是第一个,则可能会被拒绝,因为它将无法针对z缓冲区进行深度测试。也可能是你没有清除深度缓冲区?如果您不想关闭深度测试(例如避免状态切换),那么您可以将突出显示点的z移近,以便通过深度测试。

另外,你确定if条件完全通过吗?如果是这样,作为一个完整性检查,你可以在一些空的空间中绘制到略微偏移/偏移(x,y),以确保它实际上进入该块。

可能只是另一个蓝点可以在它上面绘制。您必须发布更多代码才能显示您正在做的事情。