OpenGL屏幕裁剪
裁剪测试
为了提高图形渲染的效率,openGL可以指定只刷新屏幕中发生变化的区域。
裁剪测试就是用于渲染时限制绘制区域的技术,通过此技术可以在屏幕(帧缓冲)指定一个矩形区域,来启⽤剪裁测试,不在这个矩形区域内的片元被丢弃,不进行绘制,只有在这个矩形区域内的片元才有可能进⼊入帧缓冲。因此实际达到的效果就是在屏幕上开辟了了一个小窗口,可以再其中进行指定内容的绘制。
开启裁剪测试
glEnable(GL_SCISSOR_TEST);
关闭裁剪测试
glDisable(GL_SCISSOR_TEST);
指定裁剪窗口
void glScissor(Glint x,Glint y,GLSize width,GLSize height);
- x,y:指定裁剪框左下⻆位置;
- width,height:指定裁剪尺⼨;
窗⼝、视⼝、裁剪区域
- 窗⼝: 就是程序的界面。
- 视⼝: 窗⼝上用来显示图形的一块矩形区域,它可以和窗口等大,也可以比窗⼝⼤或者⼩小。只有绘制在视口区域中的图形才能被显示,如果图形部分超出了视⼝区域,那么那部分是看不到的。
可以通过glViewport()设置视口的大小和位置。 - 裁剪区域 (平⾏投影):就是视⼝矩形区域的最⼩和最⼤x坐标(left,right),最⼩和最大y坐标 (bottom,top),⽽不是窗口的最⼩和最大x坐标和y坐标。
通过glOrtho()函数设置,这个函数还需指定最近和最远z坐标,形成一个⽴体的裁剪区域。
版权申明
本文系作者 @何健源 原创发布在思维代码站点。未经许可,禁止转载。
暂无评论数据