位置: 编程技术 - 正文

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

  • 个体工商户开劳务发票税率
  • 城建税多少会减免
  • 业务招待费报销要求
  • 行政单位支出科目中组织事务是什么
  • 资产减值测试是什么意思
  • 房地产开发企业土地增值税清算
  • 出口企业收入分录
  • 筹建期结转损益吗
  • 收到车辆保险返还会计分录
  • 待摊费用跨年冲销如何入账?
  • 特别纳税调整后 需要更正申报吗
  • 企业注销要缴个税吗
  • 普通发票商品名称错了一个字
  • 增资的印花税纳税义务时间
  • 外包服务费税率是多少
  • 预存话费返还怎么操作
  • 进项税转出的会计处理
  • 公务费和业务费怎么算
  • 筹建期间发生的费用计入什么科目
  • 加计扣除10%进项税政策文件
  • 第一次申领发票可以增额吗?
  • 工程发票预交税金规定
  • 净资产回报率的变化
  • windows11蓝牙不能用
  • 存货跌价准备是备抵科目吗
  • 车辆折旧完了以后
  • 微软笔记本
  • win10最新版本22h2激活
  • 其他暂收应付款项有哪些
  • 如何设置路由器步骤要详细
  • 其他应付款怎样结转
  • 计提职工养老保险金
  • 新准则委托代建 不得管理费
  • 小微企业报税后多久缴税
  • 委托加工业务要交税吗
  • ros urdf
  • 电子汇票追索是什么意思
  • 盘亏结转
  • 内存分配理解是什么
  • 户外电源需要要充电吗
  • java泛型方法的使用
  • 纳税申报需要报哪些税
  • 缴税的会计处理
  • 冷饮成本价
  • 非盈利企业怎么做账
  • 企业基金分红具备的条件
  • 出租车公共服务
  • 暂估的原材料用不用记原材料明细账
  • 建筑工程的税务处理
  • 发票种类包括
  • 2018年小规模纳税人
  • 承包经营所得个人所得税计算举例
  • 凭证摘要写错了已结账了怎么办
  • 公司购买的五金怎么入账
  • 专项资金补助经费如何入账
  • 短期借款明细账采用什么格式
  • 资产负债表中的应收账款应根据什么填列
  • 转回小规模
  • 明年发票可以入到今年有什么惩罚
  • 车辆转让怎么开票
  • 房地产开发企业增值税怎么算
  • 一些 T-SQL 技巧
  • solaris 修改用户 主目录
  • 屏蔽系统
  • xp电脑工作组找不到其他电脑
  • linux系统的
  • win8系统怎么重新安装系统
  • win1021h2正式版发布日期
  • ixapplet.exe - ixapplet是什么进程 有何作用
  • windows8介绍
  • win8系统的应用程序在哪里
  • linux配置静态
  • 游戏中的物理 processing
  • opengl基础知识
  • python怎么获取命令行参数
  • jquery示例
  • SQLite之SQLiteStatement
  • jquery 3.5
  • 济宁任城区多大面积
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设