《Unity Shader 入门精要》 大神博客 https://blog.csdn.net/puppet_master
这里收录了我学习Shader时模仿或者自制的一些效果,并记录了实现这些效果的技术要点以及我对实现的一些反思与感悟。轻戳技术要点就可以看到SJM在写这些效果的时候遇到的各种奇奇怪怪的问题和他的解决方式喔~~~
其中参考的资料都会在原文中提及,如果是将参考资料的一部分原文原封不动的搬过来的话,会像下面这样使用引用符号括起来~
这里类比一段摘抄的原文
Volume 01 Diffuse 基于兰伯特光照模型的漫反射、高光反射光照 -> 技术要点
- 逐片元漫反射
- 逐顶点漫反射
Volume 02 Texture 纹理的简单应用 -> 技术要点
- 简单纹理映射
- 简单法线纹理映射(逐渐加大物体表面凹凸程度)-> 技术要点
- 渐变纹理 -> 技术要点
Volume 03 Alpha 透明效果 -> 技术要点
- 透明度测试(在立方体上挖洞) -> 技术要点
- 透明度混合 -> 技术要点
Volume 04 ForwardRender 渲染路径、阴影 -> 技术要点
- 基于ForwardAdd实现多光源照射 -> 技术要点
- 阴影的接受与投影 -> 技术要点
Volume 05 CubeMap 立方体纹理 -> 技术要点
- CubeMap实现天空盒的反射 -> 技术要点
- 玻璃效果的折射 -> 技术要点
- 火焰扭曲的折射效果 -> 技术要点
Volume 06 VertexChange 顶点变换 -> 技术要点
- 序列帧动画 -> 技术要点
- 广告板 -> 技术要点
在不使用广告版的情况下是这样的:
- 广告板+序列帧动画(可以将2D动画移植到3D游戏中)
在不使用广告版的情况下是这样的:
原图:
- 高斯模糊
- Bloom
- 运动模糊(基于当前帧与上一帧混合的方案制作)
- 基于边缘检测进行描边(使用屏幕像素值和sobel算子判断边缘)
- 运动模糊(使用矩阵变换和深度重建世界坐标)
- 基于高度的雾效(使用射线+摄像机位置+深度重建世界坐标)
- 基于边缘检测的转场效果(基于噪声、uv变换、边缘检测)
- 基于边缘检测的子弹时间效果(基于重建世界坐标、噪声、uv变换、边缘检测、mask图)
- 仿动画Revisions ED中人物以线条形式投影到大楼上的效果(虽然跟动画里效果差了十万八千里就是了)
第二版,加上了_Time变量和噪声使线条呈不规则运动(依旧不像):