关于Shader,可以去复习《Unity Shader入门精要 冯乐乐》这本书的读书笔记。
Unity Shader里面会使用其他的Shader语言来表达真正的着色逻辑,比如Cg或者HLSL
而除了真正的、描述着色算法的Shader代码外,Unity Shader中还会描述一些其他需要使用的内容。ShaderLab是用来描述Unity Shader的描述性语言,是ShaderLab将不同的内容整合起来,组成完整的Unity Shader。
Unity | Unreal | 我的理解 |
---|---|---|
Unity Shader | Unreal Material | 这一层都是运行在GPU上的代码 |
Unity Material | Unreal Material Instance | 暴露的参数配置层 |
Unity Shader/Shader Graph/Unreal Material 最终都会编译成Shader代码(真正在GPU上运行的算法)。Unity和Unreal一样,是可以支持查看,编译得到的真正的Shader代码的。根据不同的目标平台,编译得到的最终代码也可能是不同的。
一个Unity Shader的大致结构
C#向Shader传递参数的API类似这种: