2.4的原生平台很多都重写了,跟非原生的不一致,烦死了
js层写的fillBuffer就没用,因为原生层组件有自己的fillBuffer,压根不会来调用你js层的fillBuffer
我的方法是兼容native的。
不要把逻辑写到fillBuffer里,native是通过renderData获取顶点数据。
另外getVfmt()、getBuffer()这几个方法和文中保持一致即可。
请教下,有没有办法在一个组件里生成使用多张纹理的顶点?一部分使用纹理A,一部分使用纹理B
非原生的我是在fillBuffer里按个flush,但原生平台不行啊
顶点格式里加一组uv就可以了。
可以参考我的另一篇文章,文中第二部分用的纹理遮罩方法。
多谢指点,我去看看
Native报错
Simulator: scripting\js-bindings\auto\jsb_renderer_auto.cpp: Line: 3772, Function: js_renderer_Assembler_setRenderDataList
Simulator: sembler_setRenderDataList : Invalid Native Object
这个有可能是new RenderData的时候导致的吗
你可以下我的Demo,基于Demo去调整。自己撸一遍要试错很多次。
因为我是用2.2.0的creator写的,看了下官方引擎assembler的部分有所改动,Invalid Native Object估计是c++加载释放不同步,我去看一下官方怎么改的再试试吧
我成功了,多谢大佬指点
sixsixsix
mark!!!
请问大佬有没有粒子合批的思路
// cocos2d\particle\particle-system-assembler.js
fillBuffers (comp, renderer) {
if (!this._ia) return;
const PositionType = cc.ParticleSystem.PositionType;
if (comp.positionType === PositionType.RELATIVE) {
renderer.node = comp.node.parent;
} else {
renderer.node = comp.node;
}
renderer.material = comp._materials[0];
renderer._flushIA(this._ia);
}
每个粒子系统都有独立的IA (InputAssember),renderer._flushIA()
调用会断合批。
你可以考虑自己处理合并掉这些IA的数据。
你遇到的是什么场景,粒子合批价值大吗?偶尔的DC+1不要太在意。
感觉能关注这个问题的都是爱学习的好同学哈哈哈~~,我在这发个招聘广告,独立工作室招人,已经和头条、B站展开合作,资金充沛,潜力巨大,工作氛围好,福利佳,关键是双休哦…(哈哈作为游戏公司双休竟然也是亮点了),项目为重度二次元卡牌类。
现有职位两名:
中级creator工程师(25k-30k)
职责:城建、世界大地图等复杂系统开发,sdk接入等,有较强的性能意识,对工作质量有较高追求,良好的自驱性
高级(资深)creator工程师(30k-35k)
职责:creator引擎优化、定制、升级,要求对引擎有深入了解,精通引擎底层原理,优化开发工具链,提高开发效率,进行突破性技术调研,从技术角度提高游戏品质,提高表现上限
地点:北京中关村知春路附近
以上只是大概基本情况,求贤若渴,有意者速速联系:1ob_vxn5rvr58b@dingtalk.com,具体信息可详谈
提个小建议,招聘信息里加工作室名称、工作地点。
多谢楼主提醒,已加,希望能借楼主宝地招到贤士 哈哈哈,HR推过来的简历太乱了,招不到合适的人,我只能找特殊地方发个消息碰碰运气了
价值大呀,一个子弹上加一个粒子,20个子弹就增加了39个dc
文中提到的“合批”是什么意思,这几天才刚在了解shader相关,找学习资料找到来这里了,很多这方面的东西都不了解。想在2d项目里把图做成梯形这种2.5D的效果。一直没找到如何实现。有说用shader,但一直没思路中
这种?