位置: 编程技术 - 正文

glViewport(glviewport超出屏幕范围)

编辑:rootadmin
glViewport是OpenGL中的一个函数。计算机图形学中,在屏幕上打开窗口的任务是由窗口系统,而不是OpenGL负责的。1功能编辑glViewport在默认情况下,视口被设置为占据打开窗口的整个像素矩形,如图1,窗口大小和设置视口大小相同,所以为了选择一个更小的绘图区域,就可以用glViewport函数来实现这一变换,在窗口中定义一个像素矩形,最终将图像映射到这个矩形中。例如可以对窗口区域进行划分,在同一个窗口中显示分割屏幕的效果,以显示多个视图。2参数编辑glViewport(GLint x,GLint y,GLsizei width,GLsizei height)为其函数原型。X,Y————以像素为单位,指定了视口的左下角(在第一象限内,以(0,0)为原点的)位置。width,height————表示这个视口矩形的宽度和高度,根据窗口的实时变化重绘窗口。

推荐整理分享glViewport(glviewport超出屏幕范围),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:glviewport函数,glviewport函数,glviewport函数,glviewport函数,glviewport的功能,glviewport函数,glviewport的功能,glviewport(0,0,w,h),内容如对您有帮助,希望把文章链接给更多的朋友!

下面是一个例子:

#include <gl/glut.h>

//不显示控制台窗口#pragma comment( linker, "/subsystem:"windows" /entry:"mainCRTStartup"")

void display(){//glMatrixMode( GL_MODELVIEW );//glLoadIdentity();

glClear( GL_COLOR_BUFFER_BIT );

glColor3f( 1.0, 0.0, 0.0 );//画分割线,分成四个视见区glViewport( 0, 0, , );glBegin( GL_LINES ); glVertex2f( -1.0, 0 ); glVertex2f( 1.0, 0 ); glVertex2f( 0.0, -1.0 ); glVertex2f( 0.0, 1.0 ); glEnd();

//定义在左下角的区域glColor3f( 0.0, 1.0, 0.0 );glViewport( 0, 0, , );glBegin( GL_POLYGON ); glVertex2f( -0.5, -0.5 ); glVertex2f( -0.5, 0.5 ); glVertex2f( 0.5, 0.5 ); glVertex2f( 0.5, -0.5 );glEnd();

//定义在右上角的区域glColor3f( 0.0, 0.0, 1.0 );glViewport( , , , );//一定要注意,后面这两个参数是高度和宽度,而不是坐标 glBegin( GL_POLYGON ); glVertex2f( -0.5, -0.5 ); glVertex2f( -0.5, 0.5 ); glVertex2f( 0.5, 0.5 ); glVertex2f( 0.5, -0.5 );glEnd();

//定义在左上角的区域glColor3f( 1.0, 0.0, 1.0 );glViewport( 0, , , );//一定要注意,后面这两个参数是高度和宽度,而不是坐标glBegin( GL_POLYGON );glVertex2f( -0.5, -0.5 );glVertex2f( -0.5, 0.5 );glVertex2f( 0.5, 0.5 );glVertex2f( 0.5, -0.5 );glEnd();

glViewport(glviewport超出屏幕范围)

//定义在右下角glColor3f( 1.0, 1.0, 0.0 );glViewport( , 0, , );//一定要注意,后面这两个参数是高度和宽度,而不是坐标glBegin( GL_POLYGON );glVertex2f( -0.5, -0.5 );glVertex2f( -0.5, 0.5 );glVertex2f( 0.5, 0.5 );glVertex2f( 0.5, -0.5 );glEnd();

glFlush();}

void init(){ glClearColor( 0.0, 0.0, 0.0, 0.0 );

glColor3f( 1.0, 1.0, 1.0 );

glMatrixMode( GL_PROJECTION );glLoadIdentity();//定义剪裁面gluOrtho2D( -1.0, 1.0, -1.0, 1.0 );

//glViewport( 0, 0, , ); //放在这里不好使}

int main( int argc, char ** argv ){ glutInit( &argc, argv );glutInitDisplayMode( GLUT_SINGLE | GLUT_RGB );glutInitWindowPosition( , );glutInitWindowSize( , );glutCreateWindow( "glViewport()" );glutDisplayFunc( display ); init();glutMainLoop();}

编译运行结果如下:

OpenGL 之 坐标变换 创建OpenGL模型过程:OPENGL坐标变换很有特点,为了简单描述先定义2个坐标系:(1)世界坐标系:无论如何变换,世界坐标系都不动,以屏幕中心为原点

OpenGL红宝书学习笔记(1) OpenGL对场景中的图像进行渲染时所执行的主要操作:1.根据几何图元创建形状,从而建立物体的数学描述,(OpenGL把点,直线,多边形和位图作为基本的

OpenGL学习之材质RGB值和光源RGB值关系 材质的颜色与光源的颜色有些不同。对于光源,R、G、B等于R、G、B对其最大强度的百分比。若光源颜色的R、G、B都是1.0,则是最强的白光;若变为0.5,

本文链接地址:https://www.jiuchutong.com/biancheng/373131.html 转载请保留说明!

上一篇:OpenGL 房子(opengl房子建模)

下一篇:OpenGL 之 坐标变换(opengl绘制坐标轴)

免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络