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相关推荐

  1. VS2012下基于Glut OpenGL glScissor示例程序:

    剪裁测试用于限制绘制区域.我们可以指定一个矩形的剪裁窗口,当启用剪裁测试后,只有在这个窗口之内的像素才能被绘制,其它像素则会被丢弃.换句话说,无论怎么绘制,剪裁窗口以外的像素将不会被修改.有的朋友可能 ...

  2. OpenGL的glScissor示例程序

    剪裁测试用于限制绘制区域.我们可以指定一个矩形的剪裁窗口,当启用剪裁测试后,只有在这个窗口之内的像素才能被绘制,其它像素则会被丢弃.换句话说,无论怎么绘制,剪裁窗口以外的像素将不会被修改.有的朋友可能 ...

  3. OpenGL | 设置视口glViewport 裁剪glScissor 屏幕截图 glReadPixel

    一.设置视口 1.视口 视口(Viewport):指的是OpenGL用于渲染的输出区域,它是窗口中的一个矩形区域.在渲染过程中,OpenGL会将图形投影到视口中,以生成最终的图像.视口通常可以通过gl ...

  4. OpenGL入门学习(十二) 【转】

    片断测试其实就是测试每一个像素,只有通过测试的像素才会被绘制,没有通过测试的像素则不进行绘制.OpenGL提供了多种测试操作,利用这些操作可以实现一些特殊的效果. 我们在前面的课程中,曾经提到了&qu ...

  5. 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 ...

  6. NeHe OpenGL第二十四课:扩展

    NeHe OpenGL第二十四课:扩展 扩展,剪裁和TGA图像文件的加载: 在这一课里,你将学会如何读取你显卡支持的OpenGL的扩展,并在你指定的剪裁区域把它显示出来.   这个教程有一些难度,但它 ...

  7. OpenGL ES 2兼容函数列表

    关于OpenGL(含ES)的资料汗牛充栋,但是普遍存在的问题是,OES的资料不够系统,OGL的资料过于庞大 此列表详细记录了GLES2兼容函数的情况,使大家在学习时,对于算法和资料可以有针对性的选择 ...

  8. OpenGL 期末考试作业

    1.OpenGL中能渲染的基本元素是什么?(曲面) 答:OPENGL基本元素: GL_POINTS GL_LINES GL_POLYGON  GL_LINE_STRIP GL_LINE_LOOP GL ...

  9. OpenGL ES渲染管线与着色器

    转自:http://blog.csdn.net/kesalin/article/details/8223649 [OpenGL ES 02]OpenGL ES渲染管线与着色器 罗朝辉 (http:// ...

最新文章

  1. struts 普通的action
  2. 安装图形界面、VNCserver
  3. 浦发银行招聘计算机类笔试题,2019浦发银行招聘计算机模拟试题及答案
  4. DataGridView动态添加新行的两种方法
  5. JDBC-01-快速入门
  6. python任务调度平台 界面_分布式任务调度平台XXL-JOB搭建教程
  7. 对于初学者,如何轻松学习JavaScript?
  8. 洛谷P1461 海明码 Hamming Codes
  9. 赫伯特·西蒙前半生泡妞打架,后半生拿图灵奖、诺贝尔奖,成人工智能大神
  10. 利用java完成图像文字识别和翻译,实现拍照翻译的功能
  11. H2O自动化机器学习框架介绍与搭建笔记
  12. rust自动售卖机英文_中英文设备销售合同.doc
  13. 赶集网否认倒闭:是不是好公司,两三年后见分晓
  14. 首届金融行业SD-WAN的应用与实践研讨会上海站
  15. 浏览器广告屏蔽插件推荐(Chrome与Firefox)
  16. AJAX()请求参数
  17. 全国计算机竞赛保送清华,保送清华北大,带你看看信息学奥林匹克竞赛的魅力...
  18. vulnstack(一) 红日靶场复现
  19. C++ 凯撒密码具体代码实现
  20. 炼数成金邀请码:YY96

热门文章

  1. pycharm查看html页面,pycharm爬取网页数据
  2. 京东商城背后AI技术揭秘(二)——基于商品要素的多模态商品摘要
  3. json取交集_JSON 与对象、集合之间的转换的示例
  4. ChatGPT之后我们要做什么?丨文本生成中的知识和控制
  5. Excel多个工作表汇总统计
  6. pikachu验证码绕过
  7. 基因组共线性工具MCScanX使用说明
  8. 数据库第六次作业--查询数据--多条件
  9. iOS开发之iOS13 暗黑模式(Dark Mode)适配
  10. 2.2.2 矩阵(matrix())