uniform:从应用程序到vertex shader 到fragment shader都能使用,但是值一直不变;
varying:从vertex shader到fragment shader,在fragment shader里头改变值;
attribute:从应用程序传入到vertex fragment,已经有值可以供vertex shader使用。
built-in variable是内置的变量,用于被应用程序初始化,然后让shader使用