RWX:Basis

Uit 3Dwiki

Ga naar: navigatie, zoeken

Afbeelding:Tango-go-up.png Ga naar de hoofdpagina RWX

Hier wordt de basis van het werken met RWX objecten uitgelegd. Als je de RWX code die je bij deze les maakt in AW laadt, zie je echter helemaal niets. Zie daarvoor bijvoorbeeld de Vierkant les.

Inhoud

[bewerken] Punten, vlakken en afstanden

In RWX bouw je driedimensionale objecten uit punten en vlakken. Een punt noem je een vertex (meervoud vertices) en een vlak noem je een polygon. Je maakt eerst een aantal punten aan. Dan trek je als het ware lijnen tussen deze punten om vlakken te vormen.

Vlakken bestaan dus uit meerdere punten. Als een vlak uit drie punten bestaat, heet het ook wel een triangle en bij vier punten een quad. RWX heeft speciale commando's voor triangles en quads; voor vlakken met meer dan vier punten gebruik je polygon (zie verderop).

Afstanden in RWX worden gerekend in tientallen meters (zie afmetingen). Een afstand van 2 in RWX wordt dus 20 meter in AW. Omdat 1 eenheid in RWX een vrij grote maat is, worden vaak objecten in het geheel verkleind, zie Schalen.

[bewerken] Begin en eind

Elk object begint en eindigt met deze code. (Je kunt hier vanaf wijken, maar dat is een geavanceerder onderwerp.)

ModelBegin
ClumpBegin
 
"de rest"
 
ClumpEnd
ModelEnd

Daartussen komt de echte informatie over het object.

[bewerken] Punten

Zoals gezegd is een vertex een punt in de ruimte dat je nodig hebt om vlakken mee te maken.

Een vertex (punt) moet je een plek geven in de ruimte. Daarvoor gebruik je de x-, y- en z-waardes. In Active Worlds is de X horizontaal (van links naar rechts), de Y verticaal (van onder naar boven) en de Z diepte (van achteren naar voren!).

Vertex <x> <y> <z>

Hiermee maak je een punt dat 10 meter rechts van het midden staat. Verder is het punt niet omhoog/omlaag of naar voren/achteren gegaan.

Vertex 1 0 0

Een punt wat 30 meter links van het midden staat, 40 meter boven het midden en 10 meter de diepte in, maak je zo:

Vertex -3 4 -1

Nogmaals, punten op zichzelf zijn niet zichtbaar. Een punt wordt pas zichtbaar als je er een vlak bij maakt.

[bewerken] Vlakken

Zoals gezegd maak je van verschillende punten een vlak door er lijnen tussen te trekken.

Bij het maken van een polygon (vlak) moet je aangeven uit welke punten dit vlak bestaat en ook hoeveel punten je gebruikt.

Polygon <aantal> <v1> <v2> etc..

Als je een vierhoek wilt maken, zeg je eerst dat de vierhoek uit 4 punten bestaat en vervolgens geef je de nummers van die punten (1 2 3 4).

Polygon 4 1 2 3 4

Nummers van de punten? Elk punt dat je hebt aangemaakt heeft een nummer, daarmee kun je vlakken opbouwen. De nummers kun je niet zelf aangeven, het eerste punt in je RWX-bestand is automatisch punt nummer 1, het tweede punt nummer 2, etc. Om dit toch handig te kunnen zien, zetten de meeste mensen de nummers achter de punten als geheugensteuntje. Dit doe je als commentaar (#), zodat Active Worlds weet dat daarmee geen rekening gehouden hoeft te houden. Alle tekst vanaf een '#' op een regel wordt genegeerd door het programma.

Vertex -3 4 -1 #3

Zo weet je zelf altijd dat dit het derde punt is. Je moet alleen uitkijken dat als je punten verplaatst of van volgorde verandert, je de nummers ook moet veranderen!

Even verder waar we waren gebleven.

Polygon 4 1 2 3 4

Dit maakt dus een vierhoek. Je kunt daarvoor ook quad gebruiken. Dit is dus exact hetzelfde:

Quad 1 2 3 4

Voor driehoeken kun je triangle gebruiken op dezelfde manier (met drie punten).

Let op dat je bij quad (en ook bij triangle) niet hoeft aan te geven uit hoeveel punten het vlak bestaat, omdat dat natuurlijk al vaststaat.

[bewerken] Overige dingen

Naast het begin, punten, vlakken en eind zijn er nog een paar extra dingen. Deze hoef je niet in je RWX-bestand te hebben staan, maar ze worden bijna altijd gebruikt en zijn erg handig. Je zet deze eigenschappen tussen de punten (vertices) en de vlakken (polygons).

[bewerken] Surface

Dit bepaalt hoeveel licht het object terugkaatst (hoe licht/donker het eruitziet). Het gaat om ambient, diffuse en specular licht. Alle eigenschappen moeten op een schaal van 0.0 tot 1.0 worden aangegeven. Ambient bepaalt hoeveel invloed het omgevingslicht van de wereld op het object heeft. Diffuse bepaalt hoeveel invloed het directe wereld-licht (de zon) en andere lichtbronnen in de wereld op het object hebben. Specular wordt nog niet gebruikt in Active Worlds.

Surface <ambient> <diffuse> <specular>

Het is handig om alle waardes op 1 te zetten. Dit zorgt ervoor dat je objecten het licht volledig accepteren. Alleen als je dat niet wil moet je er van afwijken.

Surface 1 1 1
[bewerken] Color

Hiermee kun je een kleur aan een object geven. Dit doe je door rood, groen en blauw te combineren. Voor alledrie de kleuren lopen de waarden van 0.0 tot 1.0. Zie RGB conversie of wikipedia over RGB.

Color <red> <green> <blue>

Je zult regelmatig textures gebruiken om je objecten meer sfeer te geven. Toch is het handig om grofweg een kleur te geven aan het object. Dat het er wat leuker uitziet tijdens het laden. De volgende code geeft een standaard paarse kleur aan het object.

Color 1 0 1

[bewerken] Alles samen

Als je dit alles bij elkaar stopt heb je, zoals gezegd, nog niets wat je in Active Worlds kunt zien. Toch laten we even alles bij elkaar zien.

Let op, gebruik deze code dus niet!

ModelBegin
ClumpBegin
 
Vertex 1 0 0 #1
Vertex -3 4 -1 #2
 
Surface 1 1 1
Color 1 1 1
 
Polygon 4 1 2 3 4
Quad 1 2 3 4
 
ClumpEnd
ModelEnd

[bewerken] En nu verder

Als je iets wilt maken wat je wél in Active Worlds kunt zien, ga dan verder naar de Vierkant les.

Afbeelding:Tango-go-next.png Ga verder met Vierkant

Persoonlijke instellingen