OpenGL窗口,视口,裁剪区域

OpenGL中的窗口是操作系统创建的显示区域,视口是渲染输出的矩形部分,而裁剪区域定义了渲染的限制范围。窗口坐标以左上角为原点,视口坐标以左下角为原点。理解这些坐标系和变换对OpenGL编程至关重要。
摘要由CSDN通过智能技术生成

在OpenGL中,窗口、视口和裁剪区域是三个不同的概念,它们分别用于描述不同的坐标系统和渲染流程。

窗口(Window):指的是OpenGL显示的窗口区域,它由操作系统负责创建和管理。窗口通常包括标题栏、边框和客户区域(也称为工作区),客户区域是OpenGL用于显示图形的区域。窗口的坐标系统通常是屏幕坐标系,以窗口左上角为原点,横向向右为正方向,纵向向下为正方向。
glutInitWindowSize(800, 600);//规定了窗口大小,w=800,h=600
视口(Viewport):指的是OpenGL用于渲染的输出区域,它是窗口中的一个矩形区域。在渲染过程中,OpenGL会将图形投影到视口中,以生成最终的图像。视口通常可以通过glViewport函数进行设置,它的坐标系统是以视口左下角为原点,横向向右为正方向,纵向向上为正方向的笛卡尔坐标系。
glViewport(0, 0, 800, 300);//规定了视口,在屏幕的下半部分w=800,h=300
裁剪区域(Clipping Region):指的是OpenGL进行渲染时使用的裁剪空间中的一个区域。裁剪空间是在顶点着色器中进行顶点变换后得到的坐标系,它通常是一个4维齐次坐标系。裁剪区域由6个平面所定义,这6个平面分别对应了视锥体的6个面。在渲染过程中,OpenGL会将裁剪空间中的图形裁剪到裁剪区域内,以生成最终的图像。
void glScissor(GLint x, GLint y, GLsizei width, GLsizei height);
该函数有四个参数:x、y、width和height。这四个参数用于指定裁剪区域的位置和大小,其中x和y表示裁剪区域的左下角坐标,width和height表示裁剪区域的宽度和高度。
例子:
glEnable(GL_SCISSOR_TEST);
glScissor(100, 100, 400, 300);

需要注意的是,窗口、视口和裁剪区域是三个不同的概念,它们的坐标系统和渲染流程也不同。在OpenGL中,图形的坐标系经历了多次变换,从对象空间到世界空间、到观察空间、到裁剪空间,最后才映射到视口中进行渲染。理解这些坐标系和变换过程对于OpenGL编程非常重要。
在这里插入图片描述
这个w和h时候后来又拉了一下的。
调用了这个里面的回调函数glutReshapeFunc(ChangeSize);
void ChangeSize(int w, int h)
{
glViewport(0, 0, 800, 300);//规定了视口,在屏幕的下半部分w=800,h=300
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值