Unity Render Pipeline 渲染管线(漫画)

扣来的图,分享。先看下整体大局。没有考虑贴图。


Unity Render Pipeline 渲染管线(漫画)_第1张图片


大致这样些过程: 

Load====>Draw Call ====>Vertex Shader====>Culling====>Rasterizes====>Pixcl/Fragment Shader====>Z-test====>Blending====>Stencil-test====>Color Mask====>Color Buffer====>Draw2Screen


说明下先。


Z-test、Blending、Stencil的先后顺序在不同的体系中可能会有所不同。这是由于Z-test最为常见最为重要,而Blending和Stecil是可选的,所以各自体系优化策略不同,有的现代GPU,Z-test甚至在Pixcl Shder之前


Load过程如下,是将模型文件及相关资源(贴图)从硬盘载入到内存中,CPU将需要绘制的信息,组织成为RenderState放入通过Command Buffer 与GPU交互,放入VRAM(GPU的内存中)。再通过Draw命令调用GPU进行渲染。

Unity Render Pipeline 渲染管线(漫画)_第2张图片

一次调用Draw命令就是一次所谓的DrawCall并且在unity中,它会组织具有相同RenderState相同的材质和光照)的物体顺接着调用Draw命令。就是常见的unity自动batching,也是为什么有些优化插件合并贴图和材质的原因

Unity Render Pipeline 渲染管线(漫画)_第3张图片


接着就是Vertex Shader的干活。没有自定义的特殊需求的话,就是做一些坐标变换,













你可能感兴趣的:(unity基础,光照模型)