vrijdag 22 juli 2011

eersteOefening



Een eerste oefening met Unity

Wij kunnen ons inmiddels oriënteren in de ruimte van Unity met behulp van een linkshandig orthogonaal assenstelsel en Eulerhoeken. Om dit te oefenen gaan wij een een vlak voor, achter, links, rechts, boven en onder de camera plaatsen. Om te zien tegen welk vlak wij aankijken, is het makkelijk om deze informatie op het vlak zelf te plaatsen. Dus op het vlak voor de camera plaatsen wij de tekst "voor", enz.

Door een skybox toe te voegen (hoe moet dat?) en de camera te laten draaien om de y-as (en een beetje rond de x-as), krijgen wij dit resultaat

Het script is hier te vinden

donderdag 21 juli 2011

Ruimte in Unity

Ik wil de vakantie gebruiken om lesmateriaal voor Unity te ontwikkelen. Dit is een programma om 3d videospellen te kunnen ontwerpen en te realiseren. Ik ben met name geïnteresseerd welke wis- en natuurkunde onderwerpen hierbij begrepen moeten worden, zodat ik bij mijn lessen wis- en natuurkunde hiermee rekening kan houden. Er zit volgens mij teveel verschil tussen wiskunde zoals deze in het middelbare onderwijs wordt aangeboden en de wiskunde zoals deze gebruikt wordt in programmeeromgevingen zoals bijvoorbeeld Unity.

Het eerste onderwerp dat ik wil behandelen is meteen de basis: de ruimte in Unity. In het wiskundeonderwijs wordt vrijwel altijd gewerkt met een rechtshandig orthogonaal xyz assenstelsel. Orthogonaal wil zeggen dat de x-, y- en z-as loodrecht op elkaar staan. Rechtshandig is een niet echt wiskundige toevoeging, maar daarmee wordt bedoeld dat je met duim, wijsvinger en middenvinger op min of meer natuurlijke wijze de x-, y- en z-as kan aangeven. Omdat er bij Unity (en veel andere programma's) er in eerste instantie is uitgegaan van een 2D programmeeromgeving en de 3de dimensie pas later is toegevoegd, moet men daarom vaak werken met een linkshandig xyz-assenstelsel. Bij computertoepassingen wordt van nature vaak voor een x-as gekozen die van links naar rechts over het beeldscherm gaat, een y-as die van beneden naar boven over het scherm gaat (of soms zoals bij Flash van boven naar beneden) en blijft er als derde de as over die "in het scherm gaat" of "uit het scherm komt" en wordt dit de z-as. Dit levert helaas een linkshandig assenstelsel op en moet hier bij de wiskundelessen even rekening mee worden gehouden.

De camera wordt in Unity standaard geplaatst op de positie (0,1,-10). De camera is dus geplaatst in de richting van de kijker en staat iets boven het nul-niveau. Bij de rotatie van de camera wordt de kijkrichting opgegeven in zogenaamde Euler hoeken. Het goede nieuws is dat de hoeken "gewoon" in graden kunnen worden opgegeven en niet in radialen, maar wel met drie hoeken tegelijk in de vorm van een coördinaat met respectievelijk de draaiing om de x-, y- en z-as. Bij een draaiing van (0,0,0) kijkt de camera met de kijker mee in de z-richting. Als je wil zien wat er rechts van de camera staat, moet de camera om de y-as roteren naar (0, 90,0) en als je wil zien wat er links de camera staat moet je de camera roteren naar (0,-90,0). Als je wil zien wat er boven de camera hangt, moet je de camera om de x-as roteren naar (-90,0,0) en als je wil zien wat er onder de camera ligt moet de deze roteren naar (90,0,0). Als je de camera roteert naar (0,0,90), kijk je recht vooruit, maar lig je op jouw rechter oor en bij een rotatie van (0,0,-90) lig je op jouw linker oor.

Daarnaast geldt voor hoeken altijd dat zij cyclisch zijn. Dat wil zeggen dat het niet uitmaakt of je 0, 360 of -360 graden roteert. Zo kan je achter je kijken met een rotatie van (0,180,0) of (0,-180,0).

Nu eens kijken of ik hiervoor leuke opgaven kan bedenken, zodat er geoefend kan worden met het werken met 3D coördinaten en Euler-hoeken.

zondag 18 januari 2009

Introductie

Eerste blog-entry.

Stelt niet zoveel voor hè?