当glGetIntegerv(GL_SAMPLE_BUFFERS,&buffers)和glGetIntegerv(GL_SAMPLES,&samples)的返回值都大于零的时候说明多重采样可以使用,可是我的程序输出的这两个值都是零,程序没有问题,我在网上看到人说是显卡设置的问题,请问我的显卡应该怎么设置呀?[yabao=][/yabao]
例子如下:
#include <gl/glew.h>
#include <gl/glut.h>
#include <stdio.h>
void init(void) {
GLint buffers,samples;
glClearColor(1.0,0.0,0.0,1.0);
glShadeModel(GL_FLAT);
glGetIntegerv(GL_SAMPLE_BUFFERS,&buffers);
glGetIntegerv(GL_SAMPLES,&samples);
printf("buffers = %d\nsamples = %d\n",buffers,samples);
}
void reshape(int w,int h) {
glViewport(0,0,(GLsizei)w,(GLsizei)h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(-5,5,-5,5);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
void display(void) {
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0,1.0,0.0);
glEnable(GL_MULTISAMPLE);//启用多重采样
glBegin(GL_TRIANGLES);
glVertex2f(-2,3);
glVertex2f(-3,-1);
glVertex2f(2,-4);
glEnd();
glDisable(GL_MULTISAMPLE);//关闭多重采样
glFlush();
}
int main(int argc,char** argv) {
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB|GLUT_MULTISAMPLE);
glutInitWindowPosition(100,100);
glutInitWindowSize(500,500);
glutCreateWindow(argv[0]);
init();
glutDisplayFunc(display);
glutReshapeFunc(reshape);
glutMainLoop();
return 0;
}