图形学学习笔记 - Shader

  • Shader 语言:

    ·OpenGL - GLSL(OpenGL Shader Language):SGI公司 跨平台

    ·DirectX - HLSL(High Level Shader Language):微软 非跨平台

    ·CG(C for Graphics):微软和Nvidia 跨平台 基于C开发


  • Unity Shader 语言:

    ·以上三种都支持

            【CGPROGRAM ... ENGCG】语法块:CG 和 HLSL

            【GLSLPROGRAM ... ENDGLSL】语法块:GLSL

    ·原生语言 Shader Lab


  • Unity Shader 分类:

    ·Fixed Shader:Shader 1.0 开关式

    ·顶点 片段 Shader:Shader 2.0 功能里的公式可自行定义

    ·Surface Shader:对前版本的封装


  • Shader的结构


    Shader属性定义的通用格式:

    Properties { Property [ Property... ] }

    定义一个int:

    name( "display name" , Int) = number

    name:变量的名字。 以下划线开头

    display name:供外界参考说明。

    int:表示 变量类型。

    = number:表示默认值

        

类型:

  • 2D    2DTexture

  • Int    整数

  • Float    浮点

  • Range    范围

  • Color    颜色

  • Vector    四维数组

  • Cube    有六个面的纹理

  • 3D    1. 只能用script创建。2. OpenGL 3.0 及以上才支持。



        为什么三维的世界,要用四维去表示?



        MainText("Texture",2D) = "white"{}

        White:表示默认值


  • For 2D Textures, the default value is either an empty string,or one of the built-in default Textures:"white"(RGBA: 1,1,1,1),"black" (RGBA: 0,0,0,0), "gray"(RGBA:0.5,0.5,0.5,0.5),"bump"(RGBA: 90.5,0.5,1,0.5) or "red"(RGBA: 1,0,0,0)


        cubeMap:有六个面的纹理


        3D 纹理:

                

        


2019-02-24

评论

©大米の食堂 / Powered by LOFTER