【分享】自定义渲染合批之自定义顶点格式(附 Demo 和引擎源码解读)

感觉能关注这个问题的都是爱学习的好同学哈哈哈~~,我在这发个招聘广告,独立工作室招人,已经和头条、B站展开合作,资金充沛,潜力巨大,工作氛围好,福利佳,关键是双休哦…(哈哈作为游戏公司双休竟然也是亮点了),项目为重度二次元卡牌类。
现有职位两名:
中级creator工程师(25k-30k)
职责:城建、世界大地图等复杂系统开发,sdk接入等,有较强的性能意识,对工作质量有较高追求,良好的自驱性

高级(资深)creator工程师(30k-35k)
职责:creator引擎优化、定制、升级,要求对引擎有深入了解,精通引擎底层原理,优化开发工具链,提高开发效率,进行突破性技术调研,从技术角度提高游戏品质,提高表现上限

地点:北京中关村知春路附近

以上只是大概基本情况,求贤若渴,有意者速速联系:1ob_vxn5rvr58b@dingtalk.com,具体信息可详谈

提个小建议,招聘信息里加工作室名称、工作地点。

多谢楼主提醒,已加,希望能借楼主宝地招到贤士 哈哈哈,HR推过来的简历太乱了,招不到合适的人,我只能找特殊地方发个消息碰碰运气了

价值大呀,一个子弹上加一个粒子,20个子弹就增加了39个dc

文中提到的“合批”是什么意思,这几天才刚在了解shader相关,找学习资料找到来这里了,很多这方面的东西都不了解。想在2d项目里把图做成梯形这种2.5D的效果。一直没找到如何实现。有说用shader,但一直没思路中


这种?

1赞


这种效果,一直想不通是怎样做。背景的通道是一张张图拼的动画效果。左右两边的墙和地面要上另外的图片,但在creator上图片不能搞到梯形

感谢GT分享

感谢楼主
正好碰到类似的问题

最近陆续看到有人问关于粒子系统合批的问题,感觉还是有需求。
Demo工程里新增了粒子系统的合批实现。

目前引擎的实现是每个粒子系统保存自己的粒子属性,有自己的InputAssembler (IA),在渲染时直接提交自己IA里的数据。
Demo的做法是将IA里的数据拷贝到公共buffer里统一提交。

能够合批的前提

  1. 粒子系统之间不穿插其他的渲染组件,如果粒子系统挂在其他节点下面,需要考虑给粒子单独分层
  2. 粒子系统使用相同的纹理、PositionType、Blend Mode

注意事项

  1. 该实现增加了IA数据拷贝次数
  2. 粒子系统合批需要将多个粒子系统的数据集中存放,一起提交,所以会增加内存峰值

综上,对于粒子数量比较多的场合,是否合批需要权宜考虑。

3赞

战术性插眼

看了大佬的注释,上手容易多了

Mark very much!

终于看完了,怎么说呢。简单来说就是大佬nb!!!

用宏定义的方式也可以?是不是可以少重写或者修改一些类?

https://gitee.com/nomat/lcc-render#2如何传递数据到shader中

看起来还是要通过楼主的步骤。宏只是多了个开关

mark mark

大牛,小弟想不透,为啥demo 里要把顶点的color数据去掉? 能不能在保留同时额外加其他自定义参数?

可以保留,只不过演示的shader里用不到color数据。

我保留了color 后,但整个变黑图了, 我把floatsPerVert = 9 , 前五个跟原来设置一样,但后面4个就是a_q 和a_p