GLSL部分汇总

 
 
 
一、类型限定符:
    const, in, out, uniform
1、in: 指定变量为着色器阶段的一个输入,输入可能是顶点属性(用于顶点着色器)或插值变量(用于片段着色器).
    片段着色器可进一步限制其输入值,但要和in组合使用才有效:
  centroid: 在打开多点采样时,强迫一个片段输入变量的采样位于图元像素的覆盖区域内。
  smooth: 以透视校正的方式插值片段输入变量。
  flat: 不对片段输入插值。
  noperspective: 线性插值片段变量。
2、out: 指定变量为着色器阶段的一个输出.
  顶点着色器可以使用centroid关键字限定其输出值,但必须有一个匹配的centroid片段着色器输入。
3、uniform: 指定这个值从应用程序传递个着色器,并在一个特定的图元中保持为常数值。uniform变量是由顶点着色器和片段着色器
共享的,必须声明为全局变量。
  eg: uniform vec4 baseColor;
    在着色器中,可以通过名字来引用baseColor, 但是为了在应用程序中设置它的值,需要一些额外工作。当GLSL编译器连接到着色
器程序后,它会创建一个表格,其中包含了所有的uniform变量。为了在;应用程序中设置baseColor的值,需要获取baseColor在表
中的索引值:
    GLint glGetUniformLocation(GLuint program, const char* name);
    获取了uniform变量的相关索引值,就可以设置这个变量的值:
    void glUniform2iv(GLuint location TYPE value);
    void glUniform3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *values);
    void glUniformMatrix3fv(GLint location, GLsizei count,
               
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值