参考资料 :
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
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