OpenGL的glViewPort窗口设置函数实现分屏
OpenGL的glViewPort窗口设置函数实现分屏
之前实现过全景图片查看(OpenGL的几何变换3之内观察全景图),那么我们需要进行分屏该如何实现呢?如下图:
没错就是以前提过的glViewPort函数,废话不多说了,我直接上代码:
1 //从这里开始进行所有的绘制2 void drawCube(void)3 {4 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); //清除屏幕和深度缓存5 glMatrixMode(GL_MODELVIEW);6 glLoadIdentity(); //重置当前的模型观察矩阵7 8 glPushMatrix();9 { 10 gluLookAt(0, 0, -5, 0, 0, 0, 0, 1, 0); 11 glTranslatef(0.0f, 0.0f, -5.0f); //移入屏幕 5 个单位 12 glRotatef(xangle_Textures, 1.0f, 0.0f, 0.0f); //绕X轴旋转 13 glRotatef(yangle_Textures, 0.0f, 1.0f, 0.0f); //绕Y轴旋转 14 glRotatef(zangle_Textures, 0.0f, 0.0f, 1.0f); //绕Z轴旋转 15 for (int i = 0; i < 2; i++) { 16 glViewport(i * w_Textures, 0, w_Textures, h_Textures); 17 glBindTexture(GL_TEXTURE_2D, texturesArr[0]); //选择纹理 18 glBegin(GL_QUADS); { 19 //前面:纹理顺时针,立方体逆时针 20 glTexCoord2f(0.0f, 0.0f); glVertex3f( 1.0f, -1.0f, 1.0f); //纹理和四边形的左下 21 glTexCoord2f(0.0f, 1.0f); glVertex3f( 1.0f, 1.0f, 1.0f); //纹理和四边形的左上 22 glTexCoord2f(1.0f, 1.0f); glVertex3f(-1.0f, 1.0f, 1.0f); //纹理和四边形的右上 23 glTexCoord2f(1.0f, 0.0f); glVertex3f(-1.0f, -1.0f, 1.0f); //纹理和四边形的右下 24 }glEnd(); 25 26 glBindTexture(GL_TEXTURE_2D, texturesArr[1]); //选择纹理 27 glBegin(GL_QUADS); { 28 //后面:纹理顺时针,立方体逆时针 29 glTexCoord2f(0.0f, 0.0f); glVertex3f(-1.0f, -1.0f, -1.0f); //纹理和四边形的左下 30 glTexCoord2f(0.0f, 1.0f); glVertex3f(-1.0f, 1.0f, -1.0f); //纹理和四边形的左上 31 glTexCoord2f(1.0f, 1.0f); glVertex3f( 1.0f, 1.0f, -1.0f); //纹理和四边形的右上 32 glTexCoord2f(1.0f, 0.0f); glVertex3f( 1.0f, -1.0f, -1.0f); //纹理和四边形的右下 33 }glEnd(); 34 35 glBindTexture(GL_TEXTURE_2D, texturesArr[2]); //选择纹理 36 glBegin(GL_QUADS); { 37 //顶面:纹理顺时针,立方体逆时针 38 glTexCoord2f(0.0f, 0.0f); glVertex3f( 1.0f, 1.0f, 1.0f); //纹理和四边形的左下 39 glTexCoord2f(0.0f, 1.0f); glVertex3f( 1.0f, 1.0f, -1.0f); //纹理和四边形的左上 40 glTexCoord2f(1.0f, 1.0f); glVertex3f(-1.0f, 1.0f, -1.0f); //纹理和四边形的右上 41 glTexCoord2f(1.0f, 0.0f); glVertex3f(-1.0f, 1.0f, 1.0f); //纹理和四边形的右下 42 }glEnd(); 43 44 glBindTexture(GL_TEXTURE_2D, texturesArr[3]); //选择纹理 45 glBegin(GL_QUADS); { 46 //底面:纹理顺时针,立方体逆时针 47 glTexCoord2f(0.0f, 0.0f); glVertex3f( 1.0f, -1.0f, -1.0f); //纹理和四边形的左下 48 glTexCoord2f(0.0f, 1.0f); glVertex3f( 1.0f, -1.0f, 1.0f); //纹理和四边形的左上 49 glTexCoord2f(1.0f, 1.0f); glVertex3f(-1.0f, -1.0f, 1.0f); //纹理和四边形的右上 50 glTexCoord2f(1.0f, 0.0f); glVertex3f(-1.0f, -1.0f, -1.0f); //纹理和四边形的右下 51 }glEnd(); 52 53 glBindTexture(GL_TEXTURE_2D, texturesArr[5]); //选择纹理 54 glBegin(GL_QUADS); { 55 //右面:纹理顺时针,立方体逆时针 56 glTexCoord2f(0.0f, 0.0f); glVertex3f( 1.0f, -1.0f, -1.0f); //纹理和四边形的左下 57 glTexCoord2f(0.0f, 1.0f); glVertex3f( 1.0f, 1.0f, -1.0f); //纹理和四边形的左上 58 glTexCoord2f(1.0f, 1.0f); glVertex3f( 1.0f, 1.0f, 1.0f); //纹理和四边形的右上 59 glTexCoord2f(1.0f, 0.0f); glVertex3f( 1.0f, -1.0f, 1.0f); //纹理和四边形的右下 60 }glEnd(); 61 62 glBindTexture(GL_TEXTURE_2D, texturesArr[4]); //选择纹理 63 glBegin(GL_QUADS); { 64 //左面:纹理顺时针,立方体逆时针 65 66 glTexCoord2f(0.0f, 0.0f); glVertex3f(-1.0f, -1.0f, 1.0f); //纹理和四边形的左下 67 glTexCoord2f(0.0f, 1.0f); glVertex3f(-1.0f, 1.0f, 1.0f); //纹理和四边形的左上 68 glTexCoord2f(1.0f, 1.0f); glVertex3f(-1.0f, 1.0f, -1.0f); //纹理和四边形的右上 69 glTexCoord2f(1.0f, 0.0f); glVertex3f(-1.0f, -1.0f, -1.0f); //纹理和四边形的右下 70 }glEnd(); 71 } 72 }glPopMatrix(); 73 glFlush(); 74 }
OpenGL的glViewPort窗口设置函数实现分屏相关推荐
- 【OpenGL】八、初始化 OpenGL 渲染环境 ( 导入 OpenGL 头文件 | 链接 OpenGL 库 | 将窗口设置为 OpenGL 窗口 | 设置像素格式描述符 | 渲染绘制 ) ★
文章目录 一.导入 OpenGL 的两个头文件 二.链接 OpenGL 库 三.将 Windows 桌面窗口改成 OpenGL 窗口 四.获取窗口设备 五.设置像素格式描述符 六.设置像素格式 七.创 ...
- blender中如何将窗口移动到另一块屏幕上,即新开一个窗口,作用到分屏上
在 Blender 中,您可以通过以下步骤将窗口移动到另一块屏幕上: 打开 Blender 的 "User Preferences" 窗口(在 Windows 系统中,您可以在菜单 ...
- java如何控制分屏显示,intellij idea 分屏设置 与快捷键
1.找到分屏功能 File -> setting -> keymap,搜索(注意大小写): Split Vertically 水平分屏 Split Horizontally 垂直分屏 2. ...
- Android - 分屏模式(多窗口模式)
简介 在Android N以上设备,可以开启多窗口模式,也叫分屏模式,即在屏幕上可以同时显示多个窗口,这多个窗口可以是不同应用的,也可以是同一个应用的. 禁用分屏 app默认允许分屏,如果想要禁止分屏 ...
- Android实现一键开启自由窗口、分屏、画中画模式——自由窗口模式
转载请注明出处:https://blog.csdn.net/sunmmer123 忙过一段时间后,新需求又来了"多个应用/页面间在不用退出或者切换的情况下,可同时操作" 咋一听是不 ...
- AndroidQ 分屏窗口模式 (AMS部分)
1. 多窗口 1.1 栈 Android7.0开始支持多窗口,多窗口分为三种,画中画,分屏,自由窗口,多窗口的核心原理其实就是分栈和设置栈边界, 分栈即把不同窗口模式下的Activity放在不同的Ac ...
- Android实现一键开启自由窗口、分屏、画中画模式——分屏模式
转载请注明出处:https://blog.csdn.net/sunmmer123 Android实现一键开启自由窗口.分屏.画中画模式系列 一键开启自由窗口模式 一键开启进入分屏模式 一键开启画中画模 ...
- windows平台下,有什么好的分屏软件推荐?3款让窗口布局更合理的App
windows平台下,有什么好的分屏软件推荐?Windows 10 系统为例,系统自带功能支持二分屏/三分屏/四分屏的分屏方式.比如用户通过鼠标将应用窗口拖到屏幕边缘,窗口会自动以占据 1/2 屏幕大 ...
- Mac 窗口管理分屏工具软件【Wins】
Wins,为 Mac 带来系统级的分屏功能,快速分屏,只需拖动窗口到屏幕边缘即可进行分屏操作.提供了分屏预览动画和触发分屏后的动画效果. 单设备永久使用,免费更新.仅需95 Wins 激活码:Wi ...
最新文章
- 昌宁一中高考成绩表查询2021,昌宁县一中20182019学年上学期高二数学月考试题含解析.docx...
- 降维(一)----说说主成分分析(PCA)的源头
- select自定义箭头问题 。。。和一行内不同颜色的整体鼠标滑过变色
- CTF python沙箱逃逸进阶题目
- python pexpect timeout_Python 的 pexpect 模块的问题
- python闹钟界面程序_「Python编程」自由管理时间之编写一个小闹钟起床
- 重磅!普惠AI--华为云语音语义万次调用1元购,有奖问答@评论区等你来!
- 用法 the_英语冠词:不定冠词a,an和定冠词the的用法
- 2011年7月21日 星期四 new
- cnn卷积神经网络_【CNN】一文带你了解卷积神经网络CNN的发展史
- 配置php apache,apache如何配置php
- 带瀑布流的电钢琴_你没有看错 这个Find智能钢琴它会自己弹琴
- (php毕业设计)基于php校园网络报修管理系统获取
- 命名时取代基优先顺序_烷烃的系统命名
- vim之快速查找功能
- 计算机网络数据通信部分之网络层ARP报文分析
- Android逆向案例:干掉梆梆加固免费版的反调试检测
- 使用Spring实现读写分离(MySQL实现主从复制)
- 1.试用期个人工作总结(篇一)
- 量化投资 — 移动平均及双均线策略
热门文章
- A Survey on Federated Learning Systems- Vision, Hype and Reality for Data Privacy and Protection
- 2021-10-11 学习笔记 什么是D触发器?
- 如何使用Synopsys VCS在Vivado中编译库并执行仿真
- Python Django Web开发入门-刘硕-专题视频课程
- P5514 [MtOI2019]永夜的报应(位运算)
- 赶紧换回我以前比较老实的头像算了
- FH8626V100添加Uboot串口
- 高通 Android 12/13 去掉耳机音量安全弹窗
- IDS及防火墙知识点
- 数据管理技术的发展经历了哪三个阶段