├── help
├── example.csv
├── Math
│ ├── UVCheckerMap1024_Quadrants.png
│ └── Explanation 01 Intro.vl
├── Shaders
│ ├── EditShaders
│ │ ├── EditShaders.sdpkg
│ │ ├── NuGet.config
│ │ ├── EditShaders.csproj
│ │ └── EditShaders.sln
│ ├── shaders
│ │ └── DemoSpreadShader_TextureFX.sdsl
│ └── HowTo Access a Spread inside a Shader.vl
├── Type Flexibility
│ ├── 10 Programming-time type flexibility
│ │ ├── HowTo 13 Overloading and Adaptive Intro.vl
│ │ └── HowTo 12 Generics Advanced.vl
│ ├── Explanation 02 Types of Type Flexibility.vl
│ ├── Explanation 01 What Is Type Safety.vl
│ └── 20 Run-time type flexibility
│ │ ├── HowTo 23 Explicit Conversion of Numerics.vl
│ │ └── HowTo 22 Implicit Conversion of Numerics.vl
├── HowTo When is a Pad also a framedelay.vl
├── HowTo Access Bits as Boolean outputs.vl
├── HowTo Generate all combinations of a number set.vl
└── Mutability
│ └── Explanation 07 Mutability, Architecture and Design Patterns.vl
├── .gitignore
├── .vl
└── VL.ExtendedTutorials.vl.dll
├── .github
└── workflows
│ └── main.yml
├── deployment
└── VL.ExtendedTutorials.nuspec
├── LICENSE
├── VL.ExtendedTutorials.vl
└── README.md
/help/example.csv:
--------------------------------------------------------------------------------
1 | Foo,Bar,Baz
2 | A,0,0
3 | B,1,1
4 | C,5,5
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 |
2 | # .v4p backup files
3 | *~.xml
4 |
5 | # Dynamic plugins .dll
6 | bin/
7 |
--------------------------------------------------------------------------------
/.vl/VL.ExtendedTutorials.vl.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TobyKLight/VL.ExtendedTutorials/HEAD/.vl/VL.ExtendedTutorials.vl.dll
--------------------------------------------------------------------------------
/help/Math/UVCheckerMap1024_Quadrants.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TobyKLight/VL.ExtendedTutorials/HEAD/help/Math/UVCheckerMap1024_Quadrants.png
--------------------------------------------------------------------------------
/help/Shaders/EditShaders/EditShaders.sdpkg:
--------------------------------------------------------------------------------
1 | !Package
2 | SerializedVersion: {Assets: 3.1.0.0}
3 | Meta:
4 | Name: EditShaders
5 | Version: 1.0.0
6 | Authors: []
7 | Owners: []
8 | Dependencies: null
9 | AssetFolders:
10 | - Path: !dir ../shaders
11 | ResourceFolders:
12 | - !dir Resources
13 | OutputGroupDirectories: {}
14 | ExplicitFolders: []
15 | Bundles: []
16 | TemplateFolders: []
17 | RootAssets: []
--------------------------------------------------------------------------------
/help/Shaders/EditShaders/NuGet.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.github/workflows/main.yml:
--------------------------------------------------------------------------------
1 | name: push_nuget
2 |
3 | # on push on main
4 | on:
5 | push:
6 | branches:
7 | - main
8 | paths-ignore:
9 | - README.md
10 |
11 | jobs:
12 | build:
13 | runs-on: windows-latest
14 | steps:
15 | - name: Git Checkout
16 | uses: actions/checkout@main
17 |
18 | - name: Setup Nuget.exe
19 | uses: nuget/setup-nuget@v1
20 |
21 | - name: Publish VL Nuget
22 | uses: vvvv/PublishVLNuget@1.0.29
23 | with:
24 | nuspec: deployment\VL.ExtendedTutorials.nuspec
25 | nuget-key: ${{ secrets.NUGET_KEY }}
26 |
--------------------------------------------------------------------------------
/help/Shaders/EditShaders/EditShaders.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net6.0
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/deployment/VL.ExtendedTutorials.nuspec:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | VL.ExtendedTutorials
5 | 1.1.13
6 | VL.ExtendedTutorials
7 | TobyKLight
8 | TobyKLight
9 | https://github.com/TobyKLight/VL.ExtendedTutorials
10 | false
11 | Further helppatches for vvvv gamma covering intermediate topics
12 | Topics include Mutability (Record vs Class), Solving Cyclic problems and a vector matrix maths tutorial series
13 | VL, vvvv, mutability, tutorial
14 | MIT
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2022 TobyKLight
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/help/Shaders/shaders/DemoSpreadShader_TextureFX.sdsl:
--------------------------------------------------------------------------------
1 | [TextureSource]
2 | [Category("Source")]
3 | [Summary("")]
4 | shader DemoSpreadShader_TextureFX : TextureFX
5 | {
6 | [Color]
7 | float4 Color = float4(1, 1, 1, 1);
8 |
9 | //To create the inputs declare StructuredBuffers here with the subtype you want.
10 | //Note1 the input pin won't appear on the vvvv shader node with just the buffer declaration. The buffer has to be used in the shader code below.
11 | //Note2 color is float4.
12 |
13 |
14 | StructuredBuffer Colors ;
15 | StructuredBuffer Intensities ;
16 |
17 | stage override float4 Shading()
18 | {
19 |
20 | float2 uv = streams.TexCoord;
21 |
22 | //Use GetDimensions function to get the count of the buffer. You also have to get the Stride even if you don't use it.
23 |
24 | uint count, stride;
25 | Colors.GetDimensions(count, stride);
26 |
27 | float4 c;
28 |
29 | int index = uv.x * count;
30 |
31 | //then access the values using typical array notation.
32 |
33 | c = Colors[index] * Intensities[index];
34 |
35 |
36 | return c;
37 | }
38 | };
--------------------------------------------------------------------------------
/help/Shaders/EditShaders/EditShaders.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 16
4 | VisualStudioVersion = 16.0.30413.136
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EditShaders", "EditShaders.csproj", "{A6E4858A-CDF7-4384-8FF3-3CFE59E8EEC4}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|Any CPU = Debug|Any CPU
11 | Release|Any CPU = Release|Any CPU
12 | EndGlobalSection
13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
14 | {A6E4858A-CDF7-4384-8FF3-3CFE59E8EEC4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15 | {A6E4858A-CDF7-4384-8FF3-3CFE59E8EEC4}.Debug|Any CPU.Build.0 = Debug|Any CPU
16 | {A6E4858A-CDF7-4384-8FF3-3CFE59E8EEC4}.Release|Any CPU.ActiveCfg = Release|Any CPU
17 | {A6E4858A-CDF7-4384-8FF3-3CFE59E8EEC4}.Release|Any CPU.Build.0 = Release|Any CPU
18 | EndGlobalSection
19 | GlobalSection(SolutionProperties) = preSolution
20 | HideSolutionNode = FALSE
21 | EndGlobalSection
22 | GlobalSection(ExtensibilityGlobals) = postSolution
23 | SolutionGuid = {CF611081-98A6-431A-9E02-3B4EC9D6D856}
24 | EndGlobalSection
25 | EndGlobal
26 |
--------------------------------------------------------------------------------
/VL.ExtendedTutorials.vl:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Extended Tutorials for vvvv Gamma
2 | Extended tutorial help patches for vvvv gamma, covering common questions as learners move from beginner towards intermediate.
3 |
4 | Install by going to the top left menu > Manage Nugets > Commandline and typing
5 |
6 | ````Nuget Install VL.ExtendedTutorials````
7 |
8 | # Contents
9 | 
10 |
11 | 
12 |
13 |
14 | # Videos
15 | Some of these helppatches are accompanied by videos that you can find in this playlist on youtube
16 | https://youtube.com/playlist?list=PLEncasrnvr2bkPb0QKdU1DrDs4Hd_Jr0V&feature=shared
17 |
18 | # Release History
19 | V1.1.13
20 | * Added helppatch on generating every combination of x numbers (for brute forcing)
21 | * Added helppatch on inserting a new value in a sorted collection
22 |
23 | V1.1.10
24 | * Small improvements in the type flex tutorials
25 |
26 | V1.1.9
27 | * Added small helppatch on working with the Box mathematical structure from Stride used by collision nodes.
28 |
29 | V1.1.8
30 | * Added patches for Types tutorial (video coming soon) and example patch for Manipulating classes video
31 |
32 | V1.1.5
33 | * Fixed some typos
34 |
35 | V1.1.4
36 | * Added maths helppatch for converting from world space to screen space manually. Thanks @Motzi for support with this one.
37 |
38 | V1.1.1
39 | * Bugfix set the Renderer windows to start in nicer default positions. Improved some text.
40 |
41 | V1.1.0
42 | * Added maths helppatch series covering vector and matrix maths.
43 |
44 | V1.0.6
45 | * Bugfix forgot to give 'Tickets are the new bang' a bona fide helppatch prefix.
46 |
47 | V1.0.5
48 | * Added tutorial 'Tickets are the new bang'
49 | * Added an extra case/gotcha to 'Stateful vs Stateless' tutorial
50 | * Improved text on some of the other tutorials
51 |
52 | V1.0.4
53 | * Added helppatches for Exporting to Spreadsheets and Stateful vs Stateless
54 |
55 | V1.0.3
56 | * Fixed error in the understanding defaults helppatch
57 |
58 | v1.0.2
59 | * Ensured compatibility with 2022.4.11-1312 (RC4)
60 |
61 | # Dependencies
62 |
63 | VL.PolyTools, installed automatically via nuget
64 | https://www.nuget.org/packages/VL.PolyTools
65 |
66 |
67 | # Contributing
68 | If you'd like to contribute just open an issue to talk about the subject you want to cover
69 |
--------------------------------------------------------------------------------
/help/Type Flexibility/10 Programming-time type flexibility/HowTo 13 Overloading and Adaptive Intro.vl:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
--------------------------------------------------------------------------------
/help/Math/Explanation 01 Intro.vl:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
--------------------------------------------------------------------------------
/help/Shaders/HowTo Access a Spread inside a Shader.vl:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
--------------------------------------------------------------------------------
/help/Type Flexibility/Explanation 02 Types of Type Flexibility.vl:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
--------------------------------------------------------------------------------
/help/HowTo When is a Pad also a framedelay.vl:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
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 |
--------------------------------------------------------------------------------
/help/Type Flexibility/Explanation 01 What Is Type Safety.vl:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
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 |
--------------------------------------------------------------------------------
/help/HowTo Access Bits as Boolean outputs.vl:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
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 |
--------------------------------------------------------------------------------
/help/Type Flexibility/10 Programming-time type flexibility/HowTo 12 Generics Advanced.vl:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
211 |
212 |
213 |
214 |
215 |
216 |
217 |
218 |
219 |
220 |
221 |
--------------------------------------------------------------------------------
/help/Type Flexibility/20 Run-time type flexibility/HowTo 23 Explicit Conversion of Numerics.vl:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
249 |
250 |
251 |
252 |
253 |
254 |
255 |
256 |
257 |
258 |
259 |
260 |
261 |
262 |
263 |
264 |
265 |
266 |
267 |
268 |
269 |
270 |
271 |
272 |
273 |
274 |
--------------------------------------------------------------------------------
/help/HowTo Generate all combinations of a number set.vl:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
271 |
272 |
273 |
274 |
275 |
276 |
277 |
278 |
279 |
280 |
281 |
282 |
283 |
284 |
285 |
286 |
287 |
288 |
289 |
290 |
291 |
292 |
293 |
294 |
295 |
296 |
297 |
298 |
299 |
300 |
301 |
302 |
303 |
304 |
305 |
306 |
307 |
308 |
309 |
310 |
--------------------------------------------------------------------------------
/help/Mutability/Explanation 07 Mutability, Architecture and Design Patterns.vl:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
418 |
419 |
420 |
421 |
422 |
423 |
424 |
425 |
426 |
427 |
428 |
429 |
--------------------------------------------------------------------------------
/help/Type Flexibility/20 Run-time type flexibility/HowTo 22 Implicit Conversion of Numerics.vl:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 | 9
24 | Comment
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 | 9
34 | Link
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 | 9
43 | Comment
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 | 9
52 | Comment
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 | 9
72 | Comment
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 | 9
81 | Link
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 | 9
91 | Comment
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 | 9
101 | Comment
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | 9
110 | Link
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 | 9
121 | Comment
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 | 9
130 | Link
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 | 9
171 | Comment
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 | 9
199 | Comment
200 |
201 |
202 |
203 |
204 |
205 |
206 |
207 | 9
208 | Comment
209 |
210 |
211 |
212 |
213 |
214 |
215 |
216 | 9
217 | Comment
218 |
219 |
220 |
221 |
222 |
223 |
224 |
225 | 9
226 | Link
227 |
228 |
229 |
230 |
231 |
232 |
233 |
234 | 9
235 | Comment
236 |
237 |
238 |
239 |
240 |
241 |
242 |
243 | 9
244 | Comment
245 |
246 |
247 |
248 |
249 |
250 |
251 |
252 | 9
253 | Comment
254 |
255 |
256 |
257 |
258 |
259 |
260 |
261 | 9
262 | Comment
263 |
264 |
265 |
266 |
267 |
268 |
269 |
270 | 9
271 | Comment
272 |
273 |
274 |
275 |
276 |
277 |
278 |
279 | 9
280 | Comment
281 |
282 |
283 |
284 |
285 |
286 |
287 |
288 | 9
289 | Comment
290 |
291 |
292 |
293 |
294 |
295 |
296 |
297 | 9
298 | Comment
299 |
300 |
301 |
302 |
303 |
304 |
305 |
306 | Toggle
307 |
308 |
309 |
310 |
311 |
312 |
313 |
314 |
315 |
316 |
317 |
318 |
319 |
320 |
321 |
322 |
323 |
324 | Toggle
325 |
326 |
327 |
328 |
329 |
330 |
331 |
332 |
333 |
334 |
335 |
336 |
337 | Toggle
338 |
339 |
340 |
341 |
342 |
343 |
344 |
345 | 9
346 | Comment
347 |
348 |
349 |
350 |
351 |
352 |
353 |
354 | 9
355 | Comment
356 |
357 |
358 |
359 |
360 |
361 |
362 |
363 | 9
364 | Comment
365 |
366 |
367 |
368 |
369 |
370 |
371 |
372 | 6
373 | Comment
374 |
375 |
376 |
377 |
378 |
379 |
380 |
381 |
382 |
383 |
384 |
385 |
386 |
387 |
388 |
389 |
390 |
391 |
392 |
393 |
394 |
--------------------------------------------------------------------------------