#01 着色器手记 Notes from shaders
很喜欢《Unity Shader入门精要》12.4高斯模糊章节对知识点的串联!!
12.4高斯模糊
C#中的OnRenderImage函数 有3种不同的实现,分别对应
进行多次高斯模糊,需要借助 ”临时缓冲区“
- buffer0,buffer1
RenderTexture buffer = RenderTexture.GetTemporary(rtW, rtH, 0);
RenderTexture.ReleaseTemporary(buffer);
- for循环
高斯核的对称性,5x5的核
- 可以只用5维数组来存放纹理坐标
- 可以分为水平和竖直两个方向进行采样翻两倍,这么做比逐个采样节省内存
- for 循环,uv数组的索引值设计精巧(书中索引值有误,请查看12.4的勘误)
- 乘权重值(章节开头的5x5格子的权重值,离中心越近权重越大),叠加采样结果
CGINCLUDE ENDCG里可以存放
- 变量
- 其他#include文件
- 多个Pass之间通用的frag vert函数
给Pass命名,就可以在其他shader里重复使用这个Pass
- 例如 Bloom效果在高斯模糊的基础上进行,接下来编写 Bloom可以使用高斯模糊的 Pass