【已发布】Cocos Creator 3.8 社区公测贴

借这个帖子,说说想法,现阶段官方推荐3d项目需要不错的画面和不错的功能的都迁移到最新的render graph。早期在cocos刚刚推出render graph的时候我们就基于render graph开始定制功能。但是当时第一版简直不正常。比如地形不渲染啊,透明材质不渲染啊,摄像机矩阵传递bug啊。基于render graph定制的复杂管线在runtime下跑得越久 cpu就越炸,整个render graph的依赖分析是随着时间增长而增长的,然后里面各种render graph data的stringify和parse,各种用超大graph data做超大key的实现,等等各种问题。当时还没有pipeline cache。所以整个render graph的每帧重建很多对象都是疯狂创建的。然后我们对于cocos render graph的研究止步了,因为当时还不具备release的能力。贴一张图证明一下我不是瞎吹牛逼。的确是做过。
image
因为当时在render graph上遇到了整个render graph的依赖分析是随着时间增长而增长的巨大问题(从fps和chrome的dev面板上实测而来)而放弃转而采用基于cocos经典管线的方式开始构建适用于项目的渲染管线。我们在cocos经典管线上投入很多,实现了以下功能,
1,超级好用的后处理,bloom,colorgrading,dof,edgedetect,fxaa,grain,smaa,ssao,tonemaping等等
2,pre z pass
3,grab pass
5,非常方便的使用dephtmap和grabmap的方式
6,超大包含很多功能surface shader,比如风吹动顶点动画,下雨打上去的涟漪,覆盖的雪,hue shift等等
7,河,湖,海
8,在opaque和transparent中插入一个cutout。利用pre z pass做overdraw 优化(听起来很奇怪)等
9, 强大的材质系统下各种定制的shader就不说了

但是现在cocos最新版render graph开始支持compute shader和在第一版到3.8中做了很多优化,以及要在原生上使用的话,需要采用render rgaph。因为cocos native整个都是建立在render graph上的。我们打算把功能迁移到render graph上去。所以我上面也说cocos native editor preview目前不算是试验品算残次品,也是希望功能要是正常的。对于做2d游戏的研发来讲也许无所谓。但是对我们来说很重要。因为你提供了compute shader。但是in editor这个功能却是残次品,这意味着研发每次都得发包才能观察是否有问题?毕竟一个空场景在editor中preview都需要大量的加载时间,更不说我们较大的场景了,bug飞起。编辑器随便搞两下就闪退。所以现在editor中preview我们是不用的,但是接下来如果用了compute shader要怎么办?我现在还是在纠结。

来一张图镇贴


cocos render graph和我们自定义的管线后处理对比

再说点cocos 3d体验,cocos 到目前3.8版本为止,已经初步具备了制作复杂3d游戏的能力。我从cocos2dx,cocos js到cocos 1.0到现在cocos 3.8一路走来。做过的项目大小无数。见证cocos的巨大进步。就差一个shader graph了。

对于cocos即将到来的船新vfx和render graph,gpu driver,compute shader能力保持强力的好奇心和应用到我们项目中的提升画面的巨大需求,再次感谢cocos团队的努力。

游戏画面就不展示了,到了要展示的时候再展示。 :heart_eyes:

7赞

这也是为什么我们在 native in editor 上持续投入的原因。3.8 阶段会持续修复的。

我是学生,要求你展示,你不要不上道

你好,可以尝试下这里描述的方式看是否可以解决 macOS 解决 too many open files – 孑枵 Abreto

我使用了和你一样的编辑器也没有复现出材质effect下来列表没有选项的问题,方便给个DEMO嘛?

不是应该在软件的层面上解决问题吗?

需要先确认原因,目前只有少数人反馈这个问题而且都是 mac 有系统差异我们这边没有机子有复现这样的问题,没有确认原因如何修复?

好吧 我先试下

可以构建日志也发一份我看看吗?我看下是什么阶段出现的错误

有demo我早就贴啦。就是我也没办法简单复现。不知道触发了什么神奇的bug。我只是项目里面是这个样子。image 算了,我目前用手动拷贝effect uuid的方式也是能写的。麻烦是麻烦了点,能用就行。

添加meshcollider的最好是自动把当前node上的材质里面的mesh copy过去。就向在地形上添加一个terrain collider一样。否则还得拖一遍。

用你说的操作方式没有复现,你这边的预制体B有什么特别的吗,方便的话把文件发一下谢谢

image 其实你点击编辑器里面刷新所有effect,有报错的effect都会暴露出来的,比如刚刚你们把材质系统里面number.chunk的函数迁移到到common-define里面。我们启动编辑器的时候如果不点击刷新所有effect就不会报错的。或者不点击使用了number.chunk的effect文件也不会报错。所有点击刷新所有effect文件是可以检查effect文件错误的。但是现在我已经全部fix了,effect文件已经无问题。只不过下拉菜单出不来而已

全部都是你们官方hello world项目的demo,刚才新建项目,进入项目界面时候卡了一下,进入后控制台如下:


hdcSky.FBX.rar (24.9 KB)

最重要的是自此之后创建hello world 2D demo都会出现这个问题,昨天创建没出现这种问题,不清楚什么问题

我这也没法复现了,但是出现了另外一个问题,比如abc都是预制体,大于号>表示“嵌套”,他们之间有一个关系:a>b>c,同时在层级管理器中有一个跟预制体a关联同步的节点A,
下面开始操作:在c中增删子节点并且保存后,无法在层级管理器中的节点A上面反馈出来,需要在进入到c的父节点b点击一次同步才能在层级管理器中的节点A反馈出来,特别是删除c预制体的子节点时候会明显测出来,不知道是否是有意这样做的?也就是假如我有一个嵌套预制体a>b>c>d>e>…>m>n,假设我对尾部的预制体节点n的子节点进行增删节点,如果我想要在层级管理器关联a预制体的节点实例A中看到n的最新子节点列表详情,,那么需要递归的到n的父节点预制体m中去点击同步按钮,接着不断地逐个打开n的父节点预制体,逐个进行同步,不知道我这么说你看懂没?

多选以后,再单选一个图片,拉九宫的按钮消失

九宫格不支持多选编辑

这个是bug,感谢你的反馈,我会尽快修复

execute-scene-script的args传入数组报错,我args里面传入的是string和bool类型,3.6.3是好的

image

这个接口是没有改动过的,根据你的报错信息看,可能你的方法返回的是buffer,这个是无法在编辑器中透传的