Solvespace

Форк
0
/
imesh_point.vert 
33 строки · 1.0 Кб
1
//-----------------------------------------------------------------------------
2
// Point rendering shader
3
//
4
// Copyright 2016 Aleksey Egorov
5
//-----------------------------------------------------------------------------
6
const float feather = 0.5;
7

8
attribute vec3 pos;
9
attribute vec2 loc;
10

11
uniform mat4 modelview;
12
uniform mat4 projection;
13
uniform float width;
14
uniform float pixel;
15

16
void main() {
17
    // get camera vectors from modelview matrix
18
    vec3 u = vec3(modelview[0].x, modelview[1].x, modelview[2].x);
19
    vec3 v = vec3(modelview[0].y, modelview[1].y, modelview[2].y);
20

21
    // calculate point contour extension basis for constant width and caps
22

23
    // calculate point extension width considering antialiasing
24
    float ext = width + feather * pixel;
25

26
    // extend point contour
27
    vec3 vertex = pos;
28
    vertex += ext * loc.x * normalize(u);
29
    vertex += ext * loc.y * normalize(v);
30

31
    // transform resulting vertex with modelview and projection matrices
32
    gl_Position = projection * modelview * vec4(vertex, 1.0);
33
}
34

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

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

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

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