playboyplay
小猴偷米
采纳率0%
2014-03-01 12:34 阅读 4.5k

opengl抗锯齿没有效果怎么回事?

我测试了一下opengl的抗锯齿功能, 但是发现开启抗锯齿功能前后锯齿还是很重,没有变化,请高手指点. (开发平台win8 64bit, 开发工具vs2012)

下面是代码, 只是画了一条线.

#include "stdafx.h"
#include <GL/glut.h>

void myDisplay(void)
{
    glEnable(GL_DEPTH_TEST);
    glEnable(GL_LINE_SMOOTH);
    glHint(GL_LINE_SMOOTH_HINT,GL_NICEST);
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    glLineWidth(2);
    glColor3d(0,1,0);
    glBegin(GL_LINES);
    glVertex2d(0.0,0.0);
    glVertex2d(0.4,0.05);
    glEnd();

    glFlush();
    glutSwapBuffers();
}


void myReshape(int w, int h){
    glViewport(0, 0, w, h);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    if (w>h)
        glOrtho(-0.5*(float)w/h,0.5*(float)w/h,-0.5,0.5,100,-100);
    else
        glOrtho(-0.5,0.5,-0.5*(float)h/w,0.5*(float)h/w,100,-100);
    glMatrixMode(GL_MODELVIEW);
}


int main(int argc, char *argv[])
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);
    glutInitWindowPosition(100, 100);
    glutInitWindowSize(500, 500);
    glutCreateWindow("锯齿测试");
    glutDisplayFunc(&myDisplay);
    glutReshapeFunc(&myReshape);
    glutMainLoop();

    return 0;
} 
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

2条回答 默认 最新

  • cxd3341 WALL-EC 2015-06-13 14:26

    你没有开启颜色混合功能啊,当然没有效果了
    glEnable(GL_BLEND);
    glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
    加上这两句代码再试一下

    点赞 1 评论 复制链接分享
  • playboyplay 小猴偷米 2014-03-01 12:37

    求大神帮忙解答啊, 我网上搜了很久都没找到答案, 网上的抗锯齿的实现确实是这样的.

    点赞 评论 复制链接分享

相关推荐