可编程管线到底是东西?

老被人问及可编程管线的问题,可编程管线在cocos中有哪些应用。

是一个做 2D 游戏用不到,做 3D 游戏不需要用的东西

2赞

是一个做 2D 游戏用不到,做 3D 游戏不需要用的东西

1赞

一个可以吹上天的,但实际开发中用不到的

那自定义渲染管线又是什么东西

首先要明白,可编程指的是给GPU编程。最简单理解就是支不支持shader编程,支持则是可编程渲染管线,不支持就是固定的。
当然这种理解方式只是简单的,有可能底层是支持的,但是引擎并未封装,或提供可用,易用的接口,所以实际使用起来也不支持顶点和段着色器编程。

可编程管线是和固定管线相对的。
早期的显卡只能通过一些API设置来实现图形渲染,我们把这个方式叫 固定管线。
后来,显卡支持了脚本,用户可以编写一些代码片段来实现渲染效果。
显卡上执行的脚本,我们也把它叫 Shader。

所以,抛开其他细节不说,你可以理解为,Shader 管线。 而现在你见到的引擎中的管线,都是可编程管线。固定管线早就退出历史舞台了。

2015年之后,可编程管线和固定管线这两个词就很少被提及了。 当我们说 渲染管线时,指的就是可编程管线。

如果不是为了讨论历史,我觉得不应该再提到“可编程管线”这个词。

1赞

我的认知中恰恰相反,shader 一直都叫shader,最早听到可编程管线好像 元神的时候,说是什么新技术。

那会不会是在说Unity的 SRP/URP/HDRP

表层通俗点讲就是:原本顶点着色器片元着色器是不能改的。
现在底层暴露了两个着色器给你,本质是“两个代码段”,你可以修改这个代码段来实现更多的效果。


那边为什么unity builtin 是固定管线呢。

就是你在使用Unity的内置管线时,由于代码不是开源的,你没办法改,所以叫固定管线。
对于 Cocos 来说,由于内核是开源的,都是可编程管线。

builtin是内置的意思。所谓内置,可能就是不让你去改。反正我不懂Unity,我瞎猜的

简单点说,你想做个消融特效,以前你得靠美术,现在你可以靠shader实现

现在需要让美术用shader实现

有几个美术 会写shader

所以在面试的时候,可以将 “ 可编程管线 ” 直观理解为 “shader ” ???? :face_with_monocle: :face_with_monocle:

我觉得人家问的应该是可编程渲染管线(srp)。

Cocos的话就是CRP

CRP 又是什么东西。