OpenGL 反走样有关问题
OpenGL 反走样问题
自己写的程序
演示三个不同材质的茶壶(由函数"glutSolidTeapot()"画出)在灯光下的效果
启用反走样之前的效果:
可以看到灯光的边缘有非常明显的锯齿
希望消除其锯齿
反走样启用源代码:
启用反走样之后的效果:
可见灯光边缘锯齿不仅没有消除
还多了物体的轮廓线
请问消除灯光边缘锯齿的方法正确吗?
反走样后为什么会出现轮廓线?
------解决方案--------------------
可能你渲染了两次,一次是GL_FILL模式,一次是GL_LINE模式。
要想是灯光效果好,你就在创建teapot时,指定更多的切分面,以产生更多的顶点。
自己写的程序
演示三个不同材质的茶壶(由函数"glutSolidTeapot()"画出)在灯光下的效果
启用反走样之前的效果:
可以看到灯光的边缘有非常明显的锯齿
希望消除其锯齿
反走样启用源代码:
- C/C++ code
//Enable antialiasing: glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glEnable(GL_BLEND); glHint(GL_POLYGON_SMOOTH_HINT, GL_NICEST); glEnable(GL_POLYGON_SMOOTH); glDisable(GL_LINE_SMOOTH);
启用反走样之后的效果:
可见灯光边缘锯齿不仅没有消除
还多了物体的轮廓线
请问消除灯光边缘锯齿的方法正确吗?
反走样后为什么会出现轮廓线?
------解决方案--------------------
可能你渲染了两次,一次是GL_FILL模式,一次是GL_LINE模式。
要想是灯光效果好,你就在创建teapot时,指定更多的切分面,以产生更多的顶点。