建议加上compute shader, tesselaation shader, geometry shader在cocos中使用的相关文档。
没有获得深度图eg
对。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相关算法。
- 构建自定义管线有固定消耗(运行、内存占用等)。
- 填充uniform buffer有一个收集过程。
- 算法较为复杂,代码比较多。
新管线复刻了原管线的所有功能,目前看起来固定消耗并不大,在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.点赞点赞




