shader内置常量变量

3、shader 变量的qualifier:

    默认:无修饰符,普通变量读写, 与外界无连接;

    const:常量 const vec3 zAxis = vec3(0.0, 0.0, 1.0);

    attribute: 申明传给vertex shader的变量;只读;不能为array或struct;attribute vec4 position;

    uniform: 表明整个图元处理中值相同;只读; uniform vec4 lightPos;

    varying: 被差值;读写; varying vec3 normal;

    in, out, inout;

14、shader变量的精度:

    highp, mediump, lowp

 

15、shader内置变量:

    gl_Position: 用于vertex shader, 写顶点位置;被图元收集、裁剪等固定操作功能所使用;

                 其内部声明是:highp vec4 gl_Position;

    gl_PointSize: 用于vertex shader, 写光栅化后的点大小,像素个数;

                 其内部声明是:mediump float gl_Position;

    gl_FragColor: 用于Fragment shader,写fragment color;被后续的固定管线使用;

                  mediump vec4 gl_FragColor;

    gl_FragData: 用于Fragment shader,是个数组,写gl_FragData[n] 为data n;被后续的固定管线使用;

                  mediump vec4 gl_FragData[gl_MaxDrawBuffers];

    gl_FragColor和gl_FragData是互斥的,不会同时写入;

    gl_FragCoord: 用于Fragment shader,只读, Fragment相对于窗口的坐标位置 x,y,z,1/w; 这个是固定管线图元差值后产生的;z 是深度值; mediump vec4 gl_FragCoord;

    gl_FrontFacing: 用于判断 fragment是否属于 front-facing primitive;只读;

                    bool gl_FrontFacing;   

    gl_PointCoord: 仅用于 point primitive; mediump vec2 gl_PointCoord;

16、shader内置常量:

    const mediump int gl_MaxVertexAttribs = 8;

    const mediump int gl_MaxVertexUniformVectors = 128;

    const mediump int gl_MaxVaryingVectors = 8;

    const mediump int gl_MaxVertexTextureImageUnits = 0;

    const mediump int gl_MaxCombinedTextureImageUnits = 8;

    const mediump int gl_MaxTextureImageUnits = 8;

    const mediump int gl_MaxFragmentUnitformVectors = 16;

    const mediump int gl_MaxDrawBuffers = 1;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值