位置: 编程技术 - 正文

解决三维建模软件中摄像机旋转的问题(你所知道的三维建模软件有哪些?)

编辑:rootadmin

推荐整理分享解决三维建模软件中摄像机旋转的问题(你所知道的三维建模软件有哪些?),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:3维建模软件介绍,解决三维建模软件的方法,三维软件建模,三维建模常用软件,解决三维建模软件的方法,解决三维建模软件问题,三维软件建模,三维软件建模,内容如对您有帮助,希望把文章链接给更多的朋友!

解决三维建模软件中摄像机旋转的问题

我们看到很多3D建模软件都可以很方便地对摄像机进行旋转,比如说Blender,通过按下鼠标中键,就可以很方便地对摄像机进行旋转。在学习了几年OpenGL之后,我也想要模仿这一点做出类&#;的功能。但是当研究的时候,遇到了一些困难。

蒋彩阳原创文章,首发地址: 此前了解到,这些建模软件对于三维建模中的摄像机的定义是:拥有位置(position)、观察点(look at)以及向上的向量(up),此外还有近裁面(z near)、远裁面(z far)、宽高比(aspect ratio)以及视野(field of view)。其中前三者构成了视图矩阵(view matrix),后四者构成了投影矩阵(projection matrix)。这里我说一下如何当摄像机绕着观察点旋转时视图矩阵是如何改变的。

1、 当鼠标按下时,我们必须记录当前摄像机的位置以及向上的向量,因为我们接下来旋转时要改变的就是这两个向量;

2、 在旋转时,我们需要计算position– lookat向量与Y轴形成的平面的法向量,这里我们称之为side向量,因为我们实际中旋转的一部分是在这个平面内进行的。

解决三维建模软件中摄像机旋转的问题(你所知道的三维建模软件有哪些?)

3、 计算旋转矩阵,首先如果鼠标往左右移动了,旋转矩阵沿着y轴正方向旋转-x角度;如果鼠标往上下移动了,旋转矩阵沿着side向量旋转-y角度。注意顺序很重要,如果两者颠倒顺序了,那么旋转出来的效果就不是我所见的三维建模软件那样的效果了;

4、 紧接着计算对position变换的矩阵:首先平移lookat向量,让lookat位于原点;接着乘以第三步计算的旋转矩阵,在后来执行反向操作,将lookat变回原来的位置。

5、 将第四步计算出来的变换矩阵左乘我们暂存的position,得到新的position,将第三步计算出来的旋转矩阵左乘我们暂存的up向量,得到新的up。这里说明的是,当我们将position从side和y轴形成的面旋转到另外一个新的position的时候,如果up向量不发生改变,模型的显示就会出现前后颠倒的现象。所以改变up向量的朝向也是非常有必要的。

6、 最后根据新计算出来的position和up,来计算视图矩阵。

下面的一段代码展示了这一个过程如何操作的:

OpenGL学习笔记:(二)简单绘制正方形(基本框架) #includeGL/glut.hspanstyle=white-space:pre/span//头文件,包含了gl.hglu.hconstintWINDOW_WIDTH=;constintWINDOW_HEIGHT=;voidreshape();voiddisplay();voidinit();voidinit(){glClearColor(0.0,0.0

关于OpenGL导入.obj文件的一点涉入 先说一下我的例子(下载):将需要导入的obj文件放在assets文件夹下面,在代码中设置相应的文件名称(这个都在代码中有标注,备注写的很明确),

OpenGL学习笔记:(三)异或操作-橡皮条程序 一、异或操作1.复制模式(GL_COPY)1.1.复制模式为Opengl默认的逻辑运算模式2.1.画线的时候,如果采用复制模式,则是用当前状态机中的颜色像素替换窗口

标签: 你所知道的三维建模软件有哪些?

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

上一篇:Opengl学习笔记:(一).Ply文件文件格式和文件读取(opengl教程48讲)

下一篇:OpenGL学习笔记:(二)简单绘制正方形(基本框架)(opengl入门视频教程)

  • 增值税电子发票查询平台
  • 个税返还手续费奖励员工账务处理
  • 企业购进材料入什么账户
  • 政府返还的个税怎么算
  • 回退税款所属期具体条件是
  • 防雨棚设计规范
  • 持有待售资产固定资产 要计提折旧吗
  • 企业零申报怎么申报
  • 库存现金多了是什么原因
  • 被合并企业评估什么意思
  • 部队属于企事业单位吗
  • 上海2018房产税实施细则
  • 当期应税销售收入是含税还是不含税
  • 对公账户提取备用金可以每天提现嘛
  • 怎么计算研发费用占销售收入总额比例
  • 把u盘变成光盘模式
  • 资产负债表中的货币资金怎么算
  • PHP:mb_substitute_character()的用法_mbstring函数
  • 代金券与抵扣券的区别
  • PHP:spl_autoload_register()的用法_spl函数
  • 工商年检需准备什么资料
  • 经营出租的固定资产折旧计入哪里
  • 如何计算企业所得税税负
  • CodeIgniter视图使用注意事项
  • 解决脱发的8个方法
  • 四川黄龙风景名胜区停车收费标准
  • php正则函数内容匹配
  • 公章的法律效力范围
  • Swagger-的使用(详细教程)
  • sta翻译中文
  • html+css登录页面
  • OpenAI Translator | 基于ChatGPT API全局翻译润色解析插件
  • less变量
  • 现金日记账每月都做本年累计数吗?
  • 无形资产转让的最低收费额如何确定?
  • 增值税专用发票和普通发票的区别
  • 有问题的原始凭证是什么
  • 预计负债初始计量的最佳估计数的确定是会计估计变更吗
  • vue 同局域网访问不到的问题及解决
  • 无法收到的租金要交房产税吗
  • 蔬菜和肉类是不是免税
  • 跨省市提供建筑服务
  • 保险经纪公司要提取风险准备金按什么规定
  • 三方合同如何解除
  • 补提去年企业所得税会计分录
  • 卖家电的税点是多少呀
  • 应交增值税负数表示什么
  • 机械租赁公司需要什么证件
  • 以前年度损益调整在报表哪里体现
  • 红字发票可以跨月入账吗
  • 宾馆里面的牙膏收费吗
  • 向法人借款凭证摘要怎么写
  • 怎么看财务报表平不平
  • win2003 IIS6.0+PHP+MySQL的安?配置
  • linux中的ssh命令
  • centos作用
  • centos7配置vncserver
  • 手把手教你安装使用国家反诈中心
  • Linux下SSH Session复制功能实现方法
  • sbdrvdet.exe - sbdrvdet是什么进程 有什么用
  • Win10控制面板打不开
  • linux中sudoers
  • opengl裁剪平面
  • opengl获取鼠标位置
  • Bootstrap与KnockoutJs相结合实现分页效果实例详解
  • 服务器自动关机什么原因
  • nodejs利用http模块实现银行卡所属银行查询和骚扰电话验证示例
  • 安卓开发解析xml
  • unitystudio手机版
  • Nodejs事件循环机制图解
  • centos搭建php
  • node项目部署
  • 深入理解新发展理念
  • python类属性和类方法
  • 浙江纳税百强2020
  • 土地使用税2023征收标准
  • 个人所得税法实施条例2011
  • 在税务局代开增值税票如何入账?
  • 国税局北京税务局官网
  • 宁波购房契税退税条件
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设