位置: 编程技术 - 正文

OpenGL学习08-透视投影&照相机(opengl 透视投影)

编辑:rootadmin

推荐整理分享OpenGL学习08-透视投影&照相机(opengl 透视投影),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:opengl视口,opengl 透视变换,opengl绘制透明球,opengl透视矩阵,opengl透明度,opengl透视矩阵,opengl 透视变换,opengl 透视投影,内容如对您有帮助,希望把文章链接给更多的朋友!

透视投影执行透视除法,对观察者较远的物体进行缩短和收缩。投影到屏幕之后,可视区域后端和前端的宽度度量方式并不相同。因此,如果两个逻辑大小相同的物体分别位于可是区域前面和后面,前者看上去要比后者大一些。

如图1所示,该图形被称为平截头体(frustum),它的观察方向是从狭窄端到宽阔端,另外还显示了观察则的位置。

图1,来至OpenGL超级宝典

可以使用glFrustum函数来定义一个平截头体。它的参数是前后裁剪平面的坐标和他们相互之间的距离,如下所示:

void glFrustum(GLdouble left,GLdouble right ,GLdouble bottom,GLdouble top,GLdouble zNear,GLdouble zFar);

glFrustum函数接受6个参数,left、right是相对于垂直平面左右坐标的位置; bottom、top是相对水平平面上下位置;zNear、zFar是远近平面相对于观察者的距离(必须为正&#;)。

OpenGL学习08-透视投影&照相机(opengl 透视投影)

但是,在设置投影以以获得自己所需的效果时,glFrustum使用起来并不是很直观。工具函数gluPerspective更容易使用,在大多场合,它看上去更直观。

void gluPerspective(GLdouble fovy,GLdouble aspect,GLdouble zNear, GLdouble zFar);

gluPerspective函数接受4个参数。fovy为垂直方向的视野角度;aspect是视口宽度与高度的比例w/h;zNear近平面距离观察者的距离;zFar远平面距离观察者的距离。代码如下:

OpenGL中其实并不存在像照相机这样的东西。我们只有用照相机作为一种有用的比喻,帮助我们在某种宽广的3D环境中管理观察点。如果我们把照相机想象为一种物体,它在空间具有某个位置和特定的方向,就会发现当前的参考帧系统在3D环境中既可以用角色来表示,也可以用照相机来表示。

为了应用照相机变换,我们要使用照相机的角色变换并对它进行反正,这样向后移动照相机就相当于向前移动整个场景。类&#;地,向左旋转相当于把整个场景向右旋转。

OpenGL工具库中包含一个函数,他所使用与我们存储在帧中的帧数据结果相同,可以用它来创建我们的照相机变换,如下:

void gluLookAt(GLdouble eyex,GLdouble eyey,GLdouble eyez,GLdouble centerx,GLdouble centery,GLdouble centerz,GLdouble upx,GLdouble upy,GLdouble upz);

这个函数接受几个参数,eyex、eyey、eyez观察点的位置;centerx、 centery、centerz观察点前面直接位置上的一个点;upx、upy、upz向上向量的方向。不是特别好理解,网络上有这种所发:“你把相机想象成为你自己的脑袋:第一组数据就是脑袋的位置,第二组数据就是&#;睛看的物体的位置第三组就是头顶朝向的方向(因为你可以歪着头看同一个物体)”,这样就很好理解了。

OpenGL中使用GLSL着色器 OpenGL中使用GLSL着色器步骤GLSL既适用于顶点着色器,也适用于片段着色器。使用着色器对象的步骤:1、创建着色器对象:GLuintglCreateShader(GLenumtype);//创建

cocos2d-x源码分析之Director::drawScene() 寄语:选择可能就意味着孤独,我们只有不懈的坚持方能看见曙光!最近比较郁闷,上一个项目还是黄了,自己加入了新的团队,在工作之余打算看看co

OpenGL学习-OpenGL光照 在OpenGL模型中,除非一个物体自己会发光,否则它将受到3中不同的光照射:环境光(ambient)、散射光(diffuse)和镜面光(specular)。现实世界中,当然不存在这

标签: opengl 透视投影

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

上一篇:OpenGL:纹理基础总结(opengl纹理贴图图片位置)

下一篇:OpenGL中使用GLSL着色器(opengl glu)

  • 企业所得税年报申报时间
  • 小规模纳税人收到专票可以抵扣吗
  • 孳息和利息的区别
  • 涉税业务有哪些
  • 有营业额有成本怎么算成本占比
  • 个人独资企业可以核定征收吗
  • 金蝶k3费用发票怎么做
  • 劳务什么情况下会多扣税
  • 基本户被冻结怎么缴投标保证金
  • 小规模旅行社差额征税的账务处理
  • 无形资产摊销年限
  • 处置可供出售金融资产取得的投资收益
  • 户口与工作地不一致,社保
  • 小规模纳税人费用发票怎么做账
  • 外出经营预缴税
  • 出口退税退的是进口时的税吗
  • 公司牌车还款从哪里扣款
  • 房地产预缴土地增值税的账务处理
  • 代理进口一般几个点费用
  • 增值税普通发票有什么用
  • 营改增后固定资产报废处置收入计税
  • 加油的普票可以抵扣进项税吗
  • 小规模纳税人定额发票累计领用金额
  • 资金账簿印花税滞纳金怎么算
  • 公司法人借款给公司怎么取出来
  • 印花税查账征收和核定征收计算
  • 收到银行存款利息记账凭证怎么写
  • 关闭 ipv6
  • 王者荣耀中牛魔王的技能
  • 此电脑当前不满足运行win11是怎么回事
  • 社保费税前扣还是税后扣
  • 行政单位如何将资产年报导入财报里
  • 支付代销手续费缴纳增值税吗
  • linux乱码怎么改
  • vue父组件引入子组件
  • 债券溢价或折价是公司发行债券时产生的收益或损失
  • 发票抵税是怎么申报的
  • 比利时的平菇能吃吗
  • 购买办公楼之后怎么入账
  • web网页制作软件
  • wx-java
  • eclipse php wamp配置教程
  • javascript零基础入门书籍
  • docker的常用命令汇总
  • 公司银行开户的费用怎么做账
  • 其他权益工具投资是什么类科目
  • 一个例子解释唯物辩证法三大规律
  • 错开发票所需要提供的资料和时效要求是?
  • 辞退福利是短期还是长期
  • 申报错误要罚款吗
  • 用友t3制单日期定住不变
  • 银行汇票与商业汇票的本质不同
  • 预付一年的房租怎么做账
  • 发行价格另支付发行费用
  • 境外企业向境内企业提供技术服务
  • 增值税免税企业可以开具专票吗
  • 暂估未取得发票汇缴纳税调增怎么填
  • 期末计提利息怎么算
  • 公对公转账多久能到账
  • 企业所得税和增值税重复收税了吗
  • mysql数据库备份与恢复的常用方法有几种
  • sql中nullif
  • win7系统怎么修复安装系统
  • 卸载步骤
  • 任务管理器边框怎么设置
  • win10预览版21277
  • centos 6.5网络设置
  • linux生成文件
  • windows 8连接vpn设置方法(消费者预览版)
  • win7共享按钮灰色
  • win7 64位系统使用dos命令快速提高u盘传输速度的技巧
  • cocos2d-x 3.3 final 适配安卓5.0机型小记
  • javascriptj
  • cocos creator js教程
  • opengl环境配置
  • js数组entries
  • 深入浅出讲解es63
  • 仿百度首页html代码静态
  • 高速公路通行费的税率
  • 北京市税务协会领导
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设