【Unity / Shader Graph】常见节点原理 | 01 Graphics pipeline

【Unity / Shader Graph】常见节点原理 | 01Graphics pipeline

图文内容来自Youtube@Ben Cloward
https://www.youtube.com/watch?v=ZEXVQgbWxQY

在Unreal中理解Vertex Processor和Pixel Processor

在这里插入图片描述

  • Graphic Shader 作用于Programmable Vertex Processor 和 Programmable Pixel Processor两个模块
  • 在Vertex Processor上编辑比在Pixel Processor上编辑的代价更小
  • 在虚幻引擎中,结点VectexInterpolator的作用类似于图中的Rasterization & Interpolation。可以理解为如果我们手动调用这个结点,在Vertex Processor中对于per vertex的计算结果会被先解释为对应的per pixel的结果,再进入Pixel Processor的阶段。然而此时我们已经有了pixel级的计算结果了。因此我们不需要在Pixel Processor中进行计算。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    第一行(Base pass shader)表示的是在Pixel Processor上的执行次数。第三行(Base pass vertex)表示的是在Vertex Processor上的执行数。
    可以看到,我们的计算操作消耗152-148 = 4次执行次数。
    当我们不使用VectexInterpolator去提前完成这一解释过程时,在VertexProcessor上的执行数是111。而使用了VectexInterpolator节点后,在VertexProcessor上的执行数是115。
    这相当于把原先需要在Pixel processor上的执行工作丢给了Vertex processor。

在Unity中

在这里插入图片描述
而到了Unity中,一切变得更容易理解。Vertex(红色部分)接收到的运算(连到上面的线)会在VertexProcessor被完成;而Fragment(蓝色部分)接收到的运算会在Pixel processor上被执行。

但是在Unity中,并没有上述的类似虚幻引擎中VectexInterpolator的优化方法。

猜你喜欢

转载自blog.csdn.net/lionkawoo/article/details/126563092