参考资料 : 

Shader介绍 https://blog.csdn.net/a133900029/article/details/80553642

屏幕画线,线框渲染 https://blog.csdn.net/u013917120/article/details/79246711

LineRenderer画线  https://www.cnblogs.com/feiyanstudio/articles/7326672.html

unityShader常见函数  https://blog.csdn.net/laverfever/article/details/23962411

unityShader中的三大测试  https://blog.csdn.net/qq_38651460/article/details/80248021

 

1.RenderState  分为公共状态  和  Pass通道专有状态

<1> Cull  Back | Front | Off

<2> ZTest  (Less |  Greater   ...) 比对深度缓存 , 判断是否渲染

<3> ZWrite  On  | Off  是否记录深度  Off 通常用于半透明物体 

<4> AlphaTest (Less  | Greater)    透明时就不用混合模式了  节约运算

<5> Blend (SourceBlendMode    DestBlendMode)    设置alpha混合模式

<6> Fog {Fog Commands}

{

    Mode Linear

    Color (1,1,1,1)

    Density 1000

}

<7> ColorMask RGB

<8>  Offset  设置深度偏移  当深度相同时

<9> Color  设置顶点光照关闭时的颜色------------------------------------------------------关键词  顶点光照  ,  有延迟光照  正向渲染  顶点光照

还有许多状态,用于控制光照状态等,用于Pass通道专门定制的状态

 

2. 关于顶点着色器 和 片段着色器的一个思考----------片段着色器是如何处理顶点处理器传来的数据的

https://blog.csdn.net/linuxheik/article/details/78644763

https://blog.csdn.net/chunxiao860815/article/details/50550155

3.关于MVP矩阵的作用说明

https://blog.csdn.net/a133900029/article/details/80558765

4.关于关键字uniform

uniform float4 _ZeroPoint;
uniform float _Distance;
uniform float4 _ColorNear;
uniform float4 _ColorFar;

https://www.jianshu.com/p/94acad173437

5.shader中的屏幕坐标,视口空间,设备空间,裁剪空间

https://blog.csdn.net/linuxheik/article/details/86691167

6.卡通着色

https://blog.csdn.net/wolf96/article/details/43019719

https://blog.csdn.net/qq_24153371/article/details/81837905?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromBaidu-1&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromBaidu-1

7.关于构建切线空间TBN矩阵   tangent.w  unity_WorldTransformParams.w的用处

https://forum.unity.com/threads/what-is-tangent-w-how-to-know-whether-its-1-or-1-tangent-w-vs-unity_worldtransformparams-w.468395/

 

8.镜面反射实现,裁剪平面变换,裁剪反转

https://www.jianshu.com/p/30291574ab6a

 

9.tex2Dproj与tex2D的区别

float4 uv1 = i.ref; uv1.xy += bump * _ReflDistort;
//half4 refl = tex2Dproj( _ReflectionTex, UNITY_PROJ_COORD(uv1) );
half4 refl = tex2D(_ReflectionTex, uv1/uv1.w);

 

10.自定义生成网格,比如用于制作拖尾

     http://www.xuanyusong.com/archives/780

     热扭曲效果

     https://blog.csdn.net/puppet_master/article/details/70199330

 

11.Camera Clear Flag

Solid Color:

清空前面全部相机DepthBuffer

清空前面全部相机ColorBuffer,使用Background 属性的颜色代替

Skybox :

清空前面全部相机DepthBuffer

清空前面全部相机ColorBuffer,使用Skybox 天空盒颜色值代替

Depth Only :

清空前面全部相机DepthBuffer

保留前面全部相机ColorBuffer

Don’t Care :

保留前面全部相机DepthBuffer

 

12.cg标准函数

https://blog.csdn.net/puppet_master/article/details/52605643

 

13.Unity Projector 投影机

When rendering a projector Unity sets two extra matrices, _Projector and _ProjectorClip.
_Projector maps the x and y axis of the projector's clip space to u and v coordinates that are typically used for sampling a radial falloff texture.
_ProjectorClip maps the z axis of the projector's view space to a u coordinate (possibly duplicating it in v) that can be used to sample a ramp texture that defines the projector falloff with distance. The value of u will be 0 at the projector near plane and 1 at the projector far plane.

Edit: These transforms will be stacked on top of the model and projector view matrix so you just multiply them by your object space vertex position to get the correct result.

 

14.屏幕后处理原理

使用特定的材质去渲染一个刚好填充整个屏幕的四边形面片,这个四边形面片的四个顶点就对应了近裁剪面平面的四个角

 

15.贴花制作,生成网格,自定义裁剪,从深度图重建世界坐标,Reverse-Z等,CommandBuff的意义实例---真·Deferred Decal

https://blog.csdn.net/puppet_master/article/details/84310361

https://blog.csdn.net/puppet_master/article/details/77489948

 

16.MRT

https://blog.csdn.net/ylbs110/article/details/53457576

 

17.自定义延迟渲染,默认是standard

https://blog.csdn.net/qq_38275140/article/details/86360563

 

18.卷积

卷积可以当成是一种新的运算,在图像处理中非常常用,可以实现边缘检测和模糊等操作

https://www.zhihu.com/question/22298352?rf=21686447

博客中这句话的意思:这样相当于实现了 [公式] 这个矩阵在原来图像上的划动(准确来说,下面这幅图把 [公式] 矩阵旋转了 [公式] ):

将卷积矩阵绕中心旋转了180度,因为卷积这个运算的运算过程是 :

在对图像中的某个像素进行卷积时,我们会把卷积核的中心放置于该像素上,

翻转核之后再依次计算核中每个元素和其覆盖的图像像素值的乘积并求和,得到的结果

就是该位置的新像素值

 

19.高斯模糊,卷积计算的优化

https://blog.csdn.net/puppet_master/article/details/52783179

这句------

假设屏幕分辨率是M*N,我们的高斯核大小是m*n,那么进行一次后处理的时间复杂度为 O(M*N*m*n)。

我们的高斯模糊操作,如果整个图像进行采样,那么会进行M*N*m*n次采样操作,而如果是先横向,再竖向,那么我们在横向方向需要M*m*n次采样操作,而在竖向方向需要N*m*n次采样操作,总共的时间复杂度就是 O((M+N)*m*n)。从M*N降到M+N,一般地,M和N为屏幕分辨率,比如1024*768,那么,这样一个操作就大大降低了时间复杂度!!!不过需要一点点空间作为中间结果的缓存,不过这点缓存对于性能的优化还是很值得的。

写错了,实际上是将时间复杂度降低到了O((m+n)*M*N),然后就是计算过程并没有构建卷积核矩阵,而是按照卷积的思路进行计算,简化了计算过程

 

20.GPU精粹系列导读

https://blog.csdn.net/poem_qianmo/article/details/79689041

https://www.bilibili.com/video/av79798154/

 

21.粒子shader

https://blog.csdn.net/wjj616806129/article/details/96006771

 

22.特效shader护盾/能量场交界高亮特效

https://blog.csdn.net/lengyoumo/article/details/105398606

 

23.偏导数的应用ddx,ddy

https://blog.csdn.net/chy555chy/article/details/80177015