# Modelleren van 3D-computergraphics

Modelleren van 3D-computergraphics omvat modelleringstechnieken om 3D-computergraphics te genereren.

## Techniek van ontwerpen
### Modelleren

Elk voorwerp waarmee een 3D-programma werkt, is beschreven als een driedimensionaal voorwerp, door een reeks van punten als x,y,z-coördinaten vast te leggen. Een ingewikkeld voorwerp, zoals een paard, kan daarom duizenden (of meer) punten bevatten. De meeste programma's kunnen ook met wiskundige formules werken en bijvoorbeeld ergens een bol of een vierkant als wiskundig voorwerp definiëren.
Aangezien een computerbeeldscherm plat is, kan het maken van een 3D-voorwerp lastig zijn. Bij het ontwerpen wordt vaak een voor-, zij- en bovenaanzicht tegelijkertijd op het scherm getekend. Daarnaast kan vaak met de muis het voorwerp even gedraaid worden om het van alle kanten te bekijken.

#### Extrude

Extrude is een standaardfunctie bij vrijwel alle programma's. Het Engelse woord 'extrude' betekent 'naar buiten dringen'. Met deze functie is het mogelijk om een profiel te maken door alleen de curve te tekenen.
De curve is hier een gesloten curve, en is bijvoorbeeld het profiel van een spoorrails. Het programma tekent een vloeiende lijn door de punten. Vervolgens is er met de extrude-functie een profiel van gemaakt, en het uiteindelijke resultaat is berekend (renderen).

#### Lathe of revolve

De functie lathe of revolve hoort ook bij de standaardfuncties. Het Engelse woord lathe betekent draaibank. Hiermee is het mogelijk om van een kromme een rond voorwerp te maken, door de kromme als het ware in de rondte te laten gaan.
De kromme is met een paar punten vastgelegd en is bijvoorbeeld de buitenkant van een vaas of een fles. Het programma tekent een vloeiende lijn door die punten. Met lathe ontstaat een rond voorwerp. Door het resultaat te laten berekenen, te renderen ontstaat het plaatje van de vaas of fles.

#### Subdivision

Voor het ontwerpen van voorwerpen met ronde vormen bestaan er verschillende technieken, waarbij slechts een paar punten hoeven te worden vastgelegd, waarna het programma er een ronde curve van maakt, en alle tussenliggende punten toevoegt. Subdivision (letterlijk: onderverdeling) is een flexibele methode om een willekeurig voorwerp minder 'hoekig' te maken. Het wordt ook wel "smoothing" (gladmaken) genoemd. De vorm van het resultaat gaat meestal niet door de punten heen. Bij de meeste programma's kan met de muis dat voorwerp in realtime gewijzigd worden, en als het ware in de juiste vorm "gekneed" worden.

#### Patch modelling

In tegenstelling tot "subdivision" en "smoothing" gaat bij "patch modelling" (modelleren door vlakken tussen lijnen aan te brengen) de vorm wél door de oorspronkelijke punten heen. Hiervoor wordt een ander rekenalgoritme gebruikt dan bij subdivision. In de praktijk is het verschil echter niet altijd zo duidelijk.

#### NURBS

NURBS staat voor NonUniform Rational Bezier Splines, en levert resultaat op dat vergelijkbaar is met Subdivision, namelijk strakke vormen die op een voor de gebruiker logische manier interfereren. Bij NURBS wordt de Bezier Spline als curve gebruikt. De kanttekening moet worden gemaakt dat NURBS dus minder rekent met punten als uitgangspunt dan subdivision: er wordt gerekend met lijnen, waarbij de mate waarin de omliggende lijnen moeten worden betrokken bij vervorming van het object door de gebruiker kan worden aangegeven. Deze methode maakt komaf met het 'micromanagement' zoals vaak voorkomt bij Subdivision of polygonal modelling. Het is niet nodig om globale vormen stuk voor stuk op hun plaats te zetten (cfr. vertices bij polygonal modelling) Resultaten zijn goed bewerkbare, organische of mechanische, oppervlakten die zeer geschikt zijn voor bijvoorbeeld vervoermiddelen als auto's. Dit is ook meteen de basis voor NURBS, aangezien auto's zeer moeilijk te creëren zijn met polygonale objecten. De 'B' uit NURBS komt dan ook van Bezier aangezien deze man de eerste paper over NURBS heeft geschreven. Het nadeel van NURBS op dit moment is dat de texturetechniek en compatibiliteit met externe toepassingen (nog) niet helemaal op punt staat, waardoor het een aanpassing kan betekenen van de werktechniek en/of het bijleren van de benodigde vaardigheden. Wel bieden vele 3D-softwareapplicaties mogelijkheden NURBS-objecten gemakkelijk en foutloos over te zetten naar universelere formaten als polygonale objecten.
Bekende 3D-applicaties met NURBS ondersteuning zijn 3ds Max en Maya 3D

#### Metaball (Blob)

Een techniek om vloeiende ronde vormen te maken is met de "metalball"- of "blob"-techniek. Daarbij worden enkele bollen (of andere vormen) in de buurt van elkaar geplaatst. Waar de bollen het dichtst bij elkaar staan, trekken ze elkaar aan en vloeit hun vorm in elkaar over.
| zonder Metaball | met Metaball |
Het eerste plaatje geeft aan hoe de bollen zijn geplaatst. Voor het tweede plaatje is alleen de metaball-functie aangezet, maar is verder exact hetzelfde.

#### Bomen

Het tekenen van een boom was een lastig karwei. Er zijn allerlei methoden gebruikt om een zo echt mogelijke boom te tekenen, maar niet altijd met succes. De enige goede oplossing bleek om een boom compleet, inclusief alle takken en alle bladeren te definiëren. Vanzelfsprekend duurt het uitrekenen van het resultaat dan langer. Veel 3D-programma's hebben algoritmes om de vorm van bomen te definiëren.

#### Vacht en haar

Om een vacht en haar natuurgetrouw na te bootsen zijn nog geen standaardmethodes ontwikkeld. De programma's die in staat zijn om dat te maken, doen dat meestal pas op het laatste moment tijdens het renderen.

### Tekening van oppervlak en volume

Het oppervlak van een voorwerp kan een bepaalde structuur en kleur krijgen, bijvoorbeeld 'hout' of 'steen'. De tekening kan wiskundig berekend worden, maar kan ook van een foto afkomstig zijn.

### Renderen

Onder renderen wordt verstaan het feitelijke uitrekenen van de resulterende afbeelding. Daarvoor zijn verschillende rekenmethoden ontwikkeld. Het berekenen van een afbeelding kan een fractie van een seconde tot enkele dagen duren. De rekenmethoden zijn ervoor om een zo realistische afbeelding in zo kort mogelijke tijd te maken.
Er zijn verschillende methoden om te renderen, waarvan raytracing de bekendste is, en er zijn technieken om meer realisme toe te voegen, bijvoorbeeld met radiosity. Bij radiosity reflecteert elk voorwerp licht van zijn eigen kleur. In het voorbeeld is te zien, dat het grondoppervlak een klein beetje rood kleurt in de buurt van de rode bol. Dit effect gebeurt ook in de werkelijkheid, en door dat tijdens het berekenen mee te nemen ziet de afbeelding er natuurgetrouwer uit.
Een afbeelding die nauwelijks van een echte foto is te onderscheiden wordt fotorealistisch genoemd.

## Animatie

Als meerdere plaatjes achter elkaar worden afgespeeld, terwijl er voorwerpen gewijzigd worden, ontstaat er zo een animatiefilm. Soms wordt dan van "4D" gesproken, omdat de tijd er als vierde dimensie bij is gekomen.