OpenGl glScissor
OpenGl glScissor
glScissor
- 剪裁测试用于限制绘制区域。区域内的像素,将被绘制修改。区域外的像素,将不会被修改。
// 开启剪裁测试
glEnable(GL_SCISSOR_TEST);
// 关闭剪裁测试
glDisable(GL_SCISSOR_TEST);
- 剪裁测试的区域,用(scissorX, scissorY, scissorW, scissorH)来表示
glScissor(scissorX, scissorY, scissorW, scissorH);
- 需要注意的是,glScissor以左下角为坐标原点(0,0),而通常情况下,坐标系以屏幕左上角为坐标原点(0,0)。因此,需要转换一下。
- 例子:坐标转换:
// 坐标点(x, y ,w, h)为以左上角为原点的原始坐标。
// w、h,即为显示区域(view)的宽和高。
// windowW, windowH,表示屏幕的宽和高。
int scissorX = x;
int scissorY = windowH - ( y + h);
int scissorW = w;
int scissorH = h;
- 例子:清空指定区域颜色及深度
void clearBuffer(int x, int y, int w, int h)
{glEnable(GL_SCISSOR_TEST);glScissor(x, y, w, h);glClearColor(0.0, 0.0, 0.0. 1.0);glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);glDisable(GL_SCISSOR_TEST);
}
OpenGl glScissor相关推荐
- VS2012下基于Glut OpenGL glScissor示例程序:
剪裁测试用于限制绘制区域.我们可以指定一个矩形的剪裁窗口,当启用剪裁测试后,只有在这个窗口之内的像素才能被绘制,其它像素则会被丢弃.换句话说,无论怎么绘制,剪裁窗口以外的像素将不会被修改.有的朋友可能 ...
- OpenGL的glScissor示例程序
剪裁测试用于限制绘制区域.我们可以指定一个矩形的剪裁窗口,当启用剪裁测试后,只有在这个窗口之内的像素才能被绘制,其它像素则会被丢弃.换句话说,无论怎么绘制,剪裁窗口以外的像素将不会被修改.有的朋友可能 ...
- OpenGL | 设置视口glViewport 裁剪glScissor 屏幕截图 glReadPixel
一.设置视口 1.视口 视口(Viewport):指的是OpenGL用于渲染的输出区域,它是窗口中的一个矩形区域.在渲染过程中,OpenGL会将图形投影到视口中,以生成最终的图像.视口通常可以通过gl ...
- OpenGL入门学习(十二) 【转】
片断测试其实就是测试每一个像素,只有通过测试的像素才会被绘制,没有通过测试的像素则不进行绘制.OpenGL提供了多种测试操作,利用这些操作可以实现一些特殊的效果. 我们在前面的课程中,曾经提到了&qu ...
- All about OpenGL ES 2.x – (part 2/3)(转载)
来源: http://db-in.com/blog/2011/02/all-about-opengl-es-2-x-part-23/ Very welcome back, my friends! No ...
- NeHe OpenGL第二十四课:扩展
NeHe OpenGL第二十四课:扩展 扩展,剪裁和TGA图像文件的加载: 在这一课里,你将学会如何读取你显卡支持的OpenGL的扩展,并在你指定的剪裁区域把它显示出来. 这个教程有一些难度,但它 ...
- OpenGL ES 2兼容函数列表
关于OpenGL(含ES)的资料汗牛充栋,但是普遍存在的问题是,OES的资料不够系统,OGL的资料过于庞大 此列表详细记录了GLES2兼容函数的情况,使大家在学习时,对于算法和资料可以有针对性的选择 ...
- OpenGL 期末考试作业
1.OpenGL中能渲染的基本元素是什么?(曲面) 答:OPENGL基本元素: GL_POINTS GL_LINES GL_POLYGON GL_LINE_STRIP GL_LINE_LOOP GL ...
- OpenGL ES渲染管线与着色器
转自:http://blog.csdn.net/kesalin/article/details/8223649 [OpenGL ES 02]OpenGL ES渲染管线与着色器 罗朝辉 (http:// ...
最新文章
- struts 普通的action
- 安装图形界面、VNCserver
- 浦发银行招聘计算机类笔试题,2019浦发银行招聘计算机模拟试题及答案
- DataGridView动态添加新行的两种方法
- JDBC-01-快速入门
- python任务调度平台 界面_分布式任务调度平台XXL-JOB搭建教程
- 对于初学者,如何轻松学习JavaScript?
- 洛谷P1461 海明码 Hamming Codes
- 赫伯特·西蒙前半生泡妞打架,后半生拿图灵奖、诺贝尔奖,成人工智能大神
- 利用java完成图像文字识别和翻译,实现拍照翻译的功能
- H2O自动化机器学习框架介绍与搭建笔记
- rust自动售卖机英文_中英文设备销售合同.doc
- 赶集网否认倒闭:是不是好公司,两三年后见分晓
- 首届金融行业SD-WAN的应用与实践研讨会上海站
- 浏览器广告屏蔽插件推荐(Chrome与Firefox)
- AJAX()请求参数
- 全国计算机竞赛保送清华,保送清华北大,带你看看信息学奥林匹克竞赛的魅力...
- vulnstack(一) 红日靶场复现
- C++ 凯撒密码具体代码实现
- 炼数成金邀请码:YY96