GLSL语言摘要(一)

来源:互联网 发布:水果店淘宝首页模板 编辑:程序博客网 时间:2024/05/18 01:06

一、流水线

pipeline

二、顶点处理器

     1. 顶点属性

       // Vertex Attributes
      attribute vec4 gl_Color;
      attribute vec4 gl_SecondaryColor;
      attribute vec3 gl_Normal;
      attribute vec4 gl_Vertex;
      attribute vec4 gl_MultiTexCoord0;
      attribute vec4 gl_MultiTexCoord1;
      attribute vec4 gl_MultiTexCoord2;
      // . . . up to gl_MultiTexCoordN-1 where N = gl_MaxTextureCoords
      attribute float gl_FogCoord;

      2. 特殊的输出变量

      vec4  gl_Position;      // must be written to
      float   gl_PointSize;    // may be written to
      vec4  gl_ClipVertex;  // may be written to

      3. 内置易变变量

   varying vec4  gl_FrontColor;   varying vec4  gl_BackColor;   varying vec4  gl_FrontSecondaryColor;   varying vec4  gl_BackSecondaryColor;   varying vec4  gl_TexCoord[]; // at most will be gl_MaxTextureCoords   varying float gl_FogFragCoord;

三、片元处理器

      1. 内置易变变量

   varying vec4  gl_Color;   varying vec4  gl_SecondaryColor;   varying vec4  gl_TexCoord[]; // at most will be gl_MaxTextureCoords   varying float gl_FogFragCoord;

      2.特殊输入变量

      vec4 gl_FragCoord;
      bool gl_FrontFacing;

      3. 特殊输出变量

   vec4  gl_FragColor;   vec4  gl_FragData[gl_MaxDrawbuffers];   float gl_FragDepth;

四、内置一致性变量

//// Matrix state//uniform mat4  gl_ModelViewMatrix;uniform mat4  gl_ProjectionMatrix;uniform mat4  gl_ModelViewProjectionMatrix;uniform mat4  gl_TextureMatrix[gl_MaxTextureCoords];//// Derived matrix state that provides inverse and transposed versions// of the matrices above. Poorly conditioned matrices may result// in unpredictable values in their inverse forms.//uniform mat3  gl_NormalMatrix; // transpose of the inverse of the upper                               // leftmost 3x3 of gl_ModelViewMatrixuniform mat4  gl_ModelViewMatrixInverse;uniform mat4  gl_ProjectionMatrixInverse;uniform mat4  gl_ModelViewProjectionMatrixInverse;uniform mat4  gl_TextureMatrixInverse[gl_MaxTextureCoords];uniform mat4  gl_ModelViewMatrixTranspose;uniform mat4  gl_ProjectionMatrixTranspose;uniform mat4  gl_ModelViewProjectionMatrixTranspose;uniform mat4  gl_TextureMatrixTranspose[gl_MaxTextureCoords]uniform mat4  gl_ModelViewMatrixInverseTranspose;uniform mat4  gl_ProjectionMatrixInverseTranspose;uniform mat4  gl_ModelViewProjectionMatrixInverseTranspose;uniform mat4  gl_TextureMatrixInverseTranspose[gl_MaxTextureCoords]//// Normal scaling//uniform float gl_NormalScale;//// Depth range in window coordinates//struct gl_DepthRangeParameters{    float near;        // n    float far;         // f    float diff;        // f - n};uniform gl_DepthRangeParameters gl_DepthRange;//// Clip planes//uniform vec4  gl_ClipPlane[gl_MaxClipPlanes];//// Point Size//struct gl_PointParameters{    float size;    float sizeMin;    float sizeMax;    float fadeThresholdSize;    float distanceConstantAttenuation;    float distanceLinearAttenuation;    float distanceQuadraticAttenuation;};uniform gl_PointParameters gl_Point;//// Material State//struct gl_MaterialParameters{    vec4 emission;     // Ecm    vec4 ambient;      // Acm    vec4 diffuse;      // Dcm    vec4 specular;     // Scm    float shininess;   // Srm};uniform gl_MaterialParameters  gl_FrontMaterial;uniform gl_MaterialParameters  gl_BackMaterial;//// Light State//struct gl_LightSourceParameters{    vec4  ambient;              // Acli    vec4  diffuse;              // Dcli    vec4  specular;             // Scli    vec4  position;             // Ppli    vec4  halfVector;           // Derived: Hi    vec3  spotDirection;        // Sdli    float spotExponent;         // Srli    float spotCutoff;           // Crli                                // (range: [0.0,90.0], 180.0)    float spotCosCutoff;        // Derived: cos(Crli)                                // (range: [1.0,0.0],-1.0)    float constantAttenuation;  // K0    float linearAttenuation;    // K1    float quadraticAttenuation; // K2};uniform gl_LightSourceParameters   gl_LightSource[gl_MaxLights];struct gl_LightModelParameters{    vec4 ambient;        // Acs};uniform gl_LightModelParameters gl_LightModel;//// Derived state from products of light and material.//struct gl_LightModelProducts{    vec4 sceneColor;      // Derived. Ecm + Acm * Acs};uniform gl_LightModelProducts gl_FrontLightModelProduct;uniform gl_LightModelProducts gl_BackLightModelProduct;struct gl_LightProducts{    vec4 ambient;         // Acm * Acli    vec4 diffuse;         // Dcm * Dcli    vec4 specular;        // Scm * Scli};uniform gl_LightProducts gl_FrontLightProduct[gl_MaxLights];uniform gl_LightProducts gl_BackLightProduct[gl_MaxLights];//// Texture Environment and Generation//uniform vec4  gl_TextureEnvColor[gl_MaxTextureUnits];uniform vec4  gl_EyePlaneS[gl_MaxTextureCoords];uniform vec4  gl_EyePlaneT[gl_MaxTextureCoords];uniform vec4  gl_EyePlaneR[gl_MaxTextureCoords];uniform vec4  gl_EyePlaneQ[gl_MaxTextureCoords];uniform vec4  gl_ObjectPlaneS[gl_MaxTextureCoords];uniform vec4  gl_ObjectPlaneT[gl_MaxTextureCoords];uniform vec4  gl_ObjectPlaneR[gl_MaxTextureCoords];uniform vec4  gl_ObjectPlaneQ[gl_MaxTextureCoords];//// Fog//struct gl_FogParameters{    vec4 color;    float density;    float start;    float end;    float scale;   // 1.0 / (gl_Fog.end - gl_Fog.start)};uniform gl_FogParameters gl_Fog;

五、内置常量

//// Implementation dependent constants.  The values below// are the minimum values allowed for these constants.//const int  gl_MaxLights = 8;const int  gl_MaxClipPlanes = 6;const int  gl_MaxTextureUnits = 2;const int  gl_MaxTextureCoords = 2;const int  gl_MaxVertexAttribs = 16;const int  gl_MaxVertexUniformComponents = 512;const int  gl_MaxVaryingFloats = 32;const int  gl_MaxVertexTextureImageUnits = 0;const int  gl_MaxTextureImageUnits = 2;const int  gl_MaxFragmentUniformComponents = 64;const int  gl_MaxCombinedTextureImageUnits = 2;const int  gl_MaxDrawBuffers = 1;
 
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 花洒从侧面漏水怎么办 花洒接口处漏水怎么办 买到香港箭牌该怎么办 雨伞杆抽出来了怎么办 招行的young卡怎么办 高一数学50分怎么办 在无烟房抽烟了怎么办 喂奶粉的新生儿腹部很大怎么办 剑三身份证忘了怎么办 中药剂量吃大了怎么办 社保卡3年没激活怎么办 社保卡2年没激活怎么办 cad没保存关了怎么办 cad未响应没保存怎么办 办公椅扶手坏了怎么办 玩刺客信条卡bug怎么办 我玩刺客信条1卡怎么办 玩刺客信条3卡死怎么办 mac玩刺客信条卡怎么办 阴部长了个疙瘩怎么办 两个人觉得累了怎么办 朋友把我拉黑了怎么办 下雨了怎么办我好想你 雨停怎么办我好想你 下雨天怎么办我好想你 天谕账号忘记了怎么办 天谕账号被冻结怎么办 促黄体生成素低怎么办 地暖家里太干燥怎么办 剑灵摧毁了东西怎么办 想打嗝打不出来怎么办 孩子满100天要怎么办 宝宝吃奶粉过敏了怎么办 1岁宝宝不喝奶粉怎么办 母乳不够宝宝不喝奶粉怎么办 宝宝吃奶粉上火了怎么办 我小孩不喝奶粉怎么办 2岁宝宝不喝奶粉怎么办 婴儿吃奶粉上火了怎么办 100天的宝宝咳嗽怎么办 40天的小孩咳嗽怎么办