aboutsummaryrefslogtreecommitdiff
path: root/Gem/examples/09.openGL/03.stencilBuffer.pd
blob: 44f1e61cd952487a692b80e27554ea33c88583cf (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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
#N canvas 431 30 849 872 10;
#X obj 39 330 GEMglEnable;
#X floatatom 125 332 5 0 0 0 - - -;
#X obj 111 282 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 111 305 GLdefine GL_STENCIL_TEST;
#X obj 129 280 loadbang;
#X obj 104 382 GLdefine GL_STENCIL_BUFFER_BIT;
#X obj 166 361 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X floatatom 119 407 5 0 0 0 - - -;
#X obj 104 359 loadbang;
#X obj 39 249 GEMglClearStencil 0;
#X obj 39 407 GEMglClear;
#X obj 39 33 gemhead 45;
#X obj 39 506 GEMglStencilFunc;
#X msg 146 480 1;
#X obj 75 436 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 74 459 GLdefine GL_ALWAYS;
#X obj 96 436 loadbang;
#X floatatom 100 480 5 0 0 0 - - -;
#X obj 39 586 GEMglStencilOp;
#X floatatom 156 581 5 0 0 0 - - -;
#X obj 70 486 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 70 552 GLdefine GL_REPLACE;
#X obj 95 530 loadbang;
#X obj 239 743 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 170 742 loadbang;
#X obj 39 810 GEMglClear;
#X floatatom 156 812 5 0 0 0 - - -;
#X obj 145 788 GLdefine GL_DEPTH_BUFFER_BIT;
#X obj 126 743 t b b;
#X obj 490 287 GEMglStencilFunc;
#X msg 597 263 1;
#X obj 525 220 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 546 218 loadbang;
#X floatatom 535 264 5 0 0 0 - - -;
#X obj 525 241 GLdefine GL_NOTEQUAL;
#X obj 490 396 color 1 0 0;
#X obj 490 659 GEMglStencilFunc;
#X msg 597 634 1;
#X obj 525 594 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 547 592 loadbang;
#X floatatom 536 638 5 0 0 0 - - -;
#X obj 490 709 rotateXYZ 0 0 45;
#X obj 525 615 GLdefine GL_EQUAL;
#X obj 490 685 color 1 1 0;
#X obj 126 766 GLdefine GL_COLOR_BUFFER_BIT;
#X obj 490 365 GEMglStencilOp;
#X floatatom 601 364 5 0 0 0 - - -;
#X obj 521 310 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 544 307 loadbang;
#X obj 521 331 GLdefine GL_KEEP;
#X floatatom 58 144 5 0 0 0 - - -;
#X floatatom 97 144 5 0 0 0 - - -;
#X obj 39 187 colorRGB 0 0 1;
#X obj 126 810 |;
#X floatatom 587 830 5 0 0 0 - - -;
#X obj 569 782 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 569 805 GLdefine GL_STENCIL_TEST;
#X obj 587 780 loadbang;
#X obj 490 830 GEMglDisable;
#X text 67 212 allow \, clear and configure stencil buffer;
#X obj 39 695 circle 1.5;
#X text 131 685 draw in all buffer;
#X text 104 840 clear color and depth buffer;
#X text 488 189 draw where the stencil buffer is not 1;
#X obj 490 423 square 3;
#X text 522 565 draw where the stencil buffer is 1;
#X obj 529 21 gemhead 10;
#X floatatom 562 41 5 0 0 0 - - -;
#X floatatom 602 41 5 0 0 0 - - -;
#X floatatom 642 41 5 0 0 0 - - -;
#X obj 529 87 world_light;
#X obj 529 62 rotateXYZ 0 0 0;
#X obj 39 167 rotateXYZ;
#X text 151 144 <- play with this.;
#X text 238 858 (c) Cyrille Henry 2006;
#X obj 39 56 t a b;
#X obj 74 78 i;
#X obj 122 56 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
;
#X obj 103 78 + 0;
#X obj 74 123 t f f;
#X obj 74 100 spigot;
#X obj 104 673 teapot 1.5;
#X obj 39 657 spigot;
#X obj 104 654 spigot;
#X obj 79 610 loadbang;
#X obj 147 632 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
1;
#X obj 82 634 == 0;
#X msg 147 611 0;
#X obj 131 77 % 360;
#X obj 490 754 sphere 1.2 25;
#X obj 36 6 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1;
#N canvas 87 154 247 179 Gem.init 0;
#X obj 118 46 loadbang;
#X obj 118 113 outlet;
#X msg 118 81 reset \, lighting 1;
#X connect 0 0 2 0;
#X connect 2 0 1 0;
#X restore 372 38 pd Gem.init;
#N canvas 340 107 682 322 gemwin 0;
#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144
-1 -1 0 1;
#X obj 102 161 r \$0-gemstart;
#X obj 102 182 select 1 0;
#X msg 102 214 create \, 1;
#X msg 177 215 destroy;
#X obj 102 239 t a;
#X obj 318 54 inlet;
#X obj 318 255 gemwin;
#X obj 318 100 t a a;
#X obj 318 287 outlet;
#X obj 350 128 route create destroy;
#X obj 350 150 t b;
#X msg 350 172 1;
#X obj 390 150 t b;
#X msg 390 172 0;
#X obj 350 195 t f;
#X msg 350 219 set \$1;
#X text 118 122 rendering;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 2 1 4 0;
#X connect 3 0 5 0;
#X connect 4 0 5 0;
#X connect 5 0 8 0;
#X connect 6 0 8 0;
#X connect 7 0 9 0;
#X connect 8 0 7 0;
#X connect 8 1 10 0;
#X connect 10 0 11 0;
#X connect 10 1 13 0;
#X connect 11 0 12 0;
#X connect 12 0 15 0;
#X connect 13 0 14 0;
#X connect 14 0 15 0;
#X connect 15 0 16 0;
#X connect 16 0 0 0;
#X coords 0 -1 1 1 85 40 1 100 100;
#X restore 342 55 pd gemwin;
#X connect 0 0 10 0;
#X connect 2 0 3 0;
#X connect 3 0 1 0;
#X connect 3 0 0 1;
#X connect 4 0 3 0;
#X connect 5 0 7 0;
#X connect 5 0 10 1;
#X connect 6 0 5 0;
#X connect 8 0 5 0;
#X connect 9 0 0 0;
#X connect 10 0 12 0;
#X connect 11 0 75 0;
#X connect 12 0 18 0;
#X connect 13 0 12 3;
#X connect 13 0 12 2;
#X connect 14 0 15 0;
#X connect 14 0 13 0;
#X connect 15 0 12 1;
#X connect 15 0 17 0;
#X connect 16 0 13 0;
#X connect 16 0 15 0;
#X connect 18 0 82 0;
#X connect 18 0 83 0;
#X connect 20 0 21 0;
#X connect 21 0 19 0;
#X connect 21 0 18 1;
#X connect 21 0 18 2;
#X connect 21 0 18 3;
#X connect 22 0 20 0;
#X connect 23 0 28 0;
#X connect 24 0 28 0;
#X connect 25 0 29 0;
#X connect 27 0 53 1;
#X connect 28 0 44 0;
#X connect 28 1 27 0;
#X connect 29 0 45 0;
#X connect 30 0 29 3;
#X connect 30 0 29 2;
#X connect 31 0 34 0;
#X connect 32 0 30 0;
#X connect 32 0 34 0;
#X connect 34 0 29 1;
#X connect 34 0 33 0;
#X connect 35 0 64 0;
#X connect 36 0 43 0;
#X connect 37 0 36 3;
#X connect 37 0 36 2;
#X connect 38 0 42 0;
#X connect 39 0 37 0;
#X connect 39 0 42 0;
#X connect 41 0 89 0;
#X connect 42 0 36 1;
#X connect 42 0 40 0;
#X connect 43 0 41 0;
#X connect 44 0 53 0;
#X connect 45 0 35 0;
#X connect 47 0 49 0;
#X connect 48 0 47 0;
#X connect 49 0 46 0;
#X connect 49 0 45 1;
#X connect 49 0 45 2;
#X connect 49 0 45 3;
#X connect 50 0 72 1;
#X connect 51 0 72 2;
#X connect 52 0 9 0;
#X connect 53 0 26 0;
#X connect 53 0 25 1;
#X connect 55 0 56 0;
#X connect 56 0 54 0;
#X connect 56 0 58 1;
#X connect 57 0 56 0;
#X connect 60 0 25 0;
#X connect 64 0 36 0;
#X connect 66 0 71 0;
#X connect 67 0 71 1;
#X connect 68 0 71 2;
#X connect 69 0 71 3;
#X connect 71 0 70 0;
#X connect 72 0 52 0;
#X connect 75 0 72 0;
#X connect 75 1 76 0;
#X connect 76 0 78 0;
#X connect 76 0 80 0;
#X connect 77 0 78 1;
#X connect 77 0 80 1;
#X connect 78 0 88 0;
#X connect 79 0 50 0;
#X connect 79 1 51 0;
#X connect 80 0 79 0;
#X connect 81 0 25 0;
#X connect 82 0 60 0;
#X connect 83 0 81 0;
#X connect 84 0 87 0;
#X connect 85 0 83 1;
#X connect 85 0 86 0;
#X connect 86 0 82 1;
#X connect 87 0 85 0;
#X connect 88 0 76 1;
#X connect 89 0 58 0;
#X connect 90 0 11 0;
#X connect 91 0 92 0;