我使用某种颜色的glVertex3f()绘制了一系列点。现在,当用户点击一个点时,我需要以不同的颜色显示相关的点,而其他点保持旧颜色。尝试使用下面提到的条件但颜色保持不变,这是先设定的。有没有办法用不同的颜色绘制点?
if((highlightColor)&&(i==0)){
glColor3f(0,1,0);
glVertex3f(tempx,calcy,0);
} else{
glColor3f(0,0,1);
glVertex3f(tempx,calcy,0);
}
最初,所有积分都是蓝色的。然后我将变量highlightColor设置为true,如果我想突出显示不同颜色的某些点并再次调用此方法。颜色不会变为绿色。有人可以告诉我哪里出错了吗?
答案 0 :(得分:1)
如果您启用了深度测试,如果突出显示的绘图不是第一个,则可能会被拒绝,因为它将无法针对z缓冲区进行深度测试。也可能是你没有清除深度缓冲区?如果您不想关闭深度测试(例如避免状态切换),那么您可以将突出显示点的z移近,以便通过深度测试。
另外,你确定if
条件完全通过吗?如果是这样,作为一个完整性检查,你可以在一些空的空间中绘制到略微偏移/偏移(x,y),以确保它实际上进入该块。
可能只是另一个蓝点可以在它上面绘制。您必须发布更多代码才能显示您正在做的事情。