Unity Shader (1)

a 夏天 提交于 2020-03-16 18:32:34

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 "......"

}

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!