OpenGL窗口,视口,裁剪区域
创始人
2024-06-02 03:05:08
0

在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
}

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...