如何启用多重采样

orangehahaha 2014-08-19 11:41:44
当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;
}
...全文
360 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
广陵雪 2015-09-02
  • 打赏
  • 举报
回复
求问win7系统AMD显卡在哪里设置多重采样这个东西,我找了好久都没找到
dchneric 2014-08-20
  • 打赏
  • 举报
回复
我之前opengl程序fps老是在60-61徘徊,搞了半天也是设置问题
orangehahaha 2014-08-19
  • 打赏
  • 举报
回复
好吧,我自己解决了,就是显卡的设置问题,按照图中这样设置就好了,8X代表了像素样本的数量。
供大家参考。
orangehahaha 2014-08-19
  • 打赏
  • 举报
回复
自己顶一下,有谁有好的解决办法的吗?

4,445

社区成员

发帖
与我相关
我的任务
社区描述
图形图像/机器视觉
社区管理员
  • 机器视觉
  • 迪菲赫尔曼
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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