新管线 CRP 可定制管线,欢迎使用和在本贴反馈!

建议加上compute shader, tesselaation shader, geometry shader在cocos中使用的相关文档。

没有获得深度图eg


大佬有点懵,比如要开启bloom应该用哪个?cc.PostProcess是已经被废弃了吗

2赞

对。cc.PostProcess目前废弃了,会持续支持到下一个大版本。
'Builtin’管线通过BuiltinPipelineSettings控制,勾选Bloom Enable,以及附上builtin-bloom材质。

深度的采样可以参考builtin-pipeline.ts中的_addDepthOfFieldPasses函数。

一般直接将深度贴图的名字设置到RenderPass上就可以,通过addTexture函数。

需要注意的是,RenderWindow自带的depthStencil不能采样。必须管线中自定义的depthStencil。(这是因为WebGL默认framebuffer的depth无法采样)

注意:内置管线的DepthOfField目前有些问题,暂时还未开放。

预计3.8.5会加入compute shader的实验版本。tessellation shader的支持会更晚一些,时间不确定。

geometry shader不会支持。原因是geometry shader在桌面端比较慢,在移动端可能更慢。

参考:

替代方案:

与geometry shader、tessellation shader相比,更推荐使用基于vertex shader的算法。

比如dynamic vertex pulling以及meshlet相关算法。

  1. 构建自定义管线有固定消耗(运行、内存占用等)。
  2. 填充uniform buffer有一个收集过程。
  3. 算法较为复杂,代码比较多。

新管线复刻了原管线的所有功能,目前看起来固定消耗并不大,在benchmark中不突出。

如果后处理流程比较多(几十、上百个RenderPass),可能会有一定影响。按照主流PC性能,耗时应该不超过1ms。

我们会不断完善管线功能,尽可能减少bug,这个需要一定时间。

是的这挺难的

nice,compute shader也包括webgpu的支持吧?应该不是只有native有吧!

WebGPU后端会支持compute shader,希望3.8.5能加入

3.8.4 使用这个BuiltinPipelineSettings组件,是不是只有使用新渲染管线才会生效?

是的。使用新管线,且管线名为Builtin

新管线现在是前向渲染吗?支持延迟渲染吗!

目前只提供了前向渲染,没有内置的延迟渲染。
之后会提供。用户也可以自己编写延迟渲染、Forward+等算法。

有办法在forward后,post process前单独渲染几个物体到一张rendertexture吗

理论上没有障碍,多一个RenderPass绘制场景到RenderTarget,通过layer或者pass name过滤需要绘制的物件。

过滤是不是有点麻烦!因为需要绘制的物体我手中已有确定的集合。

最好是是类似 Unity CommandBuffer.DrawRenderer 这种快速方法。否则是不是又要跑一次sceneCulling:

  for (const model of scene.models) {
       // do something or filter
  }

需要新加个接口,我可以做一版。

okok.点赞点赞

我提了个 issues