Revision 68491be2

b/frag.voxelize.frag
9 9
uniform vec2 voxels_offset;
10 10
uniform int vMethod;
11 11
uniform int vShowTexture;
12
uniform int vVoxelType;
12 13

  
13 14
// Uniform from OSG
14 15
uniform mat4 osg_ViewMatrixInverse;
......
105 106
        vec4 lFragmentPosition = gl_ProjectionMatrix * osg_ViewMatrix * vPos;
106 107
        lFragmentPosition.xyz /= lFragmentPosition.w;
107 108

  
108
        vec2 lDistance = abs(lVoxelPosition.xy - lFragmentPosition.xy);
109
        
110
        if(lDistance.x > lSize)
111
            output_alpha = 0.f;
112
        if(lDistance.y > lSize)
113
            output_alpha = 0.f;
114
        
109
        if(vVoxelType == 0)
110
        {
111
            vec2 lDistance = abs(lVoxelPosition.xy - lFragmentPosition.xy);
112
            
113
            if(lDistance.x > lSize)
114
                output_alpha = 0.f;
115
            if(lDistance.y > lSize)
116
                output_alpha = 0.f;
117
        }
118
        else if(vVoxelType == 1)
119
        {
120
            float lDistance = length(lVoxelPosition.xy - lFragmentPosition.xy);
121
            
122
            if(lDistance > lSize)
123
                output_alpha = 0.f;
124
        }
125
                
115 126
        if(vShowTexture == 0)
116 127
            gl_FragColor = vec4(lLight, lLight, lLight, output_alpha);
117 128
        else
b/launch.lunch
2 2

  
3 3
PDARGS = "-path /usr/local/lib/pd-externals/pdsheefa"
4 4

  
5
add_command("pd -noaudio %s shaders-proto.pd" % (PDARGS), identifier="pd")
5
add_command("pd-extended -noaudio %s shaders-proto.pd" % (PDARGS), identifier="pd")
6 6
add_command("spinserver --scene-id shaders", identifier="server")
7 7
add_command("spinviewer --scene-id shaders", identifier="viewer")
8 8

  
b/shaders-proto.pd
1
#N canvas 891 549 1028 649 10;
1
#N canvas 889 550 1028 649 10;
2 2
#X obj 19 76 cnv 15 24 24 empty empty 1 4 12 1 24 -99865 -262144 0
3 3
;
4 4
#X obj 73 140 cnv 15 24 24 empty empty 2 4 12 1 24 -99865 -262144 0
......
32 32
#X obj 565 295 r \$0-shader;
33 33
#X obj 625 145 loadbang;
34 34
#X obj 489 19 r \$0-to-SPIN;
35
#X obj 491 81 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 10219
36
10219;
35
#X obj 491 81 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 15684
36
15684;
37 37
#X msg 675 28 connect \$1;
38
#X obj 674 8 tgl 15 0 empty empty empty 17 7 0 10 -258113 -1 -1 1 1
38
#X obj 674 8 tgl 15 0 empty empty empty 17 7 0 10 -258113 -1 -1 0 1
39 39
;
40 40
#X obj 625 194 symbol;
41 41
#X obj 488 52 to-spin localhost 54324 /shaders;
......
53 53
#X obj 116 1011 pack f f;
54 54
#X msg 116 1031 /vid setUniform_vec2 voxels_size \$1 \$2;
55 55
#X obj 116 935 vsl 15 50 0 1 0 0 empty empty empty 0 -9 0 10 -191407
56
-1 -1 165 1;
56
-1 -1 174 1;
57 57
#X obj 131 935 vsl 15 50 0 1 0 0 empty empty empty 0 -9 0 10 -191407
58
-1 -1 165 1;
58
-1 -1 174 1;
59 59
#X obj 262 990 t b f;
60 60
#X obj 244 1010 pack f f;
61 61
#X obj 244 930 vsl 15 50 0 1 0 0 empty empty empty 0 -9 0 10 -191407
......
65 65
#X obj 381 989 t b f;
66 66
#X obj 363 1009 pack f f;
67 67
#X obj 363 933 vsl 15 50 0 1 0 0 empty empty empty 0 -9 0 10 -191407
68
-1 -1 253 1;
68
-1 -1 388 1;
69 69
#X obj 378 933 vsl 15 50 0 1 0 0 empty empty empty 0 -9 0 10 -191407
70
-1 -1 253 1;
70
-1 -1 388 1;
71 71
#X msg 244 1054 /vid setUniform_vec2 voxels_offset \$1 \$2;
72 72
#X msg 363 1029 /vid setUniform_vec2 voxels_distance \$1 \$2;
73 73
#X msg 305 900 0.5;
74 74
#X obj 307 666 vsl 15 150 0 0.1 0 0 empty empty Size 0 -9 0 10 -4032
75
-1 -1 5012 1;
75
-1 -1 5300 1;
76 76
#X obj 354 666 vsl 15 150 0 0.1 0 0 empty empty Distance 0 -9 0 10
77
-4032 -1 -1 7688 1;
77
-4032 -1 -1 11800 1;
78 78
#X obj 368 614 line;
79 79
#X obj 325 485 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
80 80
1;
......
89 89
#X text 538 557 SHADER------------------------>;
90 90
#X msg 156 225 /vid setPath /home/manu/dev/proto-shader-voxelize/videoloop.mp4
91 91
;
92
#X msg 626 167 /home/manu/dev/proto-shader-voxelize;
93 92
#X obj 636 413 subwidget-PAT \$0;
94 93
#X msg 615 358 guru;
95 94
#X msg 693 359 box;
96 95
#X msg 478 967 /vid setUniform_int vMethod \$1;
97 96
#X obj 478 779 hradio 15 1 0 5 empty empty Voxelize_method 0 -8 0 10
98 97
-4032 -1 -1 4;
99
#X text 357 632;
98
#X text 357 632 comment;
100 99
#X obj 645 778 tgl 15 0 empty empty Activate_texture 17 7 0 10 -4032
101 100
-1 -1 0 1;
102 101
#X msg 645 930 /vid setUniform_int vShowTexture \$1;
102
#X msg 625 167 /home/manu/src/proto-shader-voxelize;
103
#X obj 800 780 hradio 15 1 0 2 empty empty Voxel_type 0 -8 0 10 -4032
104
-1 -1 1;
105
#X msg 800 966 /vid setUniform_int vVoxelType \$1;
103 106
#X connect 4 0 67 0;
104 107
#X connect 5 0 19 0;
105 108
#X connect 8 0 3 0;
......
109 112
#X connect 17 0 3 0;
110 113
#X connect 18 0 3 0;
111 114
#X connect 19 0 6 0;
112
#X connect 21 0 68 0;
115
#X connect 21 0 76 0;
113 116
#X connect 22 0 27 0;
114 117
#X connect 24 0 27 1;
115 118
#X connect 25 0 24 0;
......
161 164
#X connect 64 0 56 0;
162 165
#X connect 65 0 60 0;
163 166
#X connect 67 0 3 0;
164
#X connect 68 0 26 0;
165
#X connect 70 0 69 0;
166
#X connect 71 0 69 0;
167
#X connect 72 0 33 0;
168
#X connect 73 0 72 0;
169
#X connect 75 0 76 0;
170
#X connect 76 0 33 0;
167
#X connect 69 0 68 0;
168
#X connect 70 0 68 0;
169
#X connect 71 0 33 0;
170
#X connect 72 0 71 0;
171
#X connect 74 0 75 0;
172
#X connect 75 0 33 0;
173
#X connect 76 0 26 0;
174
#X connect 77 0 78 0;
175
#X connect 78 0 33 0;
b/voxelize.jxs
6 6
    <param name="voxels_offset" type="vec2" default="0.0 0.0" />
7 7
    <param name="vMethod" type="int" default="4" />
8 8
    <param name="vShowTexture" type="int" default="0" />
9
    <param name="vVoxelType" type="int" default="0" />
9 10

  
10 11
    <language name="glsl" version="1.2"> 
11 12
        <bind param="image" program="frag" />
......
14 15
        <bind param="voxels_offset" program="frag" />
15 16
        <bind param="vMethod" program="frag" />
16 17
        <bind param="vShowTexture" program="frag" />
18
        <bind param="vVoxelType" program="frag" />
17 19

  
18 20
        <program name="vert" type="vertex" source="vert.passthru.vert" />
19 21
        <program name="frag" type="fragment" source="frag.voxelize.frag" />

Also available in: Unified diff