webgcode

Форк
0
/
conservative_model_proj.frag 
22 строки · 878.0 Байт
1
#extension GL_EXT_frag_depth : require
2
varying vec3 AABB_min;
3
varying vec3 AABB_max;
4
varying vec3 positionK;
5

6
/*INCLUDE_FRAGLIB*/
7

8
void main() {
9
    vec2 pos = positionK.xy;
10
//lets destroy the fragments that are really out there between the input corner and the dilated corner
11
    if(any(bvec4(lessThan(pos, AABB_min.xy), greaterThan(pos, AABB_max.xy))))
12
        discard;
13
// ok, we were pessimistic, but one thing still holds:
14
// the true Z value can never ever be higher or lower than any Z value of the input vertices,
15
// so we clip to get back to some reality
16
    float z = clamp(positionK.z, AABB_min.z, AABB_max.z);
17
// go back to fragment world
18
    z =  (0.5 * z + 0.5);
19
// update the depth buffer, since what was a nice triangle is now a triangle with 2 bent corners (flattened by the Z clamp).
20
    gl_FragDepthEXT = z;
21
    gl_FragData[0] = vec4(1.0 - z, 0.0, 0.0, 1.0);
22
}

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.