位置: 编程技术 - 正文

Bullet(Cocos2dx)之优化PhysicsDraw3D

编辑:rootadmin

推荐整理分享Bullet(Cocos2dx)之优化PhysicsDraw3D,希望有所帮助,仅作参考,欢迎阅读内容。

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

为了测试bullet物体的大小,匆匆写完的PhysicsDraw3D的效率低的要命,这也是为什么cocos2dx弃用了DrawPrimitives,而去使用DrawNode

DrawPrimitives每次绘制都去调用glDrawElements,假如每帧绘制条线段,那么就要调用次glDrawElements,可见效率之低。

而DrawNode采取的是批处理的方式,当drawLine的时候不是立即绘制,而是将线段的信息添加到数组里,当draw时统一调用gl的绘制函数

/1可不是一个小数目啊。

下图使用DrawPrimitives方法

加入个Sphere帧率就掉到,的帧率更是惨不忍睹

下图使用DrawNode方法

为了解决这个问题就要参照DrawNode实现一个简单的DrawNode3D

不管三七二十一,将DrawNode的头文件代码copy,删去一些不需要的,

1.修改V2F_C4B_T2F 为 V3F_C4B_T2F

2.修改Vec2为Vec3,要绘制3D

3. 保留drawPoint, drawPoints, drawLine,其他的绘制函数不要

对于DrawNode.cpp按照上面所说同样修改

要记住

Bullet(Cocos2dx)之优化PhysicsDraw3D

因为顶点有三个元素,.cpp代码过多,请在文章最后下载源码,要注意的是绘制时开启深度测试

修改PhysicsDraw3D

删除成员变量,添加DrawNode3D* _drawNode,由于DrawNode3D继承自Node所以创建时要将其添加到父节点上,

修改create,init为如下

static PhysicsDraw3D* createWithLayer(Node* layer);

bool initWithLayer(Node* layer);

同时添加

void clearDraw();

我们知道DrawNode如果不执行clear,那么就不会清空上一帧的绘制数据

具体修改如下:

销毁时也要将_drawNode从Parent中移除

PhysicsWorld3D 创建的静态函数添加

为的就是创建调试绘制

同时删除initWorld对_debugDraw的创建,每次绘制时需要判断是否为debug

完整源码

csdn

github

cocos2dx-3.0() ScrollView 缩放 及 touch新用法 转自

cocos2dx中函数指针传递的方法 目的看到群里有个朋友搞了好几天函数指针传递,没搞好。所以写一篇文章,旨在从cocos2dx中帮朋友们找到如何传递指针。旧版本的函数指针传递全局函

cocos2dx 3.3 视频播放的实现-VideoPlayer的使用 最近因为项目需求需要使用到视频播放功能。在3.x版本之前如果需要用到视频播放功能就要使用原生的视频播放实现技术,好在3.x之后官方已经集成了

标签: Bullet(Cocos2dx)之优化PhysicsDraw3D

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

上一篇:cocostudio2.0 碰到的问题(cocos2048)

下一篇:cocos2dx-3.0(23) ScrollView 缩放 及 touch新用法

  • 采购价格含税吗
  • 民营医院增值税优惠政策有哪些
  • 劳务公司为一般纳税人的税率
  • 计税工资和实发工资不一样所得税
  • 行政事业单位决算编制流程图
  • 红冲的发票能不能取消
  • 工会经费余额在借方怎么办
  • 月末调整银行外币汇率会计分录
  • 企业销售使用过的固定资产如何开票
  • 房地产经营税金计算公式
  • 被代持股份怎么退出
  • 税后利润分配还要交税
  • 空调可以开专票抵扣吗
  • 汽车配件税收分类编码
  • 建筑业在外地预缴的所得税能退吗
  • 其他收益期末余额在借方还是贷方
  • 减半征税怎么算
  • 上年的一张服务费的发票能否做账到今年?
  • 个体工商户开9%的税需要什么
  • 一般纳税人怎么计算增值税
  • 旅游开发企业会计账务处理
  • 生产领用包装物计入哪里
  • 上半年的业务总结几句话
  • 电力安装工程辅料有哪些
  • 存货退回账务处理
  • 委托加工物资加工费计入
  • macbookair邮件
  • 报销没有发票如何处理做凭证
  • vue的actions
  • php json格式化
  • SE注意力机制加在什么位置
  • 退税发票在总局怎么开
  • 表单验证用什么方法实现
  • iframe标签表示的框架
  • 线性判别分析LDA医学
  • 节流和防抖js
  • pycharm操作界面
  • 广告费应该计入产品成本吗
  • 工程款发票的数量和单价
  • 哪些企业不需要做安评
  • 国库集中支付发送签收失败
  • 深入讲解党的创新理论
  • 酒店营业税率是多少
  • 税控系统减免税
  • 公益性捐赠支出怎么算
  • sqlserver创建维护计划
  • 应交税费为什么写在借方
  • 同一控制下合并报表恢复留存收益
  • 购入固定资产款项未付
  • 进项税额转出和红字冲销区别
  • 固定资产清理的金额怎么算
  • 无形资产摊销账面价值
  • 进项税留底怎么处理
  • 劳务派遣公司小规模纳税人如何开票
  • 0税率出口退税
  • 红字冲销发票的作用
  • 记账凭证的基本要素包括哪些
  • w10预览版新功能
  • win10打开命令提示符窗口
  • ubuntu集成开发环境
  • mac隐藏菜单栏
  • linux系统怎么维护
  • windows8音频服务尚未启用 怎么解决
  • c#开发linux
  • NGUI带位置图标的拖动例子
  • Following the pipeline
  • 利用职务之便谋取私利是什么罪
  • 可视化gradcam
  • javascript常用语法
  • javascript数据类型有哪些
  • javascript编程语言
  • 基于nodejs的框架
  • unity 5.4
  • node.js权威指南
  • Android带有注册界面的简单app
  • unity3d项目
  • jquery实现点击按钮
  • opencvandroid开发实战
  • springmvc返回json格式的注解
  • 合伙人转让出资的法律规定
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设