位置: 编程技术 - 正文

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

编辑: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入门视频教程)

  • 税控盘注意事项
  • 结转本月完工入库产品制造成本,甲产品800台全部完工
  • 收款金额比开票金额少是对方扣的手续费
  • 小规模纳税人专票和普票区别
  • 已发货未收款怎么做会计分录
  • 委外研发费用如何开票
  • 亏本销售商品如何做其会计分录?
  • 年终结账后,应当更换新账的有( )
  • 营改增住宿费的进项税可以抵扣吗
  • 增值税专用发票有效期是多长时间
  • 关于免租金的法律规定
  • 汽车维修单位提成比例
  • 会展服务服务费怎么是免税
  • 广告费发票收到但是不抵扣怎么做账?
  • 合并报表的收入
  • 企业收到的贷款会计分录
  • 管理费用与税金的比例
  • windows为什么从7开始
  • 收到服务费专票怎么做账
  • 冲销以前年度多做的其他应收款
  • 公司法人向公司借款未还,公司可以倒闭吗
  • regsync.exe - regsync是什么进程 有什么用
  • php 错误和异常处理
  • vue3 vue.config.js配置Element-plus组件和Icon图标实现按需自动引入
  • 不能加载axf文件
  • 什么是增值税扣除标准
  • php自动载入自定义函数文件
  • 生产车间工资计提
  • 社保挂靠公司收费标准是怎样的
  • 脱不下孔乙己的长衫对应下一句
  • php判断https
  • 办理组织机构代码证需要什么材料
  • vue父组件子组件
  • vue引用类型
  • 理财资金用途
  • 餐厅如何计提固定成本
  • 人民日报公共事件的报道问题
  • 上个月的票这个月作废后报增值税需不需要交费?
  • 消耗品属于哪个会计科目
  • 本月损益类未结转为零的一级科目6603
  • 管理费用二级科目明细可以自己设置吗
  • 员工休产假社保如何交
  • 原材料的对应账户有哪些
  • 往酒吧送酒怎么样
  • 息税前利润与盈亏平衡点
  • 2019员工旅游费最新规定
  • 小规模纳税人购进商品会计分录
  • 已经认证的进项票销售方冲红了
  • 软件开发公司账一定按项目做吗
  • 按工人工资比例结转制造费用会计科目
  • 开发成本六大类
  • 明细账建账的步骤
  • mysql缩印
  • mysql 左链接 右链接
  • soft version
  • 微软桌面 ios
  • 杭州租房补贴社保断缴影响
  • windows2000文件和文件夹的属性包括
  • mac 命令大全
  • win8怎么添加打印机到电脑上
  • SwiftBTN.exe - SwiftBTN是什么进程 有啥作用
  • win7任务栏显示预览窗口
  • 如何使桌面图标透明
  • linux如何配置双网卡
  • uefi bios ufilify
  • win10系统字体不清晰
  • linux 系统变量
  • cocos2dx-js
  • jQuery Password Validation密码验证
  • Python+Wordpress制作小说站
  • 安全模式安卓
  • unity删除对象
  • 在javascript中如何定义并调用函数
  • activity怎么用
  • js中的flat
  • jquery插件使用教程
  • python系统框架
  • 火狐浏览器不支持弹出对话框操作
  • MVC+jQuery.Ajax异步实现增删改查和分页
  • 股权转让和大宗转让区别
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设