• Niet gecategoriseerd

Bouw je eigen huis – deel 3 – textures

In de vorige twee delen, de setup en Gmax, heb ik je laten zien hoe je je eigen huis of een ander object naar keuze kunt bouwen en welke stappen je volgt om dit bouwwerk in Microsoft Flightsimulator 2004 te tonen. Het resultaat is een bouwerk in één kleur wat nog niet het gewenste realistische effect geeft. De oplossing hiervoor zijn textures. Textures zijn gewoonweg plaatjes in bmp (bitmap) formaat zoals deze al heel lang onder Windows bestaan. Er is nog wel een aantal extraatjes aan zo’n bmp toegevoegd voor onder andere efficientie. De tool die je voor deze extraatjes gebruikt is gratis meegeleverd. De textures plak je op het bouwwerk en voila, as real as it get.

Foto en film materiaal

De basis voor een texture is een goede foto of een snapshot uit een film. Een paar jaar terug was het nog redelijk wat werk om een mooie kwaliteit foto op je computer te krijgen. Eerst de foto laten ontwikkelen en vervolgens scannen met kwaliteitsverlies en kleurverschillen. Oh ja, en dan was die foto net niet goed qua belichting of vanaf een achteraf net verkeerde plek geschoten. Of als je met een videocamera werkt dan had je een dure video capture kaart nodig. De kosten konden dus lekker oplopen. Tegenwoordig zijn er goede betaalbare digitale fototoestellen en videocamera’s met bijbehorende software, waarmee je razendsnel het gewenste materiaal op je computer zet met behoud van kwaliteit.

De ervaring zal je leren wat een goede kwaliteit foto als basis voor een texture is, maar ik zal enkele hints geven:

  • De mooiste kleuren krijg je in de zomer als de zon hoog in de lucht staat. Je hebt weinig kans op heldere foto’s als je vlak voor zonsondergang de foto’s gaat nemen. Uiteraard kun je in de winter of bij regen goede foto’s krijgen, maar je dient de tijdstippen beter uit te zoeken. Een avondzon in de rug levert meestal toch behoorlijk donkere foto’s op.
  • Houd bij een videocamera telkens even 1 a 2 seconden goed stil (adem in) bij de plekken van het object waarvan je een foto wilt hebben. Anders worden de snaphots erg wazig door de beweging.
  • Probeer zo recht mogelijk voor de gevel te komen zowel horizontaal als verticaal, zodat je later in een fotobewerkingspakket niet te veel hoeft te wijzigen. Neem dus afstand van de gevel zodat er wél een goede kwaliteit foto uitkomt maar je dus niet praktisch aan de voet van de gevel staat, met als gevolg dat de foto verticaal erg vervormd is. Voorbeeld: als ik een foto neem van een grachtenpand dan ga ik naar de overkant van de gracht.
  • Voorkom zoveel mogelijk obstakels zoals bomen, auto’s, lantaarnpalen, etc voor opvallende stukken van het object dat je fotografeert. Een stapje naar links of rechts kan net een hoop verschil uitmaken als je bijvoorbeeld net dat logo van het pand er wel op wilt hebben. Wat bomen betreft is de winter dus een betere tijd. In het fotobewerkings pakket dat je gaat gebruiken kun je meestal veel corrigeren, maar voorkomen is beter dan genezen.

Sommige gebouwen mag je niet zomaar fotograferen of filmen, zeker niet in deze tijd. Vraag dus bij twijfel of het mag en leg uit waarvoor je dit doet. Mocht een bewakingsbeambte je wegsturen dan kun je vervolgens de juiste personen benaderen om toch te mogen fotograferen of filmen. Dat kost soms wat moeite, maar is met een beetje geduld en vastberadenheid te doen.

Andere manieren om aan foto’s te komen:

  • Zoek op het internet. Let op copyrights en vraag bij twijfel aan de auteur of je de foto mag gebruiken.
  • Kijk of er tussen de standaard textures van Microsoft Flightsimulator bruikbare textures zitten.

Textures maken

Als je het basismateriaal op je computer hebt staan dan kun je starten met het maken van de textures. Een foto is 99 op de 100 keer niet in één keer bruikbaar. Hiervoor heb je een fotobewerkingspakket zoals Photoshop, The Gimp of Paintshop voor nodig. The Gimp is een gratis pakket en een goed alternatief voor beide andere pakketten, maar misschien niet het meest intuitieve. Ieder zal zo zijn/haar voorkeur hebben en binnen dat pakket een aantal tools het meest gebruiken:

  • Skew. Meestal kun je niet genoeg afstand nemen van een gebouw of sta je er scheef voor. Om de foto recht te trekken gebruik je de tool skew. Als je de foto niet recht trekt dan zul je, als je recht voor je bouwwerk staat, een scheef bouwwerk zien. Arno Gerritsen heeft hierover in combinatie met The Gimp een artikel geschreven op zijn website www.SceneryDesign.org.
  • Magic wand / clone tool. Hiermee kopiëer je een stukje van de foto over een ander stukje foto. Stel dat je een lantaarnpaal wilt wegpoetsen met het motief en de kleur van datgene wat je er net naast ziet. Dan alt-click je op dat gedeelte en kleurt daarmee de lantaarnpaal weg. Het resultaat geeft een natuurlijk effect.
  • Kopiëren van stukjes foto. Een snelle en effectieve manier door simpelweg stukken die juist zijn te kopiëren over stukken die je wilt wegpoetsen. Stel dat er aan de onderkant van een kozijn wat struiken voor staan. Kopiëer dan een stukje kozijn wat wel goed zichtbaar is over die struiken en je hebt een geheel zichtbaar kozijn.

Gmax kan zowel Photoshop (psd) als bitmap (bmp 24 bit) bestanden aan. Sla de texture dus op in het formaat naar voorkeur.

De schaal van een texture

Welke afmetingen voor een texture is nu verstandig? Op het eerste gezicht denk je: “Hoe groter hoe beter.” Maar hoe groter, hoe lager de framerate. Nu maakt dat natuurlijk niet uit als je één huis maakt midden in een weiland gebied waar verder geen objecten staan. Maar als je te maken hebt met meer objecten zoals op Schiphol dan moet je een compromis maken tussen detail, framerate en de totale download die je wellicht aan andere gebruikers gaat aanbieden via het internet.

Als grootste maat neem ik meestal een texture van 512×512 pixels en met hoge uitzondering een texture van 1024×1024 pixels. Als je bijvoorbeeld een mooie gevel van een historisch gebouw hebt gefotografeerd dan wil je die niet op een texture van 128×128 pixels omdat dan alle detail verloren gaat. Een texture van 128×128 pixels is bijvoorbeeld wel weer goed als je een repeterende texture van enkele verdiepingen maakt voor een hoog flatgebouw. Zowiezo heb je te maken met de standaard afmeting van een texture. Die moet namelijk een aantal pixels hoog of breed met een macht van twee zijn. Goede afmetingen zijn bijvoorbeeld 256×256, 512×128 en 256×64. De texture hoeft dus niet persé vierkant te zijn.

Stel dat je een foto hebt van een logo op een gebouw en een foto van de gehele gevel. Als je alleen de foto van de gehele gevel in een texture verwerkt dan is waarschijnlijk het logo op die texture niet meer geheel herkenbaar in Microsoft Flightsimulator. Waarschijnlijk denk je nu: “Ik plak mooi beide foto’s op één texture waardoor het logo veel detail heeft en de rest van de gevel wat minder.” Helaas is de schaal van beide foto’s compleet verschillend, waardoor het logo alsnog geen detail krijgt. De oplossing hiervoor is simpel. Plaats beide foto’s op een aparte texture. Als regel geldt namelijk dat de schaal van de foto’s die je op één texture plaats ongeveer hetzelfde moet zijn. Sommige mensen tellen dit zelfs helemaal uit hoeveel pixels per meter er gebruikt gaat worden. Dat geduld heb ik in ieder geval niet 🙂

Textures plaatsen op objecten in Gmax

Nu de textures klaar zijn kun je ze plaatsen op je bouwwerk. Net als in deel twee van de reeks “Bouw je eigen huis” wordt het plaatsen van textures ook beschreven in de tutorial die is meegeleverd bij de Gmax gamepack SDK. Kijk in de installatie directory van Gmax waar je de directory gamepacksfs2004doc zal aantreffen. Hierin vind je het document gmaxSceneryTutorial.doc. Vanaf bladzijde 18 wordt het plaatsen van textures beschreven. De manier waarop dit wordt gedaan in de tutorial vind ik echter redelijk ingewikkeld en kan simpeler. Probeer eerst eens onderstaande methodes en daarna die van de tutorial. Bij elkaar geeft dit een behoorlijk compleet beeld. Download beide textures die ik in de onderstaande voorbeelden gebruikt heb, zodat je je eigen werk goed kunt vergelijken.

Basis stappen

Bij het plaatsen van de eerste texture volg ik altijd een standaard procedure om later allerlei rare verschijnselen te voorkomen. In de loop van de tijd ontdek je andere manieren om die verschijnselen te voorkomen, maar tot die tijd raad ik aan om deze eerste stappen elke keer toe te passen op een kaal object.

  • Start Gmax en open je bouwwerk.
  • Zorg dat het object is geconverteerd naar editable mesh (zie deel 2) en zorg dat het hele object is geselecteerd en niet alleen één poly of punt.
  • Start de Material Navigator door te klikken op de volgende button:
  • Selecteer aan de linkerkant voor File System en blader naar de map waar je de textures hebt opgeslagen.

  • Klik éénmaal op de texture die je het meest zult gebruiken. Klik dan nogmaals op de texture en sleep deze bovenop het object. Indien je de texture niet eerst hebt aangeklikt, heb je een grote kans dat de verkeerde texture op je bouwwerk verschijnt. Het resultaat is waarschijnlijk totaal niet wat je verwacht, maar volg gewoon de volgende stappen.
  • Sluit de Material Navigator.
  • Selecteer de de Modify tab rechtsbovenin het scherm (zie deel 2).
  • Klik op de dropdown menu modifier list en selecteer UVW map.
  • Selecteer in het parameters gedeelte bij mapping voor box.
  • Rechtermuisklik op UVW Mapping in de modify stack en kies voor Collapse All.

UVW Mapping

Wat is die UVW mapping nu precies? Je moet je voorstellen dat er zich een onzichtbaar frame of raster om het object bevindt. De coordinaten van de punten van dat frame worden uitgedrukt in U, V en W net als de punten van het object zijn uitgedrukt in X, Y en Z. De textures worden niet geplakt op het object zelf, maar op het frame daaromheen. Het krachtige hiervan is dat je het frame onafhankelijk van het object zelf kunt draaien, verplaatsen, vergroten, verkleinen, etc. Laat me je dit demonstreren aan de hand van een voorbeeld:

  • Maak een nieuwe box en pas bovenstaande stappen toe behalve de laatste stap met Collapse All.
  • Klik in de modify stack op het plusje voor UVW Mapping en klik dan op Gizmo. Je ziet dan om het object gele lijnen verschijnen.

  • Nu je het woord Gizmo hebt geselecteerd klik je op de Move tool
  • Probeer het object eens te verplaatsen. En wat zie je? Je verplaatst de texture in plaats van het object. Dit komt omdat het frame (de gizmo) wordt verplaatst waarop de texture zich bevind.
  • Probeer ook eens de Rotate of Scale tool . Klik op de button Reset (onderin de Modify tab) om alle wijzigingen aan de gizmo ongedaan te maken.
  • In de Modify tab zie je ook de parameters U Tile, V Tile en de opties Flip daarachter. Speel hier ook wat mee en zo zie je dat je het aantal keer repeteren van een texture heel exact kunt bepalen. Wat het nut is van W Tile heb ik nog nooit begrepen.
  • Je kunt ook voor een ander soort mapping kiezen. In bovenstaand voorbeeld heb je voor Box gekozen, maar je kunt de gizmo ook op andere manier om het object laten vormen. Klik éénmaal op de button Reset en zorg dat het woord Gizmo is geselecteerd om het mooiste resultaat te zien als je van mapping veranderd. Probeer eens de mapping Spherical. Ze zult zien dat je het meest de mapping Box zult gebruiken.

  • Vergeet niet aan het einde weer voor Collapse All te kiezen via de Modify stack.

Dit plaatje toont mijn resultaat na een paar klikken en je ziet al het repeterende effect. Maar wat nu als je op de ene zijde de texture vier keer herhaald en op een andere zijde dezelfde texture negen keer wilt herhalen en op een andere zijde een totaal andere texture wilt plakken? Nu wordt het spannend 🙂

Textures per poly bewerken

Het antwoord is om te werken per zijde (poly) van een object. Laten we eens gaan oefenen:

  • Maak een box door de bovenstaande basis procedure te volgen zodat er een box ontstaat met twee rode en twee witte vlakken per zijde. Nogmaals, vergeet de stap Collapse All niet.
  • Ga naar Poly mode (zie deel 2, editable mesh) door in de Modify stack op het plusje voor Editable Mesh te klikken. Klik dan op Polygon.
  • Selecteer een zijkant.
  • Selecteer weer UVW Map uit de Modifier List (dropdown in Modify tab). Je ziet dat het bewerken van de texture zich concentreert op de poly.
  • Kies als Mapping parameter Face of Box.
  • Zet U Tile op 2 en V Tile op 5.
  • Rechtermuisklik op de Modify Stack en kies weer voor Collapse All. Het is belangrijk om na elke poly voor Collapse all te kiezen, anders heb je een grote kans dat je bouwwerk straks niet wil exporteren en je ook rare texture effecten kunt krijgen.
  • Selecteer de poly aan de bovenkant.
  • Open de Material Navigator en selecteer File Systems.
  • Klik éénmaal op een andere texture en klik en sleep die vervolgens op die poly en sluit vervolgens de Material Navigator.
  • Selecteer weer UVW Map uit de Modifier List, selecteer gizmo door op het plusje voor UVW Mapping in de Modify stack te klikken, kies de Rotate tool en draai vervolgens de gizmo een stukje.
  • Zet V Tile op twee en kies weer voor Collapse All. Als het nu nog niet duidelijk is om na elke texture-bewerking van een poly een Collapse All uit te voeren, dan weet ik het niet meer 😉

Zoals je ziet kun je op deze manier de meeste textures op de juiste plek krijgen.

Texture plaatsen op een poly dmv UVW Unwrap

Er is nog een methode waarmee je zeer precies een texture op een poly kunt plaatsen. Hiervoor gebruik je de modifier UVW Unwrap. Ook hier verteld een voorbeeld meer dan veel woorden, maar waarom zou ik dat uitleggen als dit al is gedaan met veel plaatjes in de Gmax scenery tutorial die je dus kunt vinden in de directory gamepacksfs2004doc. Vanaf punt 22 tot en met punt 42 in het hoofdstuk Creating and applying textures wordt dit haarfijn uitgelegd. Mocht je niet uit het Engels komen, vraag dan aan mij om dat stuk te vertalen. Dan zal ik het alsnog bij dit artikel plaatsen. Het leuke van de methode UVW Unwrap is dat je de meest rare vormen kunt krijgen van een texture op een poly, maar dit is tevens ook het gevaar van deze methode. Aldoende leert men.

Texture geschikt maken voor FS

De textures die je gemaakt hebt zijn nog niet geschikt voor Microsoft Flightsimulator. Hiervoor dien je nog een kleine stap te zetten waarvoor je ImageTool gebruikt. ImageTool is gratis meegeleverd in de Gmax Gamepack SDK. Kijk in de installatie directory van Gmax in de gamepacksfs2004 ools directory. Daar tref je imagetool.exe aan die je texture kan converteren naar het zogenaamd DXT1 formaat met mipmaps. DXT1 is een bepaald compressie formaat net als jpeg, gif, etc. Mipmaps zijn meerdere plaatjes in één bitmap bestand. Een voorbeeld maakt meer duidelijk dan een boel tekst, dus volg het onderstaande voorbeeld:

  • Start ImageTool (een shortcut is wel zo makkelijk).
  • Open de texture die je gemaakt hebt. Je ziet dat ImageTool diverse formaten aankan waaronder bmp en psd. Let op de informatie, vooral Format en Mip Levels, aan de rechtkant van ImageTool.
  • Klik in het Image menu op Create MipMaps.
  • Klik in het Image menu op Format en vervolgens op DXT1. Merk op dat de bestandsgrootte aardig slinkt zonder veel verlies van detail.

  • Sla het bestand op als bmp in een andere locatie dan je originele texture, bijvoorbeeld de directory waar de uiteindelijke scenery komt te staan. Dit is vooral van belang als je originele texture ook een bmp is! Door de conversie naar DXT1 gaat er namelijk informatie verloren. Indien je toch nog iets aan je texture zou willen veranderen dan gebruik je natuurlijk het liefst de originele 24 bits bmp.

Aan de hand van bovenstaand plaatje is duidelijk te zien wat mipmaps zijn. Wat doet Microsoft Flightsimulator hier nu mee? Stel dat je in de verte een object ziet. Dan zul je van die afstand nog niet alle details kunnen zien. Dan is het dus ook zonde om een grote texture op dat object te laten tekenen waardoor je processor en de grafische kaart het erg zwaar zouden krijgen. In de texture zie je hierboven 5 mip levels. Als je ver van een object verwijderd bent zal het kleinste mip level getoond worden op je object waardoor je toch al een goede indruk krijgt van het object. Als je dichtbij het object bent zal het grootste mip level getoond worden. Een simpele actie via ImageTool zorgt dus voor een hogere framerate.

Mocht je meerdere texture tegelijk willen converteren dan kun je ook de commandline optie van ImageTool gebruiken. Start een command prompt op en ga naar de directory waar imagetool.exe staat. Type dan het volgende commando in: imagetool -help. Een popup verschijnt met alle mogelijke opties van ImageTool. Door gebruik te maken van wildcards zoals de * en ? kun je hele directories tegelijk converteren.

Nachttextures en transparante textures

En hoe ziet je huis er ’s nachts uit in Microsoft Flightsimulator? Donker waarschijnlijk. Door omgevingsverlichting en verlichting van het huis zelf ziet het er in het echt natuurlijk heel anders uit. En stel dat je zelfs de binnenkant van je huis hebt bekleed en die vanaf de buitenkant zou willen zien. Ook dat is mogelijk en kun je oplossen door transparante textures te maken. Beide onderwerpen gaan te ver voor deze tutorial, maar staan gelukkig goed beschreven op een forum van www.SceneryDesign.org. Indien je de transparante textures met Photoshop wilt maken is het artikel How to make an alpha channel with PhotoShop heel handig.

Conclusie

Deze tutorial samen met de vorige twee delen, de setup en Gmax, bieden je een complete set aan informatie om je eigen huis na te bouwen en die aan mede virtuele vliegers te laten zien in Microsoft Flightsimulator. Als je net zoals ik het “bouwvirus” te pakken krijgt, dan ben ik bang dat het niet alleen bij je eigen huis blijft…

Vervolg

In het laatste deel van de artikelreeks Bouw je eigen huis behandel ik:

  • waar je rekening mee moet houden als je meerdere objecten gaat bouwen. Hiervoor gaan we onder andere Library Creator XML gebruiken wat geschreven is door Arno Gerretsen, een teamlid van het NL2000 team.

Veel plezier

Erwin Horjus – NL2000 team

Mark

Mark

Site admin of NL-2000.com

Dit vind je misschien ook leuk...