blob: 7f58b3e6bb17045e296423b1746f5236bca2a81d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
//--------------------------------------------------------------------------------------
// Order Independent Transparency with Depth Peeling
//
// Author: Louis Bavoil
// Email: sdkfeedback@nvidia.com
//
// Copyright (c) NVIDIA Corporation. All rights reserved.
//--------------------------------------------------------------------------------------
uniform samplerRECT DepthTex;
vec4 ShadeFragment();
void main(void)
{
// Bit-exact comparison between FP32 z-buffer and fragment depth
float frontDepth = textureRect(DepthTex, gl_FragCoord.xy).r;
if (gl_FragCoord.z <= frontDepth) {
discard;
}
// Shade all the fragments behind the z-buffer
vec4 color = ShadeFragment();
gl_FragColor = vec4(color.rgb * color.a, color.a);
}
|