11 Navigatie door de wereld

Je hebt nu gezien hoe we punten door transformaties een andere plek kunnen geven. Je hebt ook gezien hoe we een wereld via een kijkpunt en een beeldvlak kunnen projecteren op het scherm. Stel je wilt nu een spel maken waarin jij als speler het kijkpunt bent. Dan zijn er twee acties die kunnen plaatsvinden:

1.
er beweegt wat in de wereld,
2.
de speler beweegt in de wereld.

De beweging van een object in de wereld kun je wiskundig beschouwen als een transformatie van dat object waardoor er een nieuwe wereld komt die moet worden afgebeeld.

Een beweging van de speler zorgt voor een ander kijkpunt en een ander kijkvlak. Echter je kunt een beweging van de speler ook beschouwen als een stilstand van de speler en een tegengestelde beweging van de hele wereld. Hierdoor zijn beide acties wiskundig gezien gelijk. Het verschil zit alleen in de hoeveelheid te transformeren objecten in de wereld. In het eerste geval is het één object, in het tweede geval zijn het alle objecten.

Laat O een object in de wereld zijn getekend als een verzameling lijnen die n punten verbinden. Dan kun je O in homogene coördinaten weergeven als een 4 × n matrix. Een beweging van het object of een beweging van de speler is een mogelijke combinatie van transleren, roteren, spiegelen en schalen. Ieder op zich geeft dat een 4 × 4 transformatie matrix. Na samenvoegen (matrices vermenigvuldigen) geeft dit ook weer een 4 × 4 transformatie matrix. Laten we die matrix even T noemen.

Voor de speler kiezen we een vaste positie en vast beeldvlak in de wereld om alles te kunnen afhandelen als één actie. Als we dit doen is de matrix A zoals we die in de vorige sectie hebben afgeleid altijd dezelfde tenzij we aan het venster op het scherm gaan sleutelen.

De homogene schermcoördinaten van het object (S) krijgen we nu door de vermenigvuldiging:

S = ATO

De punten in S moeten dan alleen nog van homogeen naar euclidisch worden omgezet waarna ze getekend kunnen worden.

In een door jouw geschreven programma kun je er dus voor kiezen om A constant te maken en T en het object O waar nodig te veranderen.

Conclusie: Wiskundig gezien is het afbeelden van een 3D wereld op een scherm niet heel erg ingewikkeld, maar in een gedetailleerde ’wereld’ is het aantal berekeningen enorm.

Verder: Tot nu toe hebben we alleen punten getransformeerd. De ligging van punten en daaruit gevormde objecten hebben ook nog een plaats ten opzichte van elkaar en hebben kleuren en kunnen ook nog een belichting hebben. Omdat dit in 3D tekeningen op de computer allemaal aanwezig kan zijn is daar natuurlijk ook wiskundig gereedschap voor. Helaas gaat dat teveel tijd kosten in deze cursus, maar niets let je om je daar in te verdiepen.