OpenGL - 结构体和采样器

采样器  
作用: 专门来进行纹理采样的相关操作;
一般情况下 一个采样器代表了一套或者一副纹理
采样器类型
说明
sampler2D
用来访问2维纹理的
sampler3D
用来访问3维纹理的
samplerCube
立体贴图的纹理
注意: 1 、采样器变量不能在着色器中初始化。 
  2、一般情况下,采样器变量都用uniform限定符来修饰,从宿主语言(JAVA语言)接收传递进着色器的值。 
3 sampler3D 并不是在所有的 OpenGL ES 实现中都支持,因此,使用时必须要首先在着色器代码中设置,打开相应拓展。 

结构体
是由一系列具有相同类型或不同类型的数据构成的数据集合,也叫做结构。 
  简单解释:就是从逻辑上将不同的类型的数据组合到一个数据集合当中  
作用 : (简化运算)
结构体和其他类型基础 数据类型 一样,例如 int 类型, char 类型   只不过 结构体可以做成我们想要的数据类型。以方便日后的使用。  
在实际项目中,结构体是大量存在的。研发人员常使用结构体来 封装 一些属性来组成新的类型。研发人员 通常使用结构体创造新的 属性 ,其目的是  简化运算  
结构体在 函数 中的作用不是简便,其最主要的作用就是封装。( 封装的好处是什么? )封装的好处就是可以 再次利用。让使用者不必关心这个是什么,只要根据定义使用就可以了。  
GLSL 里面:结构体可以简化多组数据传入函数的过程  

定义一个结构体
struct  Info{            //声明一个结构体info 
    vec3 color;          //颜色成员 
    vec3 position;        //位置成员 
    vec2 velocitCoor;   //纹理坐标成员 

调用结构体元素做为输入参数
如果定义了一个结构体,那么它会自动创建一个新的类型,并且会隐式 定义一个构造函数,那我们只需要这样操作:  
Info p = Info(10.0,pos,vel); 
vec3 color = p.color;  // 取值
就可以将各种类型的数据的结构体元素作为输入参数。  

你可能感兴趣的:(OpenGL)