OpenGL 直线抗锯齿后呈虚线状

zsdt345a780rfajwet 2013-01-18 01:10:52
如题!怎么才能正常的抗锯齿呢?求助各位大神啊!!

相关代码部分


int CSubject::glDraw3D()
{
glColor3d(1.0f,1.0f,1.0f);
if(m_pDev)//画直线,使平滑,加入了混合
{
glEnable(GL_LINE_SMOOTH);//只有这两句的时候,感觉锯齿还是很明显
glHint(GL_LINE_SMOOTH_HINT,GL_NICEST);
glLineWidth(3.0f);
glEnable(GL_BLEND);//加了这两句后,变成了虚线
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glBegin(GL_LINE_STRIP);
for(int i=0;i<m_pDev->GetCount();i++)
{
Vertex3d(m_pDev->GetX(i),m_pDev->GetY(i),m_pDev->GetZ(i));
}
glEnd();
DrawText(m_pDev->GetX(0),m_pDev->GetY(0),m_pDev->GetZ(0));
}
else//画点,只是平滑
{

glPointSize(3.0f);
glHint(GL_POINT_SMOOTH_HINT,GL_NICEST);
glEnable(GL_POINT_SMOOTH);
glBegin(GL_POINTS);//
Vertex3d(m_headX,m_headY,-2000.0f);
glEnd();
DrawText(m_headX,m_headY,-2000.0f);
}
//画一个矩形
glColor3d(1.0f,0.0f,0.0f);
glBegin(GL_LINE_LOOP);
Vertex3d(m_LogicWinShare3D.stPt.x,m_LogicWinShare3D.stPt.y,m_LogicWinShare3D.stPt.z);
Vertex3d(m_LogicWinShare3D.stPt.x + m_LogicWinShare3D.xSpan,m_LogicWinShare3D.stPt.y,m_LogicWinShare3D.stPt.z);
Vertex3d(m_LogicWinShare3D.stPt.x + m_LogicWinShare3D.xSpan,m_LogicWinShare3D.stPt.y +m_LogicWinShare3D.ySpan,m_LogicWinShare3D.stPt.z);
Vertex3d(m_LogicWinShare3D.stPt.x,m_LogicWinShare3D.stPt.y +m_LogicWinShare3D.ySpan,m_LogicWinShare3D.stPt.z);
glEnd();
glFlush();

return 0;
}


无混合效果:

有混合效果:
...全文
181 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
jimette 2013-01-18
  • 打赏
  • 举报
回复
gdip下面有抗锯齿选项 opengl 不知道!

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧