webgcode

Форк
0
/
medial_axis.frag 
30 строк · 1.0 Кб
1
uniform sampler2D modelHeight;
2
uniform vec2 gridSize;
3
varying vec2 vUv;
4

5
float readValue(float dx,float dy) {
6
    return texture2D(modelHeight, vUv +  vec2(dx, dy) / gridSize).r;
7
}
8

9
void main() {
10
    vec2 clr = vec2(readValue(-1.0, +0.0), readValue(+1.0, +0.0));
11
    vec2 ctb =  vec2(readValue(+0.0, -1.0), readValue(+0.0, +1.0));
12

13
    vec2 diag1 = vec2(readValue(-1.0, -1.0), readValue(+1.0, +1.0));
14
    vec2 diag2 = vec2(readValue(+1.0, -1.0), readValue(-1.0, +1.0));
15

16
    float height = readValue(0.0, 0.0);
17
    float ridge = 0.0;
18
    vec2 h2 = vec2(height, height);
19
    bool aligned = all(greaterThan(h2, clr)) || all(greaterThan(h2, ctb));
20
    bool diagonal = all(greaterThan(h2, diag1)) || all(greaterThan(h2, diag2));
21
    bool isFlat = all(equal(vec4(h2, h2), vec4(clr, ctb)));
22
    if (aligned || diagonal || isFlat)
23
        ridge = 1.0;
24
    else
25
        discard;
26
    vec2 diff2 = min(min(clr, ctb), min(diag1, diag2));
27
    float diff = height - min(diff2.x, diff2.y);
28

29
    gl_FragColor = vec4(height, 0.0, 0.0, 1.0);
30
}

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

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

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

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