25 lines
478 B
GLSL
25 lines
478 B
GLSL
// vert //
|
|
|
|
void main(void) {
|
|
qgl_MaterialIndex = qgl_Material;
|
|
qgl_FragTexture = qgl_getFragTexture();
|
|
gl_Position = qgl_ftransform();
|
|
}
|
|
|
|
|
|
// frag //
|
|
|
|
float z_near = 0.1f;
|
|
const float _pe = 2.4e-7;
|
|
|
|
void main(void) {
|
|
vec4 diffuse = qgl_materialTexture(QGL_MAP_DIFFUSE, qgl_FragTexture.xy, vec4(0));
|
|
if(diffuse.a < 0.5)
|
|
discard;
|
|
|
|
float z = gl_FragCoord.z;
|
|
z = z + z - 1;
|
|
z = ((_pe - 2.) * z_near) / (z + _pe - 1.); // infinite depth
|
|
qgl_FragData[0] = vec4(z / 20);
|
|
}
|