56
VVVV CREARES

VVVV / CREARES

Embed Size (px)

DESCRIPTION

This school project contains research/information about vvvv and some creations made with vvvv.

Citation preview

VVVV CREARES

VVVV CREARES

Een project als dit komt niet tot stand zonder de steun en hulp van anderen. Bij deze wil ik hen graag bedanken. Eerst en vooral wil ik mijn mentor, Pedro Mari, alsook de volledige vvvv community bedanken voor alle hulp. Zonder de hulpvaardig-heid van alle vvvv gebruikers had ik dit project nooit kunnen realiseren. Ook zou ik graag mijn vriendin willen bedanken voor alle steun. Zonder haar was dit project nooit gelukt.

7

INHOUD

9 IntroductIe

11 KenmerKen11 Grafisch programmeren 11 Tekstueel programmeren 12 Stabiliteit 12 Spreads 13 Boygrouping 13 Vvvv uitbreiden 14 Animatie 14 3D Rendering 15 Audio 15 Physics simulatie 16 Video tracking en effecten 16 Communicatie met externe apparaten

19 theoretIsch19 Basis uitleg 19 Renderer (EX9) 20 Primitives (DX9) 20 Textures 21 Spreads 22 IO Boxes 22 Subpatches 23 S en R nodes 23 Coördinatensys-teem 24 3D modellen in vvvv 25 Shaders (effecten) 26 Loops en feedback 26 Logica 27 Rode nodes en andere errors 27 Externe apparaten

29 PraKtIsch29 User interface 31 Soorten nodes 31 Waardes aanpassen 32 Herr Inspektor 33 Patches lezen

35 creatIes51 LInKs53 Bronnen

8

8 9

creares © 2013 // Jonas Vansieleghem

Het programma vvvv is een krach-tige grafische programmeeromgeving dat voor verschillende doeleinden kan worden gebruikt. Het is ontworpen om de behandeling van grote mediaom-gevingen, real-time motion graphics, audio en video te vergemakkelijken.

Vvvv is erg geschikt voor verschil-lende taken uit te voeren waarbij veel gebruikte mediatypes zoals: video, audio, 3D-animatie, het internet en interactieve multi-user interacties gebruikt worden. Het is perfect moge-lijk om met dit ene programma in real-time met verschillende media types tegelijkertijd te werken.

Omdat vvvv het krachtige Microsoft DirectX1 gebruikt is het enkel moge-lijk om vvvv op Windows te draaien. Indien je het programma op een Mac wilt gebruiken ben je genoodzaakt om Windows te runnen via Bootcamp.

Het is niet mogelijk om vvvv applica-ties (ook wel patches genoemd) te laten draaien in een web browser. Ook is het niet mogelijk om patches om te zetten naar op zichzelf draaiende .exe bestan-den. Om vvvv patches te runnen heb je altijd het programma zelf nodig.

Vvvv is gratis voor niet-commercieel gebruik, je kan het downloaden op de website vvvv.org. Voor commerci-eel gebruik heb je een betaalde licentie nodig.

Laten we beginnen met een korte

introductie van het programma vvvv

1. Microsoft DirectX Microsoft DirectX is een verza-meling van API’s (Application Programming Interface) die het voor programmeurs eenvoudi-ger maakt computerspellen te programmeren op Windows. DirectX en de bijbehorende SDK zijn gratis verkrijgbaar bij producent Microsoft.

11

creares © 2013 // Jonas Vansieleghem

Grafisch programmerenDe grafische programmeertaal van vvvv is vergelijkbaar met die van soft-ware zoals Maximum, Pd, Reaktor of Simulink. Afzonderlijke acties of func-ties worden weergegeven als nodes (knooppunten). Verbindingen tussen nodes worden getrokken en aangepast met slechts enkele muisklikken.

Na verloop van tijd ontstaat op deze manier een netwerk van nodes, input – en output data. Zo’n netwerk van nodes en data wordt een patch genoemd. Een vvvv applicatie of patch is dus een netwerk van verbindingen waarbij input data verwerkt wordt d.mv. nodes (functies/ bewerkingen). Die data kan dan uiteindelijk gerenderd worden.

Terwijl veel andere programmeerta-len verschillende modi hebben, één voor het ontwikkelen en één voor de runtime, heeft vvvv slechts één modus – runtime. Met andere woorden, dit programma is constant data aan het berekenen en beelden aan het renderen terwijl je aan het ontwikkelen bent. Dit programma is dus real-time.

Tekstueel programmerenVoor de situaties waarbij grafisch programmeren zijn beperkingen heeft biedt vvvv de mogelijkheid om met behulp van de programmeertaal C#1 de code tekstueel aan te passen.

Tekstuele code kan worden geschre-ven binnen vvvv’s codeeditor die func-ties, zoals syntax-highlighting en code completion biedt. Met externe IDE’s (Integrated Development Environment) zoals MonoDevelop, SharpDevelop of Visual Studio is het mogelijk om de code te inspecteren en bugs te traceren.

1. C# C# is een objectgeoriënteerde programmeertaal ontwikkeld door Microsoft als deel van het .NET-initiatief. C# lijkt qua syntaxis en semantiek sterk op Java, terwijl vooral in de biblio-theken en programmeerom-geving een sterke invloed van Object Pascal en Delphi te zien is. C# is samen met het .NET-framework geïntroduceerd, en wordt beschouwd als de belang-rijkste taal voor dat platform.

Hieronder volgen de voornaamste

KenMerKen van vvvv

12

VVVV // 2. Kenmerken

StabiliteitIn de loop der jaren heeft vvvv bewe-zen erg stabiel te zijn. Net als de meeste software durft het soms wel nog eens op een willekeurig moment vast te lopen.

SpreadsVvvv kan zonder problemen een hele reeks objecten (grafische objecten of data) tegelijkertijd bewerken of weerge-ven. Dit betekent dat we even gemakke-lijk met één exemplaar van een grafisch object (bijv. een afbeelding) kunnen werken als met 1000. We noemen deze techniek spreading (verspreiden).

Spreading is een abstractie die verwijst naar de handeling van het versprei-den van verschillende waarden over een reeks van objecten. Vvvv bevat veel spread generators die het gemakkelijk maakt om complexe gedragingen te programmeren voor een grote groepvan objecten.

12 13

creares © 2013 // Jonas Vansieleghem

BoygroupingEr zijn toepassingen waarbij het nodig zal zijn om meerdere pc’s te gebruiken om de gewenste output te bereiken of om met meerdere schermen te werken. In die situaties zou het niet praktisch zijn om alle pc’s individueel te contro-leren. Om dit probleem op te lossen wordt in deze situatie meestal gewerkt met een server. Via deze server kunnen alle verbonden pc’s gemakkelijk en overzichtelijk gecontroleerd worden.

Vvvv’s ingebouwde boygrouping tech-niek maakt dit mogelijk en verlicht ook de inspanningen die betrokken zijn bij het creëren van multi-screen systemen of naadloze multi-projectie opstellin-gen.

Boygrouping maakt ook het opzet-ten van een render-cluster mogelijk. Hierbij kan men kiezen welke nodes op welke computer draaien. De moge-lijkheid om te bepalen welke gegevens op welke computer draaien maakt het mogelijk om een setup handmatig te optimaliseren.

Vvvv uitbreidenIndien je je eigen nodes wilt creëren biedt vvvv vele mogelijkheden. Het programma beschikt over een COM-gebaseerde plugin interface die het mogelijk maakt om nodes te schrijven in verschillende programmeertalen.

Zo is het mogelijk om nodes te schrij-ven in c# en f# maar ook in delphi of c++. Vertex- en PixelShader nodes kunnen gemaakt worden met behulp van het DirectX Effect framework. Video filter en analyse nodes kunnen worden uitgevoerd op basis van de FreeFrame 1.0 standaard. VST (Virtual Studio Technology, virtuele instrumen-ten/effecten) plugins kunnen worden gebruikt als audio nodes en patches kunnen natuurlijk ook gebruikt worden als herbruikbare modules.

14

VVVV // 2. Kenmerken

AnimatieVvvv heeft een groot aanbod aan gespe-cialiseerde nodes voor het maken van vloeiende animaties of het filteren van binnenkomende reeksen van waarden. Voor situaties waarbij een sequencer nodig is biedt vvvv de mogelijkheid om met een timeline editor te werken. Deze editor is een stand-alone versie die zelfstandig draait.

3D RenderingVvvv’s D engine is gebaseerd op DirectD een API (Application Programming Interface) voor high performance computer graphics. Met de kracht van moderne grafische kaar-ten maken die API’s het voor program-ma’s zoals vvvv mogelijk om gelijkwaar-dige renderprestaties te bekomen als die van moderne computerspellen.

Naast een verzameling van nodes die u toelaat om op een eenvoudige wijze geometrische gegevens te genereren of aan te passen, heeft vvvv ook de moge-lijkheid om .x - en collada files te lezen. Deze files kunnen worden geëxporteerd vanuit alle belangrijkste D-modelling software. Met Collada bestanden kan vvvv animatie gegevens importe-ren voor geometrieën en er is een set van plug-in nodes om karakter/skelet animatie/generatie te doen.

14 15

creares © 2013 // Jonas Vansieleghem

AudioDe sound engine van vvvv is gebaseerd op DirectShow en is niet echt uitge-breid. Hoewel het perfect in staat is om muziekbestanden af te spelen en simpele FFT-analyses uit te voeren is het niet echt geschikt om serieuze geluidsmanipulaties uit te voeren of geluid te genereren.

Een reeks van plugin nodes die het mixen van meerder geluidsbronnen toelaat zijn beschikbaar .

Physics simulatieVvvv heeft ook een reeks nodes die gebruik maken van de Open Dyna-mics D Physics Engine. Er zijn ook veel nodes, voorzien door gebruikers, die gebruik maken van The Box D en Bullet Engines. De ODE Engine kan gebruikt worden om rigid body dyna-mics te simuleren en met de Bullet Engine is het zelfs mogelijk om soft body dynamics te simuleren.

16

VVVV // 2. Kenmerken

Video tracking en effectenVvvv’s video engine is gebaseerd op DirectShow en bijgevolg zijn de afspeel-bare videoformaten afhankelijk van de codecs die geïnstalleerd zijn. Ook alle video-apparaten die met een conven-tionele WDM-driver werken zullen normaal gezien werken met vvvv. Of het nu usb-webcams, dv/firewire came-ra’s of analoge/digitale capture kaarten zijn.

Video-effecten en video-analyse nodes worden uitgevoerd via de FreeFrame plugin architectuur en kunnen daarom onafhankelijk van vvvv worden ontwik-keld.

Een reeks van nodes kan gebruikt worden voor het uitvoeren van tracking technieken zoals vorm- en kleur-trac-king of bewegings-en object-detectie.

Communicatie met externe apparatenHet is mogelijk om met vvvv externe apparaten te bedienen. Dvd-spelers, industriële interfaces (bijv. om licht en geluid te besturen), touch-screen schermen, gaming apparaten, schake-laars, sensoren, MIDI apparatuur, DMX interfaces en toetsenborden kunnen allemaal met vvvv bestuurd worden.

Naast de standaard lage niveau proto-collen, zoals TCP, UDP of RS voor communicatie met andere computers en software biedt vvvv hoger niveau nodes aan voor communicatie via MIDI, DMX, ArtNet, OSC, HTTP, IRC etc.

16

19

creares © 2013 // Jonas Vansieleghem

Basis uitlegVvvv gebruikt grafische objecten om te programmeren i.p.v. een tekstuele programmeer interface. Vvvv applica-ties worden ook wel patches genoemd. Individuele operaties en functies worden nodes genoemd. Verbindingen tussen nodes worden links genoemd en worden getekend en aangepast met de muis. Links transporteren data van de ene node naar de andere.

In de meeste gevallen heeft een node meer opties dan degene die zicht-baar zijn. Alle opties van een node zijn beschikbaar in “The Inspektor” (zie pagina 32). Je kan deze openen door een node te selecteren met de linkermuis-knop en vervolgens op Ctrl + i te druk-ken.

Renderer (EX9)Om uitgaande data te visualiseren heb je een renderer nodig. Er zijn verschil-lende renderer nodes in vvvv (verschil-lende types voor verschillende soorten data). In de meeste gevallen wordt de Renderer.EX gebruikt.

De renderer node heeft een extern scherm dat de DirectXRenderer heet, hierop zie je hoe de data gerenderd wordt. Dit scherm kan eventueel full-screen weergegeven worden.

Het volgende onderdeel is het

theoretisch gedeelte over vvvv3

20

VVVV // 3. Theoretisch

Primitives (DX9)

Om basisvormen (primitives) te teke-nen in vvvv kan je verschillende nodes gebruiken. Als je bijvoorbeeld een rechthoek wil visualiseren gebruiken je de Quad(DX9) node. Je kunt deze vorm dan aanpassen door de node te verbinden met andere nodes. Als je hem bijv. wil transformeren dan kan je hem verbinden met een Transform node en indien je hem een kleur wil geven kan je hem verbinden met een HSL node.

Textures

Vvvv ondersteunt enorm veel soorten textures. Alles wat je ziet in de renderer kan, net als afbeeldingen en video, als een texture gebruikt worden.

De Group.EX9 node is vergelijkbaar met het werken met lagen in Adobe Photo-shop of Illustrator en met de Blend node kan je verschillende blend modes selecteren.

20 21

creares © 2013 // Jonas Vansieleghem

Spreads

Het woord spread duidt simpelweg op een lijst. Een lijst van willekeu-rige data. Deze data kan van alles zijn: waardes, kleur, vectoren… en één enkel item uit een lijst heet een slice. In bijna alle gevallen waarbij je met meerdere eenheden van data wil werken is het erg handig om met spreads te werken. Stel dat je bijv. 100 vierkanten wil visu-aliseren die in een cirkel staan dan kan dit met de node CircularSpread erg eenvoudig bereikt worden.

Vectoren zijn de meest gebruikte spreads in vvvv. Het programma heeft veel vector georiënteerde nodes. In de meeste gevallen is het gebruiken van vectoren eenvoudiger dan het gebrui-ken van aparte waarden.

In veel gevallen is het interessant om toegang te hebben tot individuele slices. Elke slice heeft een indexnummer, hier-door kan je de gewenste slice eenvou-dig selecteren. Het is ook mogelijk om een reeks van slices te selecteren. Dit kan je doen door bijv. de node GetSlice te gebruiken. De binsize bepaald hoe veel slices er genomen worden en de index bepaald welke slices er genomen worden.

22

VVVV // 3. Theoretisch

IO BoxesIO box betekent Input/Output Box, ze kunnen dus voor alle twee de toepas-singen gebruikt worden. Aan de ene kant kan je ze gebruiken om input data in te voeren in een patch. Maar je kunt ze even goed gebruiken om output data te transporteren of weer te geven.

Er zijn verschillende soorten IOBoxen. De meeste gebruikte is de Integer, hier-bij heb je slechts 2 pinnen, één voor de input data en één voor de output data, op de IObox kan je de doorgegeven data aflezen. Andere veel gebruikte IOBoxen zijn: Enumeration (om lijsten met mogelijke input data weer te geven, bijv. mogelijke fonts), Toggle (heeft slechts 2 mogelijke waarden, aan of uit), Color (om kleur weer te geven) en String (kan enkel tekst bevatten/weergeven).

SubpatchesEen subpatch is eigenlijk gewoon-weg een node die een andere patch bevat. De term subpatch verwijst enkel naar de manier waarop de patch wordt weergegeven. Het is een gewone patch maar hij wordt weergegeven als een node.

Een subpatch aanmaken is erg eenvou-dig. Eerst maak je de patch en sla je hem op. Hierna kan je deze file gewoon in je nieuwe patch slepen en gebruiken als subpatch.

22 23

creares © 2013 // Jonas Vansieleghem

S en R nodesIn sommige gevallen is het nodig om data te transporteren zonder dat je nieuwe links wil aanmaken. In deze gevallen kan je S en R nodes gebrui-ken. S en R staat voor send en receive. Data van de S node kan gelijk waar in de patch ontvangen worden met de R node. Indien er meerdere S nodes zijn verschijnt er bij de R nodes een drop-down menu waarbij je de bijhorende bron moet aanduiden.

Coördinatensys-teemHet renderer scherm heeft een stan-daard bereik van -1 tot +1 in alle 2 de dimensies (XY). Het midden van het scherm heeft als coördinaten 0,0.

Er zijn geen pixels, inches of millime-ters in het coördinatensysteem van vvvv maar enkel digitale waarden. Dit zorgt er voor dat de coördinaten niet afhangen van de grootte van het scherm of de schermresolutie. Dit zijn dus genormaliseerde coördinaten.

Het gebruik van genormaliseerde coör-dinaten heeft als gevolg dat je gevisuali-seerde data er anders zal uitzien afhan-kelijk van de grootte van je scherm. Om dit te vermijden kan je Transform nodes gebruiken om je renderer aan te passen.

24

VVVV // 3. Theoretisch

3D modellen in vvvv

Er zijn verschillende manieren om in vvvv D modellen (meshes) te creëren. Je kan:

• gebruik maken van basis primitives zoals Grid, Box of Sphere uit de EX.Geometry node

• een .x file laden uit een ander D programma

• een .dae collada file laden m.b.v. de collada plugin

• zelf een mesh genereren met een vertexbuffer en een indexbuffer

Een D model of een mesh is een data container met twee afzonderlijke delen: IndexBuffer en VertexBuffer. Elke mesh is opgebouwd uit (honderden) driehoe-ken. Elke driehoek heeft 3 punten, we noemen elk punt een vertex (hoekpunt).

Dus om een specifiek mesh te vormen moeten we alle vertices samenvoegen in een speciale datalijst, zo’n lijst noemen we een vertexbuffer.

Indexbuffers zijn gelinkt aan vertexbuf-fers. Hun doel is om de locatie van elke vertex bij te houden. Op deze manier kunnen vertices sneller gevonden en gerenderd worden.

24 25

creares © 2013 // Jonas Vansieleghem

Shaders (effecten)

Een shader is een computerprogramma dat voornamelijk zorgt voor de belich-ting en de schaduw van een object. De positie, kleur, verzadiging, helderheid en contrast van alle pixels, vertices of textures die gebruikt worden voor het genereren van een D model kunnen snel en eenvoudig worden aangepast m.b.v. een shader. Een shader bepaalt dus hoe een vorm er zal uitzien.

Vertexshaders zorgen er voor dat de positie van elke vertex omgezet wordt van een virtuele D positie naar een D coördinaat op het scherm. Vertexsha-ders kunnen eigenschappen zoals kleur en positie aanpassen maar kunnen geen nieuwe vertices creëren.

Een pixelshader maakt geavanceerde kleuring in rasterizers mogelijk. Dit stuk programmeercode wordt voor elke getekende pixel uitgevoerd en heeft als taak de kleur van die pixel te berekenen.

Vvvv heeft een ingebouwde HLSL (High Level Shading Language) editor, het is dus mogelijk om zelf effecten aan te maken en aan te passen.

Op vvvv.org/contributions zijn er talloze interessante shaders te vinden die gratis worden gedeeld door de gebruikers. Je kan er ook zelf shaders of patches uploaden.

26

VVVV // 3. Theoretisch

Loops en feedback

Alle nodes in een patch worden slechts eenmaal per frame doorlopen. Dit wil dus zeggen dat, indien je data wilt loopen, je minstens één frame moet wachten. Nodes zoals Frame-Delay (Animation) geven een output die afhankelijk is van de input van de vorige frame i.p.v. de huidige. Op deze manier kan je data in een patch loopen.

Logica

Het programma vvvv heeft verschil-lende nodes die het dataverkeer kunnen regelen. De meest gebruikte nodes hier-voor zijn o.a. Switch, Or, And, “=”, “>”, …

Er zijn ook veel tijd gerelateerde nodes. Zo heb je bijvoorbeeld een LFO (Low-Frequency Oscillator, telt op van 0 tot 1 over een bepaalde periode), een Coun-ter (telt op of af bij elk signaal) en een MonoFlop (geeft een signaal voor een bepaalde tijd).

Wanneer je complexe logica hanteert in een patch is het aan te raden om een “centraal station” aan te maken waar je al deze nodes plaatst. Op deze manier blijft je patch overzichtelijk.

26 27

creares © 2013 // Jonas Vansieleghem

Rode nodes en andere errors

Soms kom je in vvvv rode nodes zonder pinnen tegen. Dit gebeurt bijv. wanneer je een patch download van het forum. Door een node rood weer te geven toont vvvv aan dat ze een specifieke file niet kan vinden. Om dit probleem op te lossen volstaat het om de specifieke file te vinden en aan te duiden.

Vvvv heeft verschillende nodes die je kunnen helpen problemen op te sporen en op te lossen. Zo’n eerste node is Renderer (TTY). Deze node rapporteert alle errors in een apart venster. Het is aan te raden om, zeker wanneer je aan het coderen bent, de Renderer (TTY) node ergens in je patch te plaatsen.

Om overige problemen op te lossen kan je terecht op het forum. Je kan er een nieuw topic openen met je probleem en rekenen op de hulp van mede vvvv gebruikers.

Externe apparaten

Vvvv heeft input/output nodes voor enorm veel verschillende apparatuur. Zo zijn er nodes voor TCP, UDP, DMX, MIDI, TUIO, OSC, RS enzovoort.

Dankzij de vvvv gebruikers is het zelfs mogelijk om met dit programma consoles zoals de Nintendo Wii, de PSP en de Xbox 360 Kinect te controleren.

Maar het kan ook eenvoudiger: met de nodes Keyboard (System) en Mouse (System) kan je data ontvangen van je keyboard en muis. Je kan dus erg eenvoudig een patch besturen met de beweging van je muis of met een bepaalde toetsencombinatie.

Voor sommige apparaten is het wel noodzakelijk om de bijhorende drivers eerst te installeren.

29

creares © 2013 // Jonas Vansieleghem

User interfacea. algemeen

Dubbelklikken met de linkermuisknop op een lege plaats binnenin een patch opent NodeBrowser. Dit is een lijst die alle mogelijke nodes bevat. Er is een zoekoptie die je helpt om snel een node te vinden.

Dubbelklikken met de rechtermuisknop op een lege plaatst opent een IOBoxes menu. Dit is een lijst met alle mogelijke input/output boxes.

Klikken met de middelste muisknop opent het Main Menu. Op sommige systemen werkt dit niet, in dat geval kan je het Main Menu openen met de combinatie spatiebalk + rechtermuisknop.

Na het theoretisch stuk volgt nu het

PraKtisch gedeelte over vvvv4

30

VVVV // 4. Praktisch

Verticaal en horizontaal scrollen kan je doen met behulp van je scrollbar (Alt inhouden om horizontaal te scrollen) of door je rechtermuisknop in te houden en te slepen.

Alle standaard shortcuts zoals Ctrl-c, Ctrl-v en Ctrl-s werken ook in dit programma.

B. Werken met nodes

Wanneer je met je muis boven een node zweeft verschijnt de naam van de node.

Je kan een node selecteren door er op te klikken met je linkermuisknop. Om een node te verplaatsen moet je hem verslepen met je linkermuisknop. Je kan de grootte van een node aanpassen door te klikken op de rechterkant van de node en de zijkant te verslepen.

Dubbelklikken op een node opent de NodeBrowser. Het is mogelijk om op deze manier een verbonden node te veranderen, alle pinnen met dezelfde naam blijven dan verbonden.

c. Werken met links

Om een nieuwe link aan te maken moet je eerst op een pin klikken. Wanneer je dan op een lege plaats in de patch klikt maak je een hoekpunt in de link aan. Om de link te sluiten moet je hem verbinden met een andere pin.

Je kan een link die je aan het teke-nen bent deleten door op je rechter-muisknop te klikken. Om een reeds getekende link te deleten moet je de link eerst selecteren en daarna op de rechtermuisknop of de delete knop drukken.

Het is ook mogelijk om de stijl van je link aan te passen door op ctrl-y te drukken. De stijl van je links aanpassen helpt je om je patch overzichtelijk en leesbaar te houden.

30 31

creares © 2013 // Jonas Vansieleghem

Soorten nodes

Er zijn verschillende types van nodes. Een icoontje aan de linkerkant van de titel toont aan welk type node het is.

a. subpatches en modules

Deze nodes bevatten patches, je kan ze openen door er met je rechtermuisknop op te klikken en bewerken als gewone patches. Eénmaal ze geopend zijn kun je ze weer afsluiten door er een tweede maal op te klikken met je rechtermuis-knop.

B. dynamic Plugins

Deze nodes zijn C# plugins, je kan ze openen en aanpassen met de CodeEdi-tor door er op te klikken met je rech-termuisknop. Je kan de code aanpas-sen terwijl je patch aan het lopen is. Met Crtl-w kan je de CodeEditor weer afsluiten.

c. effects

Deze nodes zijn HLSL shaders, je kan ze openen en aanpassen met de CodeEditor.

d. nodes met externe vensters

Deze nodes hebben een extern venster, je kan dit venster openen door de node te selecteren en op Alt-1 te drukken. Alt-2 opent het venster als een blok binnenin de patch, Alt-3 verbergt het externe venster en Alt-enter zet het venster fullscreen.

e. standaard nodes

Bij deze nodes kan je enkel de waardes van hun pins aanpassen maar verder niets.

Waardes aanpassen

Je kan de waardes van IOBoxes aanpas-sen met behulp van je muis en toet-senbord. Klik en sleep van links naar rechts (of omgekeerd) of van boven naar onderen (of omgekeerd) met de rechter-muisknop om de waarde van een IOBox aan te passen.

Je kan de waarde ook invoeren door er op te dubbelklikken met de linkermuis-knop en dan een waarde in te typen.

Wanneer je met je muis over een pin zweeft verschijnt de waarde van deze pin. Je kan de waardes van een input pin ook rechtstreeks aanpassen zonder gebruik te maken van een IOBox. Dit doe je door je rechtermuisknop inge-drukt te houden op een pin en je muis dan te verslepen (net zoals bij een IOBox). Een waarde ingeven met het toetsenbord kan je door op een pin te klikken met de rechtermuisknop.

De waardes van een IOBox (Color) aanpassen is iets ingewikkelder. Klik met de rechtermuisknop op de IOBox en sleep de muis:

• van links naar rechts (of omge-keerd) om de kleur aan te passen

• van boven naar onderen (of omge-keerd) om de helderheid aan te passen

• van links naar rechts (of omge-keerd) terwijl je de Ctrl-toets inge-drukt houdt om de verzadiging aan te passen

• van boven naar onderen (of omge-keerd) terwijl je de Shift-toets inge-drukt houdt om de helderheid aan te passen

Al deze waardes kan je ook aanpassen met de Inspektor.

32

VVVV // 4. Praktisch

Herr Inspektor

De Inspektor is een extern venster die alle info van een node toont. Het is zeer erg aan te raden om altijd een Inspektor te hebben openstaan. Je kan de Inspektor openen door op Ctrl-i te drukken. Om een node te inspecteren met de Inspektor moet je simpelweg op de specifieke node klikken waarna alle mogelijke info verschijnt in het Inspektor venster.

32 33

creares © 2013 // Jonas Vansieleghem

Patches lezenDoordat vvvv werkt met grafische objecten om te programmeren i.p.v. pure tekst, is het eenvoudiger om patches te lezen en te begrijpen. Om te zien waar data vandaan komt of naar-toe gaat moet je enkel de links volgen.

Hier volgt een truckje om patches beter te begrijpen: probeer de patch van onderen naar boven te lezen i.p.v. omge-keerd. Zoals eerder al vermeld komt de meeste data meestal terecht bij de Renderer. Hetgeen je ziet in de Rende-rer is het resultaat van de hele patch. Dus het eerste wat je moet doen is de (hoofd) Renderer zoeken (in complexe patches kunnen er meerdere Renderers voorkomen). Meestal ziet een eenvou-dige patch er zoals hiernaast uit.

Eenmaal je de Renderer hebt gevon-den is het simpelweg een kwestie van de input pins van de huidige node (in dit geval de Renderer) te volgen naar de voorgaande node. In de meeste geval-len is de Renderer verbonden met een Group. Verbonden met deze Group vind je dan weer nodes zoals Quad, Phong-Directional enzovoort.

De meeste nodes hebben een helpfile. Je kan ze openen door een node te selec-teren en op F1 te drukken. Er verschijnt hierna een apart venster met een nieuwe patch die demonstreert hoe de node werkt en kan gebruikt worden.

35

creares © 2013 // Jonas Vansieleghem

Na het research gedeelte volgen nu de

creaties die volledig gemaakt zijn in vvvv5

51

creares © 2013 // Jonas Vansieleghem

Enkele nuttige

linKs over het programma vvvv

www.vvvv.orgDe officiële site van het programma.

www.vvvv.org/forumHet officiële forum van vvvv. Hier kan je terecht met al je vragen.

www.vvvv.org/contributionsHier vind je de bijdrages van vvvv gebruikers.

www.vimeo.com/channels/vvvvHet vimeo kanaal van de vvvv gebruikers. Hier wordt het werk van verschillende artiesten tentoongesteld.

www.flickr.com/groups/vvvv/poolPrachtige screenshots genomen door vvvv gebruikers. De meeste afbeeldingen zijn volledig gemaakt in vvvv.

www.meso.netMESO is een media design bedrijf in Frankfurt. Het is de distributeur van het programma. Via deze site kan je hun projecten, waarvan het merendeel gemaakt is met vvvv, bekijken.

53

creares © 2013 // Jonas Vansieleghem

Overzicht van alle geraadpleegde

bronnen

Box2dhttp://box2d.org

Buffers, shaders & hLsLhttp://en.wikibooks.org/wiki/DirectX/10.0/Direct3D/Buffers_Shaders_HLSL

Bullet Physicshttp://bulletphysics.org/wordpress

c#http://nl.wikipedia.org/wiki/C#

directshowhttp://nl.wikipedia.org/wiki/DirectShow

dmXhttp://nl.wikipedia.org/wiki/DMX512

Generative Gestaltunghttp://www.generative-gestaltung.de

high Level shader Languagehttp://nl.wikipedia.org/wiki/High_Level_Shader_Language

microsoft directXhttp://nl.wikipedia.org/wiki/Microsoft_DirectX

open dynamics enginehttp://www.ode.org/

Pixel shaderhttp://nl.wikipedia.org/wiki/Pixel_shader

rasterisationhttp://en.wikipedia.org/wiki/Rasterisation

shaderhttp://en.wikipedia.org/wiki/Shader

shadinghttp://en.wikipedia.org/wiki/Shading

VBo Indexinghttp://www.opengl-tutorial.org/intermediate-tutorials/tutorial-9-vbo-indexing

Vertex shaders and Pixel shadershttp://www.tomshardware.com/reviews/vertex-shaders-pixel-shaders,411.html

VVVVhttp://vvvv.org

VVVV CREARES

©2013 JONAS VANSIELEGHEM