位置: 编程技术 - 正文

Qt Quick + OpenGL + Bullet初次测试

编辑:rootadmin
Qt Quick &#; OpenGL &#; Bullet初次测试

推荐整理分享Qt Quick + OpenGL + Bullet初次测试,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

目前Qt的Quick模块已经表现得非常出色,而且可以预留接口来渲染OpenGL场景。一般来说,已经能够满足大部分编程需要了。这次呢,尝试使用结合一些技术,来做一些有趣儿的事情——将Bullet整合进来,并且进行测试。

蒋彩阳原创文章,首发地址: 有关Bullet的选择,其实也是有一番讲究的。目前Bullet的2.版本,暂时没有更新了,而Bullet 3.x,则是还少有应用。如果我们去看Bullet的新的代码库——github,就会发现,在“Requirementsfor Bullet 2”,作者表示几乎任何编译器都能够编译它的代码,而在“Requirements for Bullet 3”的介绍中,只是说能在高端的显卡中运行,低端显卡或者是移动设备可能和Bullet 3无缘了。所以在这种情况下,我就选择Bullet 2.来制作这个例子。

为了完成这个例子,我参考了前辈们的一些例子,比如说Qt在诺基亚时期,就写了一个很棒的Bullet &#; Qt的例子,叫做BulletDice。它的github地址在这里。这边儿比较简单,容易上手,再加上Bullet有一份Manual,两者结合起来看,方便了许多。花了一周的时间,终于模仿并且制作出来了这样的效果:

一开始立方体在平面的上面位置,随后根据重力,呈自由落体速度,慢慢地往下落。最终落在了地面上。下图表示落下来时候的样子:

Qt Quick + OpenGL + Bullet初次测试

怎么样?很简单吧。这里也是我对Bullet的初步认识。在编写这个例子的过程中,遇到了很多困难,也有很多地方&#;得推敲。所以我在这里先作一个笔记,给以后作参考。

首先为了验证物理引擎可用,我在类中写了一个函数叫debugShow(),每次仿真采样的时候,输出立方体的位置。在验证这样是没有问题的基础上,开始研究怎样让数据与渲染相结合。下面的代码片描述了与Bullet相关的一些知识:

随后,可能要考虑,在这个模型中,只有一个施力物体,也就是“地球”,它对立方体施以重力,让立方体做自由落体运动,运动过程中采样的轨迹通过body中motionState中的worldTransform来表述。如果和渲染引擎相结合的话,我这边的做法是物理引擎最终只修改物体的modelMatrix,模型自己的形态则控制着本原位置,摄像机的参数控制着viewMatrix和projectionMatrix。只有这样,一切看起来概念才清晰。

这里可能有一个比较棘手的问题,有时候,需要对modelMatrix进行手动控制,来改变模型的变换信息,但是呢,modelMatrix又是受物理引擎控制的,所以对于modelMatrix受手动控制和物理引擎控制的切换,是比较难以处理的,下次我再看看随着学习的深入,能不能厘清他们之前的关系。

最后,我也在我的Android平板电脑上测试成功。说明Bullet是完全可以做到结合Qt来跨平台的。

Xcode上创建openGL项目 创建opengl项目步骤1,创建一个Cocoa的项目。2,将项目中的AppDelegate.h,AppDelegate.m,MainMenu.xib文件删除。然后将main.m文件删除,改为main.cpp文件。3,将inclu

opengl入门 基本概念1,OpenGL:是图形硬件的一种软件接口。通俗点讲就是一套API,调用接口而已,用于图像的渲染。与微软的Direct类似,不过它是跨平台的。2,Ope

OpenGL--双缓冲 双缓冲就是先将图片绘制到后台缓冲区,然后再交换到前台缓冲区显示。为什么要这么做?一种解释是我们的渲染一般是多线程处理,如果直接绘制到

标签: Qt Quick + OpenGL + Bullet初次测试

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

上一篇:openGL 获取矩阵中的旋转-平移-缩放(opengl矩形)

下一篇:Xcode上创建openGL项目(xcode怎么新建项目)

  • 合同甲方乙方收钱付钱涉及什么税金
  • 未达到起征点的增值税会计处理
  • 农民合作社交哪些税
  • 个人如何开现金账户
  • 母子公司借款要交什么税
  • 增值税即征即退政策
  • 土地增值税预征管理办法
  • 出售投资性房地产的会计处理
  • 产权转移书据印花税计入什么科目
  • 制造费用结转生产成本金蝶怎么操作
  • 即征即退的增值税需要缴纳附加税吗
  • 律师事务所收费单据
  • 财税〔2017〕39号
  • 纳税主要是哪些方面
  • 年数总和折旧计算方法
  • 把十六点改成十五点半起床
  • 普通发票个人所得税隔审了怎么弄
  • 投资基金是什么科目
  • 债券溢价发行会计分录举例
  • 跨年度的房租发票怎么做账
  • win10开机内存占用60% 8g占用过高
  • 日历怎么不能添加事件了
  • 税务局查账补交所得税怎样处理
  • 认缴出资什么时候补齐
  • 变更营业执照中心怎么改
  • php抓取网页内容转换成json
  • 观察者模式 mvc
  • mmtraylsi.exe是什么进程 有什么作用 mmtraylsi进程查询
  • 临时工的工资需要缴纳工会经费吗
  • 增值税防伪税控系统
  • 在申报季度企业所得税时,残疾人工资可以加计扣除吗
  • 残疾人在公司上班公司有什么好处
  • 火星车百家号
  • 公众号 企业
  • css如何实现文字环绕
  • Python人脸识别智能考勤系统 (供源码,附报告)(可答疑,可调试)
  • 自学前端,你必做的事
  • php计时函数
  • repo命令详解
  • 微服务框架图
  • python3.4 numpy
  • 税局通知纳税人的短信
  • 残疾人保障金所属期怎么填
  • 单位购图书怎么入账
  • 企业资产评估后多久上市
  • 购买无形资产的入账价值包括增值税吗
  • 小规模纳税人可以开13的税吗
  • 建筑业跨区域预缴税款的计算
  • 收到增值税发票月饼
  • 总公司和分公司不在一个区怎么纳税
  • 今年发的去年的工资怎么扣税
  • 期间费用怎么区分
  • 城建税及教育附加税税率是多少
  • 社保缴费基数调整后对个人的影响
  • 总公司与分公司的账务处理
  • 购入软件的账务处理
  • 无形资产的项目有哪些
  • 固定资产为
  • 广告费和广告发布费什么区别
  • 未分配利润是什么会计科目
  • linux下mysql5.7.17最新稳定版本安装教程
  • win7开机报错0xc0000098
  • 重装系统后win7无法连接到网络
  • 怎样设置win10
  • win7pxe-mof:exiting pxe rom
  • Slackware Linux init 进程
  • 使用jquery操作dom
  • python多核并行处理
  • perl怎么把字符串变为数字
  • JS实现的ajax和同源策略(实例讲解)
  • idea 分析源码
  • js实现自定义打印
  • js获取div下指定元素的值
  • js中的?
  • jquery的实现原理
  • 已经开具的专用发票
  • 广东省电子税务局官网登录入口
  • 税务暂停办理业务通知
  • 广东省电子税务局app下载官网
  • 广州市国家税务局稽查局举报中心
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设