位置: 编程技术 - 正文

cocos roadmap

编辑:rootadmin

推荐整理分享cocos roadmap,希望有所帮助,仅作参考,欢迎阅读内容。

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

Cocos2d (v.3.0) rendering pipeline roadmap

(the vision)

The way currently Cocos2d does rendering is good but it is beginning to feel somehow antiquate and moreover it doesn’t actually leverage modern multi core CPUs so popular nowadays on most modern tablets and mobile phones.

So we want to re design Cocos renderer, for making it more performing, elegant, scalable, flexible but still simple to use and to understand. Also we want to maintain that same familiar API that current Cocos2d users will feel immediately comfortable with, without having to bother about what’s changed or new under the hood.

We will do this maintaining the same key cornerstone concepts Cocos2d users get to know and like as Scenes, Nodes, Layers, Sprites.

What (the goals)

Here is a high level view of the new features and improvements we would like to achieve in Cocos2d v.3.0:

Decouple the scene graph from the renderer

Visiting nodes issues graphics commands and put them on a queue, but doesn’t actually invoke any OpenGL rendering code

Viewing frustum Geometry culling

Sprites (and geometries more in general) not visible from the camera’s point of view be automatically removed from the current frame and not rendered

Rendering on a thread

The execution of all the rendering commands (i.e. OpenGL calls) will be moved to different thread than the main one (this will allow for better parallelism and usage of more than one CPUs cores where possible)

Automatic batching

Efficiently reduces the number of draw calls (automatically) batching them together when possible (i.e. sprites using the same material)

(Node based) Customizable rendering

As in the current version of Cocos, users will still be able (if needed) to customize rendering on a per node basis, calling OpenGL commands directly, disregarding the official renderer (but possibly incurring on worst performances)

How (the plan)

Central to the new design is the notionCommandQueue. While visiting a node, rendering will not call OpenGL commands directly anymore (as currently is the case); it will instead push CocosGraphicsCommands to a queue. Commands In the queue will subsequently be read by the rendering backend, processed as needed and pushed to the actual rendering API (i.e. OpenGL) (see picture)

The rendering backend (running on his own thread) will in turn pop graphics commands from the queue, process them and actually execute them. Any locking or CPU expensive OpenGL commands will be then executed from the back-end thread, letting Cocos’ main thread free continue working on parsing the scene graph or doing other non rendering related tasks. This will help parallelism and will allow for using multi core CPU’s (see picture)

With Cocos2d-x 3. we also want to introduce the concept ofautomatic batching. In fact we believe reducing the number of draw calls and render device state changes will improve drastically rendering speed.

cocos  roadmap

In order to achieve very good batching, we would like to introduce also a new concept of “attributes” for Layers (formally CCLayer). There are going to (at least) 3 new Layer attributes:

Unordered

Static

Batch

Unordered Layer (formally CCLayer)

We want now focus on Unordered Layers, which are going to help achieving auto batching for improving rendering performance.

Rendering order in Cocos2d is dictated by the “order” nodes are arranged in the scene graph (see picture)

This is still going to be true still in V.3.0 unless the Layer is tagged as Unordered.

The Unordered attribute will instruct the Layer to disregard rendering order for all of his children (see picture)

The graphics commands will then be put in the CommandQueue and a special “unordered tag” will be place in the command queue as well for instructing the rendered to disregard the order and re arrange graphics commands so to render all the primitives using the same material in one draw call. Rendering all primitives (that use the same “material”) in one go will make rendering much faster, especially on mobile devices.

Static Layer

Layers tagged as static, will be treated as if all children will not going to be translated/rotated/zoomed (transformed) during the entire lifespan of the layer. This will allow Cocos performing expensive operations as matrices concatenation or computing culling information (i.e. quad-tree) only once (typically before the first rendering pass) improving drastically performance. Note that sprites in a static Layer can still be “animated” as far as they’re not transformed or scaled.

Batch Layer

A batch layers will behave very similarly to how a Batch Node (CCBatchNode) currently works in Cocos2d. All the children of a batch layer will HAVE to use the same “material” thus allowing the front end to combine all the draw calls for that layer in one single one. (Erroneously) Adding children that use a different material to a Batch Layer will trigger an Assert ().

Automatic Culling

To do

Rendering context (RenderBucket, RenderTarget, Camera, viewport)

To do

Rendering and materials system

To do

Customize rendering for nodes

To do

cocos2d-x 引擎分析:如何实现跨平台 怎么样使用Cocos2d-x快速开发游戏,方法很简单,你可以看看其自带的例程,或者从网上搜索教程,运行起第一个SceneHelloWorldScene,然后在HelloWorldScene里面

/*--------------创建一个Scene的2个示例--------------*/ //第一种:创建一个普通的Scene//从App入口AppDelegate找到这样两行代码://创建一个Scene对象的指针autoscene=HelloWorld::createScene();//导演运行这个场景(第一次

关于cocos2d-x-3.x版本环境的搭建和自己创建工程的步骤 (一)环境搭建RichardMillings--::次阅读最近3.2版本更新出來了!这是自2.x分支以来修复了超过个bug,3.2版本是目前为止,官方发布的最稳

标签: cocos roadmap

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

上一篇:各种回调:定时器schedule、普通回调callFunc、菜单回调menu_selector、事件回调event_selector(回调阶段)

下一篇:cocos2d-x 引擎分析:如何实现跨平台(cocos引擎教程)

  • 更正申报后可以作废吗
  • 企业专家咨询费标准
  • 有限合伙企业应当
  • 房地产公司支付工程款账务处理
  • 银行的划分标准
  • 印花税缴款了发现报错了怎么办?
  • 供应商转让合同
  • 支付短期借款计入什么科目
  • 工资分两次发为什么分两次扣税?
  • 公司开年会的费用怎么入账
  • 发票纳税人识别号错了能重新开吗
  • 调用核心征管失败是什么意思
  • 税务局金四上线
  • 发票管理政策
  • 单位个人实际困难怎么写
  • 利息支出手续费
  • 增值税代扣代缴抵扣
  • 销售商品代垫的运杂费会计分录
  • 应向客户收取的出租包装物租金
  • 给客户的回扣做账时怎么写情况说明
  • 进口增值税13可以抵扣多少
  • 未办土地有偿使用手续多少钱
  • 公司注销 缴税
  • 购进货物无偿赠送其他单位
  • 已签收的电子银行承兑汇票截图给别人有风险吗
  • 苹果14如何强制关机重启
  • 小规模纳税人买车可以抵税吗
  • 申请出具商标注意事项
  • 收购子公司股权现金流
  • 天猫的软件服务费指的是什么
  • win11企业版激活
  • gnu/linux
  • 购买货物现金付讫的会计分录
  • 成都划拨土地出让金计算
  • csrss是什么程序
  • 销项税和进项税抵扣的会计分录
  • 发票刮出来的奖有兑奖时间
  • 用php生成一个txt文件
  • 作用域和作用域链的理解
  • php 微信公众号自定义菜单
  • web开发百度百科
  • mysql导出结果
  • 织梦cms为什么不维护了
  • 电子回单可以入档案吗
  • 劳务是什么单位
  • 食堂账目怎么做
  • 企业研发费用资本化相关公司
  • 公允价值怎么读
  • 普通发票可以抵扣吗
  • 取得虚开增值税专用发票罪量刑标准
  • 收到的承兑怎么转给别人
  • 城镇土地使用税减免税政策
  • 对外担保的效力
  • 开办费企业所得税处理
  • 国税局个人所得税怎么申报
  • 红字发票的开具需要把开始的发票取回作废吗?
  • 个人借款产生的利息怎么计算的
  • 价外费用计入哪个科目
  • 鉴证咨询服务费可以抵扣吗
  • 存储过程的输出参数有且只能有一个
  • sql server触发器的编写与使用
  • 清除cmos后电脑不启动
  • windows无法启动,可能原因
  • 系统 启动速度慢怎么办
  • 利用windows资源管理
  • centos 7安装教程(图文详解)
  • ttf字体怎么转itz
  • win8电脑屏幕亮度调节在哪里设置
  • win10大更新2020
  • linux中keepalive
  • win7无线网络显示x无法启用
  • 实例讲解命局与大运流年作用
  • node.js gui
  • 使用image控件显示图片
  • js怎么拿到表单提交数据
  • 小规模增值税怎么计提
  • 国家税务总局党委委员名单
  • 一手房有契税和个税吗
  • 亦庄税务局电话号码
  • 我国国家宪法日是每年的十二月几日
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设