位置: 编程技术 - 正文

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新用法

  • 延期缴税申请需要先申报吗?
  • 增值税发票选择确认平台打不开怎么办?
  • 出口关税税率表
  • 货运代理费计入固定资产吗
  • 房地产增值税抵减土地出让金
  • 公司举办年会的要求有哪些
  • 执行企业会计准则类别是什么意思
  • 做账一定要银行对账单吗
  • 企业总资产是否包含累积折旧
  • 收到销售退回时应当冲减
  • 有外经证的计税收入怎么算?
  • 货代行业红字冲正发票怎么做凭证
  • 公司外来人员进入公司
  • 母子公司有什么关系
  • 发票已开款项未入账有什么影响?
  • 城建税免征怎么记账
  • 开专票需要对方是一般纳税人吗
  • 税控系统服务质量调查报告
  • 企业发放防暑降温物品依据
  • 服务业增值税如何计算
  • 小规模纳税人增值税政策
  • 合同负债属于什么费用
  • 小型纳税人个人所得税
  • win11开机蓝屏怎么解决
  • 补交的所得税会计核算
  • 商业健康保险税优码
  • 非正常损失的进项税额如何计算
  • 研发销售型企业
  • 没收到电费账单怎么办
  • 坏账损失的确定原则
  • 银行存款日期和起息日期不一样
  • PHP:oci_server_version()的用法_Oracle函数
  • 其他生活服务业增值税税率
  • 借条字迹不清楚有效吗
  • 最小型笔记本
  • 现金折扣的会计分录处理
  • 房地产企业以房产对外投资需要交什么税
  • 开发的php程序如何发布
  • 共管账户可以转账吗
  • vue框架是什么样子的
  • html动画教程
  • 前端实战培训
  • 甲公司向其控股60%的子公司捐赠货币资金3000万元
  • 农民工专用账户回执单
  • 织梦如何采集文章
  • 汇票收入会计分录
  • 织梦安装步骤
  • pycharm折叠代码块快捷键
  • 保险支票托收
  • 经营成本包括五项内容
  • 企业哪些进项税抵扣
  • 电梯折旧费计算方法
  • 走逃失联企业管理办法
  • 航天信息全额抵扣分录
  • 在外地设办事处需要办什么手续
  • 资金占用费如何计算企业所得税
  • 什么情况下增值税发票不能抵扣
  • mysql索引数据结构有哪些
  • win7注册表有什么用
  • win7/win8.1/win10系统下如何配置Java环境变量 Java环境变量的配置教程介绍
  • 笔记本电脑自动断开
  • Windows XP英文版序列号
  • 剑网端游吃电脑配置
  • macbookpro怎么删除快捷方式
  • win8超级按钮在哪
  • unity 3d教程
  • 如何用bat删除指定文件
  • 文件上传的三个条件
  • python的遍历
  • 浏览器环境下的事件循环
  • jq easyui
  • jquery当前时间
  • python系统监控
  • 残疾人就业保障金减免政策2022
  • 国家税务总局定额发票查验平台官网
  • 如何查询车辆购置税
  • 开电子发票流程步骤
  • 电子税务局怎么缴纳社保费
  • 税务机关绩效管理十年变化
  • 辽宁朝阳丧葬费标准2022
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设