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

可定制管线 CRP - Customizable Render Pipeline 将在 Cocos Creator 3.8.4 中正式上线。

在项目菜单->项目设置->图形设置中选择 新渲染管线 即可开启。

全新的可定制渲染管线主要有以下几个好处:

  1. Cocos Creator 3.8.4 版本及以上,引擎内置管线基于 CRP 管线构建,使引擎内置管线和用户自定义管线拥有相同的渲染机制和流程,兼容性和稳定性更强。
  2. 基于 CRP 管线,开发者能够在不修改引擎源码的情况下编写全平台兼容的渲染流程。
  3. 基于 CRP 管线,开发者能够根据项目的需求定制渲染流程,删除不必要渲染过程,节省开销提升性能。
  4. 基于 CRP 管线中的 RenderGraph 渲染架构,开发者可以很方便地复用、增加渲染流程,实现项目所需的高级渲染效果和后期效果。

Cocos CRP 文档地址:渲染管线概述 | Cocos Creator

3赞

新管线有什么缺点吗? :thinking:

Mark!!!

大佬这边遇到一个渲染管线的问题 能看看么
环境光遮蔽HBAO真机小游戏平台无效 - Creator 3.x - Cocos中文社区

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

没有获得深度图eg


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

1赞

对。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能加入