免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
提要OpenGL视口(Viewport)可以看作是窗口中OpenGL的绘制输出区域,可以通过一条简单的glViewport命令设置。一般的OpenGL教程都是单视口,即整个窗口为惟一的一个视口,Nehe的OpenGL教程是我最早见到涉及多视口的。与单视口程序相比,多视口程序的变化主要是:(一)多视口程序不能在窗口resize/reshape时直接调用glViewport,而应该在此时记下窗口大小,然后在绘制场景时多次调用glViewport设置每个视口的位置和大小;(二)对于每个视口,应分别调用glMatrixMode(GL_PROJECTION)和glMatrixMode(GL_MODELVIEW)以设置投影和建模矩阵。多视口的最常见的应用,就是3DMax中的多视口建模,每一个观察口都从不同的方向去观察模型,从而很方便地去获取模型当前的状态。还有就是赛车游戏中的后视镜等等.具体实现的思路就是对每个视口进行独立的渲染。函数解析下面是需要调用到的一些OpenGL的函数。glLoadIdentity()重置当前指定的矩阵为单位矩阵.glViewport(GLint x,GLint y,GLsizei width,GLsizei height)在窗口中定义一个像素矩形,最终将图像映射到这个矩形中。void gluOrtho2D(GLdouble left,GLdouble right,GLdouble bottom,GLdouble top)建立了一个可视的二位平面区域。这个和用glOrtho函数的当near=0,far=1时效果是一样。void gluPerspective(GLdouble fovy, GLdouble aspect,GLdouble zNear,GLdouble zFar)这个函数指定了观察的视景体(frustum为锥台的意思,通常译为视景体)在世界坐标系中的具体大小,一般而言,其中的参数aspect应该与窗口的宽高比大小相同。void glScissor(GLint x,GLint y,GLsizei width,GLsizei height)设置一个裁剪窗口,前两个参数为窗口左下角位置,后两个参数是窗口的宽度和高度。使用前一定要glEnable(GL_SCISSOR_TEST);代码实现实现一:void renderGL() glClear (GL_COLOR_BUFFER_BIT); glLoadIdentity(); / 重置模型观察矩阵 for (int loop=0; loop4; loop+) / 循环绘制4个视口 if (loop=0) / 绘制左上角的视口 / 设置视口区域 glViewport (0, window_height/2, window_width/2, window_height/2); glMatrixMode (GL_PROJECTION); glLoadIdentity (); gluOrtho2D(0, window_width/2, window_height/2, 0); if (loop=1) / 绘制右上角视口 glViewport (window_width/2, window_height/2, window_width/2, window_height/2); glMatrixMode (GL_PROJECTION); glLoadIdentity (); gluPerspective( 45.0, 1.0f, 0.1f, 500.0 ); if (loop=2) / 绘制右下角视口 glViewport (window_width/2, 0, window_width/2, window_height/2); glMatrixMode (GL_PROJECTION); glLoadIdentity (); gluPerspective( 45.0, 1.0f, 0.1f, 500.0 ); if (loop=3) / 绘制左下角视口 glViewport (0, 0, window_width/2, window_height/2); glMatrixMode (GL_PROJECTION); glLoadIdentity (); gluPerspective( 45.0, 1.0f, 0.1f, 500.0 ); glMatrixMode (GL_MODELVIEW); glLoadIdentity (); glClear (GL_DEPTH_BUFFER_BIT); if (loop=0) / 绘制左上角的视图 glBegin(GL_QUADS); glColor3f(1.0f,0.0f,0.0f); / 设置当前色为红色 glVertex2i(window_width/2, 0 ); glColor3f(0.0f,1.0f,0.0f); / 设置当前色为绿色 glVertex2i(0, 0 ); glColor3f(0.0f,1.0f,1.0f); / 设置当前色为蓝色 glVertex2i(0, window_height/2); glColor3f(1.0f,1.0f,0.0f); / 设置当前色为红色 glVertex2i(window_width/2, window_height/2); glEnd(); if (loop=1) / 绘制右上角的视图 glColor3f(1.0f,0.0f,1.0f); glTranslatef(0.0f,0.0f,-9.0f); glRotatef(rtri,1.0,1.0,0.0); glBegin(GL_TRIANGLES); / 绘制三角形 glVertex3f( 0.0f, 1.0f, 0.0f); / 上顶点 glVertex3f(-1.0f,-1.0f, 0.0f); / 左下 glVertex3f( 1.0f,-1.0f, 0.0f); / 右下 glEnd(); / 三角形绘制结束 if (loop=2) / 绘制右下角的视图 glTranslatef(0.0f,0.0f,-2.0f); glRotatef(-45.0f,1.0f,0.0f,0.0f); glRotatef(rtri,0.0f,0.0f,1.0f); glBegin(GL_QUADS); glColor3f(1.0f,0.0f,0.0f); glVertex3f( 0.5f, 0.5f, 0.0f); glColor3f(0.0f,1.0f,0.0f); glVertex3f(-0.5f, 0.5f, 0.0f); glColor3f(0.0f,0.0f,1.0f); glVertex3f(-0.5f, -1.0f, 0.0f); glColor3f(0.0f,0.0f,0.0f); glVertex3f( 0.5f, -1.0f, 0.0f); glEnd(); if (loop=3) / 绘制左下角的视图 glColor3f(0.0f,0.0f,0.0f); glTranslatef(0.0f,0.0f,-4.0f); glRotatef(-rtri/2,1.0f,0.0f,0.0f); glRotatef(-rtri/2,0.0f,1.0f,0.0f); glRotatef(-rquad/2,0.0f,0.0f,1.0f); glBegin(GL_QUADS); glColor3f(1.0f,0.0f,0.0f); glVertex3f( 0.5f, 0.5f, 0.0f); glColor3f(0.0f,1.0f,0.0f); glVertex3f(-0.3f, 0.5f, 0.0f); glColor3f(0.0f,0.0f,1.0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 棘皮类养殖工岗前工艺分析考核试卷含答案
- 重介质分选工班组建设知识考核试卷含答案
- 图案打样工安全意识强化水平考核试卷含答案
- 货运汽车司机安全管理评优考核试卷含答案
- 铸轧工岗前认知考核试卷含答案
- 起重机械维修工岗前环保知识考核试卷含答案
- 2024年山西中医药大学马克思主义基本原理概论期末考试题附答案
- 砖瓦装出窑工风险评估与管理知识考核试卷含答案
- 高频电感器制造工常识评优考核试卷含答案
- 丙烯酸及酯装置操作工岗前全能考核试卷含答案
- 餐饮餐具消毒安全培训课件
- 心理科治疗咨询方案模板
- (2021-2025)5年高考1年模拟物理真题分类汇编专题04 机械能守恒、动量守恒及功能关系(广东专用)(解析版)
- 2025年车间核算员考试题及答案
- 2026年高考作文备考之提高议论文的思辨性三大技法
- 南宁市人教版七年级上册期末生物期末考试试卷及答案
- 项目安全生产管理办法
- 小学美术科组汇报
- 手术室胆囊结石护理查房
- 2024年江西新能源科技职业学院公开招聘辅导员笔试题含答案
- 机械门锁维修施工方案
评论
0/150
提交评论