ue的shader和unity的shader学习路线有区别吗？
大一新生，以后想从事游戏开发的技术向TA或者引擎开发，之前找资源一直也就没找到ue的shader资源，看了一下全是unity的，而且没见有什么相关的书籍(除了hlsl），想先从ue入手，求大佬解惑。
首先你要明确 Shader的学习方向，这对于未来的职业规划是很重要的，是更加侧重技术，还是更加侧重艺术。尽管知识面越广越好，但侧重的强项也非常重要，“技术侧重”和“艺术侧重”对与Shader 的要求自然是不同的，学习路线也会有所不同。首先 Shader学习的前置知识点都是一样的，要熟练应用“线性代数”，掌握基本的矩阵变换，光照模型等知识，《Game 101》《Shader 入门精要》里都有讲解，数学方面3blue1brown 的线性代数视频也很推荐。程序上基础的 HLSL/CG语言也是需要掌握的，无论后面深入学习哪个游戏引擎，这些知识都是没有太大区别的。说说“技术侧重”，Unreal Engine 的 Shader其实是一个高度封装的东西，只是留给你一些有限的空间让你用蓝图连连看，或是加入自定义 HLSL 写的函数节点，如果你想要深度优化，或是自定义Shading，需要花费大量的时间去注册自己的 Shader，再编译引擎，所以引擎编程技能是必须掌握的。Unity 3D 的话，虽然 Shader的编程自由度相对较高，但是单单 Shader 还是不够，往后学习的重点的可能会放在 SRP (可编程渲染管线) 和 Shader 的配合上，你会发现Unity 3D的用户总是在忙着定制管线去满足各种业务需求。再说说“艺术侧重”，这方向是需要一点艺术家思维的，不能只是死磕技术，需要练习提升美术素养，要掌握一定的摄影用光技巧，色彩搭配归纳技巧，以及对美术作品的赏析能力。体现在Shader 上则是，可以利用已知的光照模型计算公式，做出别人做不到效果。以 Lambert 光照举例，可能对于“技术侧重”来说，要求是会写 Lambert光照公式就 OK 了，而对于“艺术侧重”来说，要求则是要会基于 Lambert公式扩展出各种好看的艺术效果。所以，”抽象能力“也非常重要，尽管“技术侧重”的程序员也具备超强的抽象能力，但这种抽象更多的是对“物体”和“行为”的抽象，“艺术侧重”则需要对“造型”和“色彩”具有抽象能力，这一特质往往是“技术侧重“不具备的，简单说，你需要有意识的锻炼，把肉眼可见的效果，抽象成尽可能简单的数学模型，通过巧妙的数值去拟合你想要的效果，而不是无脑的堆叠物理计算公式。其实学习到更高阶时，很多东西都是相通的，人的精力是有限的，找一个切入点，自己学的开心很重要。