Unity&Shader高级案例篇—图形命令缓冲

时间:2023-02-06 21:55:39

一、前言

上一章讲的到底有什么用呢?带着此疑问你可以耐心的看看这篇的介绍。继上一篇文章点击打开链接,本篇其实算是Unity中渲染管线的一个拓展。当然也要在理解了上一章的内容之后看这篇的例子就会有一个形象的概念。在Unity5中已经有了很多开发者可见的图形渲染功能,诸如标准着色器(Standard Shader)、实时全局光照(realtime global illumination)、反射探测器(reflection Probes)以及新的光照贴图(lightmapping)工作流等等。除了典型的优化,比如多线程光照剔除。Unity还提供了一些可以扩展的渲染管线—图形命令缓冲,如此继上一章就可以看到在Unity中摄像机的渲染路径的详细渲染过程,如图所示。 Unity&Shader高级案例篇—图形命令缓冲

这个图形命令缓冲区到底有啥用,比如,你可以在延迟渲染(deffered Shading)的几何缓冲区额外的渲染一些物体。 文章中的工程下载地址:https://docs.unity3d.com/530/Documentation/Manual/GraphicsCommandBuffers.html

二、模糊的折射效果

效果图如图所示,这个效果是在摄像机渲染之后能看到,Unity&Shader高级案例篇—图形命令缓冲
如果你在Scene视图里面看到的将会是下面的图的效果,即没只有表现透明而没有实际折射效果。
Unity&Shader高级案例篇—图形命令缓冲另外,这个渲染效果中不但可以控制模糊的效果,而且透明折射的清晰度也是可以调节的。这个是摄像机的默认渲染路径正向渲染渲染的。

三、延迟着色中的自定义区域光

这个效果图如图所示,这是一系列的自定义形状的区域光,摄像机的渲染路径必须为延迟渲染(Deferred Shading)Unity&Shader高级案例篇—图形命令缓冲
如果换成了正向渲染(Forward Shading)就得不到正确的效果,如图所示为摄像机渲染路径设置为正向渲染之后
Unity&Shader高级案例篇—图形命令缓冲
这些自定义的光源都是在所有正常延迟着色器通道之后进行渲染的

四、延迟着色中的形变贴图(Decals in Deferred Shading

这个例子也是非常有意思的一个应用,贴图可以在物体中产生形变而始终附在物体表面,效果如图所示Unity&Shader高级案例篇—图形命令缓冲
当然,摄像机的渲染路径要设置成延迟渲染,如果设置成正向渲染将看不到这些贴图,如图所示
Unity&Shader高级案例篇—图形命令缓冲