Unity Shader (1)
1、OpenGL的窗口坐标原点位于左下角,DirectX的窗口坐标原点位于左上角。
2、常见的着色器语言HLSL(High Level Shading Language)是微软在DirectX基础上提供的,着色器的编译器完全由微软提供,因此只要微软系统支持的硬件,使用相同的编译器编译出来的结果是一样的;GLSL(OpenGL Shading Language)是OpenGL提供的,它的编译器不由Khronos小组提供而是由各个实现OpenGL API的硬件厂商提供,因此不同机器编译后得到的结构可能不同;CG(C for Graphic)是NVIDIA提供的,意义上来说它是跨平台硬件无关的,但是因为微软硬件市场的占有率,它收到了HLSL的影响。
3、Unity可以使用 "CG/HLSL"或者"GLSL" 编写着色器,当然会有一些语法糖等内容的修改,因为较为繁琐但是这种方法较为少用,为此Unity提供了一种更为简便的使用方法。
4、Unity使用Shader的一般流程
1)创建一个材质(Material)
2)创建目标Shader
3)将Shader挂载到Material上
4)将Material挂载到目标渲染对象,并在Shader属性面板上调节效果知道满意为止
5、Unity 提供了几种shader的模板供使用者选择,通过Assets->Create->Shader可以看到这些模板(5.5.6)
6、ShaderLab 是Unity 提供的一种编写Unity Shader的一种声明性脚本(大家都觉得是一种语言,我觉得像脚本)吧
Shader "shader_name"
{
Properties
{
_MainTex("Main Tex", 2D) = "white"{}
......
}
SubShader
{
Pass{}
Pass{}
}
SubShader {}
......
FallBack "......"
}