GLSL深度偏移和不独立纹理近似

GLSL深度偏移和不独立纹理近似,glsl,webgl,Glsl,Webgl,我是GLSL的新手,有人能帮我理解这个程序吗?ti做什么? 特别是这里避免暴露深度偏移的含义是什么 顶点着色器: attribute vec2 aVertexPositionDepthOffset; attribute vec2 aTextureMeta; uniform mat4 uProjectionMatrix; varying vec2 vTexCoord; void main(void) { gl_Position=uProjectionMatrix*vec4(aVertex

我是GLSL的新手,有人能帮我理解这个程序吗?ti做什么? 特别是这里避免暴露深度偏移的含义是什么

顶点着色器:

attribute vec2 aVertexPositionDepthOffset;
attribute vec2 aTextureMeta;
uniform mat4 uProjectionMatrix;
varying vec2 vTexCoord;

void main(void) {
    gl_Position=uProjectionMatrix*vec4(aVertexPositionDepthOffset,-1.0,1.0);
    vTexCoord=aTextureMeta;
}
片段着色器:

precision mediump float;

varying vec2 vTexCoord;
uniform sampler2D sSourceTex;
uniform float _db;
uniform vec4 _dd;

vec3 _lq(vec3 _lr, float _lo, float _lp) {
    return clamp((_lr - _lo) / (_lp - _lo),0.0,1.0);
}
vec3 _lw(vec3 _lr, float _ls, float _lu) {
    return mix(vec3(_ls,_ls,_ls), vec3(_lu,_lu,_lu), _lr);
}
vec3 _ly(vec3 _lr, float _lx, float _lo, float _lp, float _ls, float _lu) {
    vec3 _ma = _lq(_lr, _lo, _lp);
    vec3 _mc = clamp(pow(_ma, vec3(_lx,_lx,_lx)),0.0,1.0);
    return _lw(_mc, _ls, _lu);
}

void main(void) {
    vec3 _lr=clamp(texture2D(sSourceTex,vTexCoord).rgb,0.0,1.0);
    _lr=_ly(_lr,_db,_dd.x,_dd.y,_dd.z,_dd.w);
    gl_FragColor=vec4(_lr,1.0);
}

最有可能的是
aVertexPositionDepthOffset
polygonOffset
(请参阅)已经做过的事情。