Naar de Oogst-overzichtssite

Meer tutorials door Oogst

Tutorial voor een basic huisje

deel 2: het texturen

voor 3d Studio MAX 4 tot en met 8

door Joost 'Oogst' van Dongen

Lukt de tutorial niet, zitten er fouten in of heb je iets anders te melden? Mail dan naar tsgoo@hotmail.com

laatste update: 11 maart 2006

Inhoudsopgave:
Deel 1: het modellen

Introductie en start-file
De basics van de material editor
De dakpannen: procedural textures/diffuse- en bump-maps
De bakstenen
Het hout van de deur, de deurpost en de raamkozijnen
Meer dakpannen: bump-maps in plaats van polygonen en meerdere materials per object
Het dilemma van de ramen

De wolken op de achtergrond
Het hekje: een opacity-map
Het gras: lelijke herhaling verhelpen
Afsluiting van deel 2: het texturen

Deel 3: de belichting

Deel 4: animatie

Introductie en start-file

In dit tweede deel van deze tutorial gaan we ons huisje van materialen en textures voorzien. We gaan werken naar het volgende resultaat:

Hierbij komen de basisaspecten van texturing aan de orde: textures in de vorm van plaatjes uit een texture-database, in de vorm van door MAX gegenereerde procedural textures en met een zelf gemaakte bump-map. We gaan textures plaatsen in de diffuse-, opacity-, bump- en reflection-sloten en we gaan voor hooglichten zorgen met de glossiness- en specular level-instellingen. Al die textures gaan we plaatsen op de objecten met verschillende methoden, waaronder vooral veel met de UVW-map-modifier. Dus laten we maar snel aan de slag gaan met al die nieuwe technieken!

Je kunt nu verder gaan met het huisje dat je in deel 1 van deze tutorial-serie hebt gemaakt, of het bestand dat je hier kunt downloaden gebruiken. In dit bestand staat wel hetzelfde huisje als je in deel 1 hebt gemaakt, maar een aantal dingen is veranderd:
-een deel van de dakpannen is verwijderd, want dit gaan we met een bump-map doen;
-de andere dakpannen zijn voor de duidelijkheid samengevoegd tot één object (door middel van de attach list-functie in de edit mesh-modifier);
-alle objecten hebben een duidelijke naam gekregen, waardoor ik gemakkelijk kan zeggen welk object je moet selecteren;
-om het huisje zijn een aantal lampen gezet (voor textures is het namelijk belangrijk dat een scene is voorzien van belichting, zodat je kunt zien hoe de textures uitvallen, maar belichting komt pas in deel 3 aan de orde);
-de grond-plane heeft een scale van 100 gekregen, hierdoor wordt hij tijdens het renderen 100x maal zo groot als in de viewports, wat een horizon oplevert.

Als je graag verder wilt gaan met je eigen versie van het huisje, dan moet je er even op letten dat de namen in deze tutorial niet overeenkomen en je dus goed moet kijken wat je selecteert. Ook staan er in je eigen versie nog geen lampen, waardoor materials er niet precies hetzelfde uit zullen zien.

De basics van de material editor

We beginnen met het texturen van de dakpannen, waarbij ik eerst wat basics ga bespreken van texturen. Selecteer daarvoor de objecten dak 01 pannen; dak 01 nok en dak 02 nok. Dit kan gemakkelijk met de select by name-functie die aan het begin van deel 1 van deze tutorial aan bod kwam. Dit zijn dus alle dakpannen en de nok op het dak.

Ga vervolgens naar de material editor. Vaak zit die onder de sneltoets 'm', als dat niet zo is kun je hem in de balk bovenin beeld vinden (rood omlijnd hiernaast). Deze balk kun je verschuiven, want de material editor zit vaak nog buiten beeld.

Vervolgens verschijnt er een enorme knoeperd van een menu (zie hier links), wat je in eerste instantie waarschijnlijk niets zegt. Daarom gaan we eerst even globaal kijken wat het nou allemaal is. Gebruik en details van dit menu komen in de rest van deze tutorial aan de orde.

Onder A vindt je de verschillende medit materials. Medit staat gewoon voor material editor. Dit zijn de materials die je actief kunt veranderen in de material editor. Er zijn maximaal 24 medit materials en elke medit material heeft zijn eigen bolletje. Je ziet nu zes bolletjes, je kunt scrollen om de rest te zien of rechter knopje met de muis doen op de bollen om er meer in één beeld te krijgen (5x3 of 6x4 in plaats van 3x2). In plaats van bollen kun je ook kiezen voor een cylinder of kubus, met het icoontje helemaal rechts bovenaan (oningedrukt bolletje op dit plaatje).

Rood omlijnd vinden we vervolgens de belangrijkste knop van de material editor: assign material to selection. Druk erop en de material op de geselecteerde bol wordt toegekend aan het object dat (of de objecten die) je geselecteerd hebt. Klik dus op de bol links boven en druk op de assign material to selection-knop. Aangezien je de dakpannen had geselecteerd krijgen die nu deze material. Aangezien de material nog grijs is, zal dat verder weinig direct effect hebben.

Onder B vinden we nu de standaard-instellingen: je kunt kiezen welke shader je wilt gebruiken (techniek waarmee objecten reageren op licht), je kunt het object wireframe (draadmodel) maken met de wire-knop, de polygonen 2-zijdig met de 2-sided-knop, de texture op elke polygoon opnieuw laten beginnen met face map of de surface-smooth (Zie deel 1 van deze tutorial) uitzetten met faceted.

Onder C krijgen we vervolgens de standaard-instellingen van de gekozen shader: de kleur (diffuse), de doorzichtigheid (opacity), de zelf-verlichting (self-illumination) en de hooglichten (specular highlights).

Onder D staan vervolgens de maps. Met de maps kun je zorgen voor kleurverlopen, verschillende doorzichtigheden op verschillende delen van de objecten, en nog veel meer. Dit wordt gedaan aan de hand van plaatjes (bitmap's of jpeg's of andere bestandssoorten) of procedural maps (noise, vlakkenpatroon, alles dat met een formule te beschrijven is).

 

De dakpannen: procedural textures/diffuse- en bump-maps

We hebben de material helemaal linksboven aan de dakpannen toegekend. Voor de duidelijkheid willen we hem ook een bijbehorende naam geven, dus verander de material-naam van 1-default naar dakpannen. Nu gaan we deze material instellen.

We beginnen met het meest logische: de kleur. Als we een egale kleur zouden willen hebben, zouden we gewoon in het grote grijze vlak achter diffuse (in vak C) klikken en een kleur kiezen. Maar zo simpel is het niet: we willen wat vuil en kleurverloop in de dakpannen. Klik daarom onder maps (in vak D) achter diffuse color in het grote slot waar none staat. Dit is dus het diffuse-slot en hier kun je de kleur instellen. Nu verschijnt de material/map browser. Zorg dat je in de new-groep (links in het menu) zit en kies dan rechts voor noise (zie hier rechts) .

Nu verschijnt er weer een prachtig menu in de material editor. Noise is een procedural map. Dit houdt in dat je hem in kunt stellen en dat MAX vervolgens berekent hoe de noise er uit gaat zien. De instellingen zijn ingedeeld in twee delen: onder coordinates staat de plaatsing (hoe de noise op je objecten geplaatst gaat worden); onder noise parameters staan de instellingen van hoe je noise eruit gaat zien.

We beginnen met de kleur. Noise wisselt willekeurig af tussen twee kleuren: color #1 en color #2. Dakpannen zijn meestal een beetje rood/grijs, dus stel de kleuren als volgt in (door te klikken op de zwarte en witte vakken):
voor color #1 geldt: red = 135; green = 105; blue = 104;
voor color #2 geldt: red = 78; green = 78; blue = 91;

De rest staat eigenlijk al goed, maar nog even voor de duidelijkheid: noise type geeft aan op welke manier de kleuren gemengd worden en size geeft aan hoe groot de kleurvlakken zijn.

Het resultaat van de maps die je neerzet in de sloten onder maps (vak D dus) is normaal gesproken NIET zichtbaar in de viewports. Wil je weten hoe het eruit gaat zien, dan kun je kijken in de material editor naar de bijbehorende bol, of je kunt je scene renderen. Dit doe je door naar rendering>>render te gaan (menu bovenin beeld). Je kunt nu de kleur van de dakpannen zien. Bekijk dit even en zie ongeveer zo'n resultaat zoals hiernaast.

Naast de kleurverloopjes willen we ook nog graag wat deukjes. Daarom gaan we een bump-map gebruiken. Dit is een vrij vreemd iets dat eerst wat uitleg behoeft.

Een bump-map maakt deukjes aan de hand van kleuren. Witte en lichte kleuren liggen laag, donkere tinten liggen hoog. Die deukjes zijn erg handig, want ze zien er mooi uit, maar zijn niet écht 3d en kosten dus geen polygonen.

We willen nu weer uit de instellingen van de noise-map. Daarvor klikken we op de go to parent-knop in de material editor, hier rechts rood omlijnd. Scroll nu omlaag in het maps-deel (vak D dus weer) en zoeken de bump-slot. Hiervoor staat standaard een amount van 30, dit veranderen we in 50 (de deukjes van de bump-map worden hierdoor dieper). We klikken nu op het slot achter bump, net als we met het diffuse-slot hebben gedaan. Deze keer nemen we uit de material/map browser de smoke-map.
Je kunt nu zien dat er deukjes ontstaan op je material bol, net zoals hier helemaal links. Deze deukjes worden gemaakt aan de hand van de kleuren van de smoke-map, die ik er dus even naast heb gezet. Zoals je kunt zien leveren de witte vlekken in het rechter plaatje deukjes op.

We willen wat minder deukjes op onze dakpannen, dus we stellen in de instellingen van de smoke-map in dat exponent = 4. Verder blijken de deuken nu groter dan de dakpannen, dus we kiezen size = 2 voor een mooi resultaat. Render weer je huisje en kijk of je de deukjes ziet op je dakpannen.

Doordat de size zo klein is, kun je je bump-map niet meer goed zien op het material bolletje. Door met de linker muisknop te dubbelklikken op dit bolletje, kun je hem groter te zien krijgen.

Dit was het wel zo ongeveer met de dakpannen. Het kan natuurlijk veel mooier, maar dan zijn we nog drie weken bezig met instellingen verfijnen en dat is voor nu een beetje teveel van het goede.

De bakstenen

We gaan nu verder met het texturen van de bakstenen. Selecteer daarvoor de volgende objecten: dak 01 blok; dak 02 blok; muur 01 t/m muur 09. We hebben nu dus alle muren waar bakstenen op moeten komen geselecteerd. Kies nu in de material editor een andere material-bol (de tweede in de bovenste rij bijvoorbeeld) en druk weer op de assign material to selection-knop. Geef deze material ook een leuke naam, bijvoorbeeld "bakstenen".

Download nu eerst de volgende material: BRICKM2.JPG. Dit soort handige afbeeldingen van materialen zijn te downloaden op veel plaatsen op internet en er staan er standaard al een heleboel op de officiele 3d Studio MAX-CD. Vooral Google Image Search is een ideale plek om naar materiaal-foto's te zoeken.

Klik nu in deze bakstenen-material in het nog lege diffuse-slot en kies uit de material/map browser voor bitmap. Je krijgt nu een scherm waarin je op je harde schijf kunt zoeken naar bestanden. Zoek BRICKM2.JPG op je harde schijf en kies hem.

Nu is er een erg leuk knopje in de material editor, hiernaast rood omcirceld en bekend onder de naam show map in viewport. Deze knop werkt niet bij alle soorten maps (bij noise en smoke bijvoorbeeld alleen bij de nieuwste versies van 3D Studio MAX), maar dus wel bij bitmap. Klik erop en je baksteentjes worden zichtbaar in de viewport, voor zover MAX al weet hoe hij ze moet plaatsen.

Het plaatsen van de texture is dé grote uitdaging bij bitmaps en die uitdaging gaan we nu dus aan ook. Want hoe moeten die bakstenen eigenlijk op de muren getekend worden?

Kijk daarvoor even in de material editor onder de instellingen van je bitmap-map en zie dat onder coordinates is gekozen voor explicit map channel. Probleem is alleen: die is nog niet ingesteld en MAX geeft dan ook een foutmelding als je nu gaat renderen, of op zijn minst een onvoorspelbaar resultaat. Sluit dus de material editor af, want de map channel gaan we bij de objecten instellen.

Aangezien de bakstenen netjes door moeten lopen over alle muren, moet je zorgen dat je alle objecten die net gekozen waren (dak 01 blok; dak 02 blok; muur 01 t/m muur 09) nog steeds geselecteerd hebt. Om te zorgen dat deze objecten geselecteerd blijven tijdens de rest van dit deel van deze tutorial, drukken we even op de selection lock toggle-knop, hiernaast rood omlijnd. Zolang deze knop is ingedrukt, kun je geen andere objecten selecteren.

Ga nu naar het modify-paneel en voeg de uvw mapping-modifier toe. Deze modifier geeft aan MAX aan hoe een texture op het object geplakt moet worden.

De meest standaard methode hiervoor is planar-mapping. Dit houdt in dat MAX een oranje vierkant plaatst en in het verlengde hiervan de textures plaatst. Dit is vrij moeilijk uit te leggen, maar als je het volgende plaatje bekijkt is goed te zien hoe het werkt:

Links is het oranje vierkant te zien dat in het huis staat. Dit is de planar UVW-map. Rechts is het resultaat hiervan te zien: muren die loodrecht op de map staat hebben sterk uitgerekte bakstenen, muren die parallel aan de map staan hebben kloppende bakstenen. Probeer nu zelf even de length en de width en de alignment (X,Y of Z) te variëren om zelf te zien hoe dit werkt.

Aangezien de muren nu niet kloppen, gaan we geen planar map gebruiken. Beter zou het namelijk zijn, wanneer de muren die nu uitgerekte bakstenen hebben een eigen UVW-map zouden krijgen, loodrecht op die andere. De programmeurs van MAX hebben dit ook al bedacht en hebben dus nog andere typen maps toegevoegd. Wij willen nu de Box map gebruiken, pas die dus toe.

Zoals je hier rechts kunt zien is het nu al beter, maar nu zijn de bakstenen verkeerd gedraaid: ze staan omhoog. Het kan zo zijn dat ze bij jou al goed staan, dan is er geen probleem. Klik om dit op te lossen, zoals je hier links kunt zien, op gizmo (als je die niet ziet staan: druk dan op het plusje voor UVW mapping). Je kunt nu de box draaien. Draai hem 90 graden. Je zult waarschijnlijk even moeten proberen welke draai-as je moet hebben om de bakstenen goed te krijgen.

Nu komt het volgende probleem: de bakstenen zijn enorm groot en de verhoudingen zijn niet helemaal goed. De resolutie van de gebruikte baksteen-foto was 756*512 pixels en we zouden graag de oorspronkelijke verhoudingen behouden. Dus de length en de width moeten 756 zijn en de height moet 512 zijn. Vul dit dus in in de instellingen van je UVW map-modifier..

Nu zijn de bakstenen alleen weer enorm groot. Dit kunnen we op twee manier oplossen. De meest logische oplossing hiervoor is om in plaats van 756 nu 75,6 neer te zetten en in plaats van 512 nu 51,2. Maar het kan ook anders: zet achter U Tile en V Tile en W Tile bij alledrie de waarde 10. De texture wordt nu 10 keer herhaalt over iedere richting. Het resultaat zou nu eindelijk goed moeten zijn, ongeveer zoals hier rechts. Je kunt eventueel zelf ng spelen met de tile-waardes om de grootte van de stenen precies goed te krijgen.

Doordat alle objecten samen één UVW mapping-modifier hebben, lopen de stenen goed over op de verschillende delen van de muur.

Overigens slaan de bakstenen op het schuine deel van het dak werkelijk helemaal nergens op. Die gaan we later dus nog vervangen door dakpannen. Voor nu zitten ze niet in de weg.

Maar nog altijd zijn de bakstenen niet naar tevredenheid: twee details moeten nog gewijzigd worden. Zet daardoor de selection lock toggle weer uit, want we zijn klaar met onze UVW map-modifier. Open nu weer de material editor en klik op de bakstenen-material-bol, zodat daarvan de instellingen zichtbaar zijn.

Het eerste detail is de helderheid. Ik vind de texture namelijk aan de donkere kant, dus die gaan we wat lichter maken. Ga dus weer naar de instellingen van de bitmap-map die in het diffuse-slot zit (door op dat slot te klikken). Helemaal onderaan in deze instellingen vinden we het onderdeel output. Hierin gaan we de kleur-afgifte verhogen, zodat alles lichter wordt. Zet daarvoor RGB level op 1,1, zie hier links.

Het tweede detail is dat die bakstenen zo plat zijn. We zouden dus graag een bump-map gebruiken, maar die hebben we niet ter beschikking, want we hebben alleen onze mooie kleurenfoto genaamd BRICKM2.JPG. Nu zijn er twee oplossingen voor dit probleem. De mooiste en beste is deze foto zelf met Photoshop of een dergelijk programma bij te werken zodat hij geschikt is als bump-map. Maar als je geen tijd over hebt of niet met een dergelijk programma kan werken, dan kun je ook een snellere en bijna net zo mooie oplossing toepassen: gebruik gewoon je kleurenfoto als bump-map.

Dit kan erg snel door gewoon de texture die in het diffuse-slot staat te kopiëren naar het bump-slot. Druk daarvoor weer op de go to parent-knop (die omcircelde knop hier rechts, voor het geval je het niet meer weet). Sleep nu de bitmap-map in het diffuse-slot naar het bump-slot. Kies voor een copy en niet voor swap (wisselen) of instance (altijd exact gelijk houden aan het origineel), want we willen de bump-map kunnen veranderen los van de diffuse-map.
Aangezien de bitmap die we nu in het bump-slot hebben gezet niet gemaakt is om als bump-map te dienen, heeft hij vrij weinig licht-donker-contrast. Hierdoor komen de hobbeltjes niet echt duidelijk over. Daarom nemen we als amount voor deze bump-map de extreme waarde van 300 (zie hier links). De bakstenen komen nu behoorlijk goed uit.
Een vrij veel voorkomend probleem bij bump-maps is dat ze verkeerd om staan: wat heuveltjes zouden moeten zijn in het oppervlak zijn deuken. Bij deze bump-map is dit toevallig al goed, maar als je het probleem ooit nog een keer tegenkomt, kun je dit eenvoudig oplossen door bij de instellingen van de bump-map helemaal onderaan onder output op het knopje invert te drukken, dat de kleuren omdraait (zie hier rechts).
Render nu je huisje en zie dat de stenen behoorlijk diepte lijken te hebben, zoals je hier rechts kunt zien. Wel is te zien dat de bump-map op het ene stuk muur beter werkt dan op het andere stuk en dus verre van perfect is. Echte 3D bakstenen zijn een stuk mooier, maar kosten heel veel werk om te maken en heel veel polygonen.

Het hout van de deur, de deurpost en de raamkozijnen

We gaan nu wat hout neerzetten op de deur, de deurpost en de raamkozijnen. Aangezien de manier om dit te doen bijna hetzelfde is als bij de bakstenen, gaan we door het eerste deel even snel heen, maar het moet nou eenmaal even gebeuren.

Selecteer daarvoor de objecten deur, deurpost, raam kozijn 1 en raam kozijn 2. Dit zijn alle materialen die we van hout gaan maken. Ga nu naar de material editor, kies een nieuwe material-bol, noem deze hout en assign deze aan de vier geselecteerde objecten. Zet in de diffuse-slot een bitmap-map neer en gebruik de map genaamd KEVSINGA.JPG (klik op de link om hem te downloaden). Ook deze texture is weer erg donker, dus zet onderaan onder output de RGB level omhoog naar 1,3. Kopiëer deze diffuse-map níet naar het bump-slot, want het betreft hier mooi glad gepolijst hout.

Zorg dat je weer de objecten deur, deurpost, raam kozijn 1 en raam kozijn 2 geselecteerd hebt en geef ze weer gezamenlijk een UVW mapping-modifier. Kies weer voor het type box en ga voor length = 15; width = 15; height = 15.

Dat was het deel dat we al gehad hadden, nu gaan we verder met iets nieuws: gepolijst hout glimt namelijk een beetje. Ga dus weer terug naar de material editor en kijk helemaal bovenin de instellingen van je material onder het kopje basis blinn parameters naar het specular highlights deel (zie hier rechts). Specular highlights zijn hooglichten. Nou is deze term misschien niet bekend bij de mensen die niet aan kunstanalyse doen, dus zie hier rechts onder het verschil. De linker bol heeft geen hooglichten, de rechter wel.

Hoe de hooglichten ingesteld kunnen worden is afhankelijk van de shader en in dit geval gebruiken wij de blinn shader. De instelling die we gaan gebruiken is specular level = 50; glossiness = 10 en softness = 0,3. Dit zijn erg belangrijkte variabelen dus ik leg ze even uit. Ga er ook gerust even mee experimenteren, zodat je goed begrijpt wat ze doen.

Wat die waarden nou eigenlijk inhouden is goed te zien aan de hand van de afbeeldingen hier links. Bollen boven elkaar horen bij elkaar.

A. Boven is gekozen voor een lage soften, onder voor een hoge. Zoals je kunt zien zorgt soften ervoor dat lichten die schuin achter je object staan minder effect hebben.

B. Boven is gekozen voor een lage specular leven, onder voor een hoge. Zoals je kunt zien bepaalt de specular level dus de intensiteit van de hooglichten

C. Boven is gekozen voor een lage glossiness, onder voor een hoge. Zoals je kunt zien bepaalt de glossiness dus hoe verspreid de hooglichten zijn: een lage glossiness betekent minder scherpe hooglichten.

Kies nu dus voor de eerder genoemde instellingen (specular level = 50; glossiness = 10 en softness = 0,3) en render je plaatje om te zien wat het resultaat is van deze instellingen.

Meer dakpannen: bump-maps in plaats van polygonen en meerdere materials per object

We hebben eerder al onze mooie 3d dakpannen van een material voorzien. Probleem van deze dakpannen is dat ze maar liefst 31.024 polygonen bevatten, dit is erg veel en erg zwaar voor je computer. Daarom gaan we proberen of we ook een behoorlijk effect kunnen krijgen met bump-maps in plaats van echte 3D dakpannen. Selecteer daarvoor het object dak 02 blok. Dit is het puntdak boven de deur. Als je verder hebt gewerkt met je eigen versie van het huisje, dan zitten hier waarschijnlijk nog echte 3D-dakpannen op. Gooi deze dus eerst weg.

Dit object heeft al een material: die van de bakstenen. Op het schuine deel van het dak ziet deze er echter niet uit, want hier horen dakpannen te zitten in plaats van bakstenen. Er moet dus een andere material op deze twee schuine polygonen geplaatst worden en dit kan in MAX zeer gemakkelijk. Ga daarvoor naar het modify-paneel. Je zou nu zoiets te zien moeten krijgen als hier rechts. We willen nu even terug naar onze edit mesh-modifier en dit kan gewoon, de UVW mapping-modifier blijft ongewijzigd als we de voorgaande edit mesh-modifier bewerken. Ga naar het polygon-niveau.

Selecteer nu alleen de twee polygonen aan de bovenkant waar de dakpannen moeten komen. Je kunt hier links zien welke dit zijn: de twee rode strepen. Ga nu naar de material editor, kies een nieuwe material-bol, noem deze dakpannen2 en druk op de assign material to selection-knop. Deze material wordt nu niet op heel het object geplaatst, maar alléén op de twee geselecteerde polygonen.

Kies als bump-map voor deze material de bitmap TEXTURE DAKPANNEN.BMP. Druk op show map in viewport om deze bump-map in de viewport zichtbaar te maken.

Om deze texture goed te plaatsen willen we een tweede UVW mapping-modifier aan dit object toevoegen. MAX moet dan wel weten welke UVW map voor de bakstenen geldt en welke voor de dakpannen. Daarom kiezen we bij de instellingen van de bitmap-map hiervoor map channel 2, zoals je hier rechts kunt zien. Elke UVW map heeft een eigen map channel.


Voeg nu een nieuwe planar UVW mapping-modifier toe aan je object en kies bij de alignment de juiste as, zodat de map komt te staan zoals je hier links ziet staan. Bij mij was dit de X-as. Kies vervolgens voor length = 44 en width = 44. Stel tenslotte voor de UVW mapping-modifier channel = 2 in (zie hier links onder).

Ga nu weer naar de material editor terug en stel bij de instellingen van je bitmap-map in het bump-slot onder het kopje coordinates de tiling in. Tiling houdt in hoe vaak de afbeelding herhaalt wordt binnen één keer de planar UVW-map. Kies voor U-tiling=7 en V-tiling=6, zoals je hierboven kunt zien.

We hebben het nu niet nodig, maar je ziet hier ook de offset staan, dit is de verschuiving van de afbeelding.

Om onze bump-map wat meer te accentueren stellen we ook nog in dat blur = 0,5. Hierdoor wordt de bump-map scherper. Helemaal onderaan onder output stellen we ook nog in dat bump amount=3 om hem nog sterker te maken.

Nu de dakpannen goed staan gaan we ze ook nog een klein beetje ooglijk maken. Het eerste probleem dat we daarbij tegenkomen is dat we naast de bump-map voor de dakpannen zelf eigenlijk ook nog deukjes willen. Klik daarom op het bump-slot, waar dus al de bitmap-map staat. Klik nu op bitmap, hier rechts rood omcirceld. Kies nu uit de material/map browser voor de mix-map en kies keep old map as sub-map. Je oude bitmap-map blijft nu bewaard binnen de mix-map. De mix-map combineert twee maps aan de hand van een percentage of aan de hand van een derde map die als volgt werkt: de lichte delen zijn voor de ene map, de donkere voor de andere map. Als je dus als derde map in de mix-map een schaakbord-patroon zou kiezen, dan zouden de witte plekken van het schaakbord de ene map en de zwarte plekken van het schaakbord de andere map krijgen.

Stel dat percentage in op mix amount=4. Klik nu op het slot achter color #2 en kies een smoke-map. Stel deze als volgt in: exponent = 3,5 en size = 2. Laat de andere waarden ongewijzigd.

Ga nu weer helemaal terug naar de hoofdinstellingen met de go to parent-knop en stel als bump-amount 999 in. Dit is omdat de gebruikte map anders erg slecht zichtbaar is.

Klik nu in het diffuse-slot en kies een noise-map. Stel deze als volgt in: size = 75; color #1 = (Red135; green105; blue104); color #2 = (Red78; green78; blue91).

Klik weer op go to parent en stel in specular level = 20 en glossiness = 30.

Render nu je scene en bekijk het resultaat. Je ziet nu zoiets als hier rechts. Zoals je kunt zien zijn de 3D-dakpannen veel mooier en realistischer dan de bump-dakpannen. Maar de 3d-dakpannen zijn dan ook 31.024 polygonen, terwijl de bump-dakpannen slechts 4 polygonen tellen. Dit is een enorm verschil en daarmee een enorme winst. Zoals je kunt zien zijn de bump-dakpannen ook nog best om aan te zien en best bruikbaar in normale scenes.

Er zijn ook tussenwegen mogelijk voor nog mooiere resultaten met vrij weinig polygonen: maak bijvoorbeeld een aparte box voor de dakpannen, zodat ze echt los zitten van de bakstenen. Of maak aparte horizontale, brede boxes om de dakpannen wat meer van elkaar te scheiden. Alle dakpannen die dan horizontaal op één rij zitten zijn dan samen één box met een bump-map om ze van elkaar te scheiden.

Voor een behoorlijk realistisch resultaat met weinig polygonen, kun je ook een goede foto van een dakpannen-material zoeken en die er op plakken.

Het dilemma van de ramen

We gaan nu proberen om de ramen een mooie material te geven. Normale ramen doen twee dingen: ze reflecteren licht, waardoor je jezelf er in kunt zien, en ze laten licht door, waardoor je de dingen er achter kunt zien. Aangezien we geen interieur hebben gemaakt, gaan we onze ramen alleen maar spiegelend maken, wat in de praktijk vaak ook genoeg is voor een mooi effect. Dit kan erg gemakkelijk, snel en mooi met een reflection-map. Laten we dit dus maar meteen even doen. Selecteer dus de objecten raam 01 en raam 02, kies een nieuwe material-bol, noem deze "ramen" en assign deze aan de beide objecten.

Klik nu op de background-knop in de material editor (hiernaast rood omcirceld), zodat achter de material-bol een background te zien is. Dit is nodig om dadelijk de spiegeling van de bol te kunnen zien.

Ramen hebben nogal felle hooglichten, dus stel in specular level = 100 en glossiness = 10.

Omdat de ramen zelf bijna geen kleur hebben klikken we onder blinn basic parameters op de rechthoek achter diffuse en stellen we de kleur in op bijna helemaal zwart: red = 25; green = 25; blue = 25.

Klik nu in het reflection-slot en kies uit de material/map-browser de raytrace-map. Nu zul je op de material-bol zoiets zien als hier boven rechts: de background wordt gereflecteerd door de material. Nu berekent MAX door middel van de raytrace-map exact hoe het object zijn omgeving weerkaatst.

Als je nu rendert zie je een effect zoals hier rechts. De omgeving wordt weerkaatst in de ramen. Helaas geeft dit nu niet echt een mooi effect, want er is nog bijna geen omgeving om te weerkaatsen: alleen het hek, de groene ondergrond en de raamkozijnen worden weerkaatst. De reflectie zou een stuk mooier zijn als er een complete omgeving was om te weerkaatsen.

Merk overigens op dat in het bovenstaande plaatje het hekje niet gereflecteerd wordt. Dit komt doordat polygonen alleen een voorkant hebben en geen achterkant, en je vanaf het raam gezien dus dwars door het hekje heen kijkt. Dit gaan we later in deze tutorial nog oplossen.

Er kleeft een groot nadeel aan de reflecties die we nu gebruikt hebben: de rendertijden nemen extreem toe door de raytrace-map. Nu valt het nog mee, maar in een grote scene met veel ramen kan de rendertijd erg lang worden. Daarom gaan we nog een andere oplossing proberen. Kies daarvoor een nieuwe material-bol, noem die "ramen2" en assign die aan de beide raam-objecten.

Stel in deze nieuwe material achter diffuse weer in dat red = 25; green = 25; blue = 25. Kies ook weer specular level = 100 en glossiness = 10.

Klik weer op het reflection-slot, maar neem deze keer een bitmap-map en kies als plaatje CLOUD7 SEAMLESS.JPG. 3D Studio MAX gaat nu niet de omgeving, maar deze (door mijzelf zeer slecht bewerkte) foto van wolken weerkaatsen. Stel in dat U-tiling = 3 en V-tiling = 3 om wat kleinere wolken in de weerspiegeling te verkrijgen.

Render weer je scene en je zult zien dat het resultaat vrij aardig is, iets zoals hier rechts, hoewel de omgeving nu natuurlijk niet weerkaatst wordt. De rendertijden zijn nu weer gewoon laag. Bedenk je ook dat als je, zoals hier rechts, van schuin boven naar je ramen kijkt, dan zou je eigenlijk de grond moeten zien in de reflectie en zijn de wolken dus lelijk. Zou je echter van schuin onder naar je ramen kijken, dan zou je ook in het echt de wolken gereflecteerd zien en klopt deze nep-reflectie dus veel beter.

In plaats hiervan kun je ook gewoon grijze ramen met extreme hooglichten gebruiken, maar dat is meestal minder mooi.

Omdat het hier een eenvoudige tutorial betreft, kiezen we toch maar voor de raytrace-ramen. Assign deze dus weer aan de raam-objecten.

De wolken op de achtergrond

Er was zojuist het zeer vreemde effect te zien dat er wolken gereflecteerd werden, maar dat die op de achtergrond niet te zien waren. Laten we die dus maar snel eens even toevoegen!

Klik daarvoor bovenin beeld op rendering>>environment en klik in de lege slot bovenin onder environment map. Kies nu in de material/map browser voor de materials uit de Mtl editor (hiernaast rood omcirceld). Dit zijn de materials die je eerder hebt gemaakt in de material editor. Kies nu de reflection-map met de wolken die je in het vorige hoofdstukje hebt gemaakt. Kies instance, want de instellingen hiervan moeten gebruikt worden.

Render nu je scene en je zult zoiets zien als hier links. De wolken zijn nu rondom je scene geplaatst, want bij de instellingen van je gebruikte wolken-material heeft MAX automatisch gekozen voor spherical environment (zie hier onder). Met screen zou de map altijd exact in beeld staan, maar dat willen we niet. Controlleer even of in de bitmap-map van de wolken deze spherical environment ook echt is gekozen, want dit wisselt per versie van 3D Studio MAX.

Het hekje: een opacity-map

Selecteer nu de beide planes die voor het hekje zijn gebruikt: hek 01 en hek 02. Kies een nieuwe material-bol (je kunt scrollen om er meer in beeld te krijgen), noem deze "hekje" en assign deze aan de beide objecten.

Zoals je misschien al gemerkt hebt, is je hekje slechts van één kant zichtbaar, zoals je ook hier rechts kunt zien. Dit komt doordat polygonen normaal gesproken slechts eenzijdig zijn en dus geen achterkant hebben. Aangezien een plane-object helemaal plat is, heeft die dus ook geen achterkant. Hier brengen we verandering in door in onze hekje-material 2-sided aan te zetten, zie hier onder.

Nu zouden we graag mooie planken zien in ons hekje. Daarom zetten we in het opacity-slot (opacity staat voor doorzichtigheid) een bitmap-map neer en wel met het volgende plaatje: TEXTURE HEKJE OPACITY.JPG. Helaas heb ik hierbij de kleuren verkeerd om gezet, dus klik onder output op invert om ze kloppend te maken (zie hier rechts). Zet voor deze material weer de ruitjes-background aan om goed te zien hoe het er nu uitziet. Kies U-tiling = 10.

Voeg nu aan je beide hekje-objecten een UVW mapping-modifier toe van het type box en stel in: length = 80; width = 80 en height = 25. Render nu je plaatje en je ziet zoiets als dit hier rechts.

Hoe werkt dit nu? Heel eenvoudig: in een opacity map is wit ondoorzichtig en zwart helemaal doorzichtig. Daardoor is de ruimte tussen de paaltjes nu doorzichtig.

Aangezien het hekje nu 2-sided is zie je het nu ook in de ramen gereflecteerd.

Als je bovenaan deze tutorial mijn versie van het huisje hebt gedownload, dan zie je nu dat de schaduwen van het hekje niet juist getekend worden: de schaduwen zijn helemaal ondoorzichtig terwijl er eigenlijk gaten in zouden moeten zitten door de gaten in het hekje. Waarom dit zo is, wordt behandeld in deel 3 van deze tutorial-serie.

Uiteraard zijn onze paaltjes van hout, dus zet in het diffuse-slot onze oude KEVSINGA.JPG. Kies onder output voor RGB level = 2, om hem wat lichter te maken.

De paaltjes zijn nu erg plat, dus we willen ze wat meer diepte geven met een bump-map. Copieer daarvoor de bitmap-map in het opacity-slot naar het bump-slot, kies copy. Zet de bump amount op 750 en stel bij de bitmap-map in de diffuse-slot onder coordinates de blur in op 2 om hem wat vager te maken. Render je resultaat en zie zowaar wat diepte, zoals hier rechts.

Bedenk nu wel: al deze paaltjes samen zijn slechts 4 polygonen!

Het gras: lelijke herhaling verhelpen

Het laatste onderdeel dat nu nog overgebleven is, is de ondergrond. Daarop moet wat mooi groen gras komen, dus selecteer het object grond, kies een nieuwe material-bol, noem deze gras en assign deze material aan de ondergrond.

Plaats nu in het diffuse-slot een bitmap-map en gebruik daarvoor GRASS4.JPG. Geef het object grond nu een UVW mapping-modifier van het type planar. Stel in width = 100 en length = 100. Ga nu rechts in beeld naar het display-paneel en hide alle objecten behalve grond. Render nu je resultaat en je zult zoiets zien als hier links.

Zeer opvallend is nu dat er een duidelijk patroon te zien is in het gras: de lijnen die schuin van linksonder naar rechtsboven lopen. Dit komt doordat hetzelfde plaatje elke keer wordt herhaald over de ondergrond. Dit effect heet tiling en is niet erg mooi, dus laten we eens kijken wat we er aan kunnen doen.

De beste manier om die te verhelpen, is door een enorme foto van gras te nemen die niet vaak herhaald hoeft te worden. Helaas hebben we niet zo'n foto, dus zullen we iets anders moeten proberen.

Ga daarvoor naar de material editor naar de instellingen van je bitmap in het diffuse-slot. Klik nu op bitmap (hiernaast rood omcirceld), zoals we dat al eerder hebben gedaan, en kies uit de material/map browser voor een mix-map. Kies keep old map as sub-map om ons gras te bewaren.

We gaan nu twee keer hetzelfde gras mixen, dus neem een mix amount van 50, dit is 50% dus allebei de textures zullen even goed zichtbaar zijn. Kopiëer nu door te slepen de map uit het slot achter color #1 naar het slot achter color #2. Kies copy.
Klik nu op deze bitmap-map achter color #2 om de instellingen hiervan in beeld te krijgen. We willen nu dat beide bitmap-maps allebei op een andere manier zich herhalen, zodat de strepen die je hierboven ziet niet meer zo opvallen. We willen dus een waarde waarbij ze bijna vrijwel nooit meer samenvallen, dus kies U tiling = 1,287 en V tiling = 1,377. Om het allemaal nog afwijkender te maken van de bitmap-map in colot #1 gaan we deze bitmap-map in color #2 ook nog draaien. Kies daarvoor onder angle voor W = 37. Als we nu weer ons plaatje renderen zul je zien dat de lelijke herhaling van hetzelfde plaatje al een stuk minder duidelijk is, zoals je hier links kunt zien.

Helaas is ons gras nu wel erg vaag geworden door deze menging, dus zet bij allebei de bitmap-maps de blur op 0,1 (hier rechts rood omcirceld) om weer scherper gras te krijgen.

Ga nu met de go to parent-knop weer helemaal terug naar de hoofdinstellingen van deze gras-material. Kopiëer nu de mix-map in het diffuse-slot naar het bump-slot.

Kies instance, want we willen dat de bump-map altijd hetzelfde blijft geplaatst als de diffuse-map. Neem een bump-amount van 200 om behoorlijk wat diepte in het gras te krijgen en render je resultaat. Je zult nu zoiets zien zoals hier links.

Echt mooi gras is natuurlijk 3d, maar dat vraagt zo enorm veel polygonen, dat dat in de praktijk zelden echt mogelijk is. Een goede oplossing is daarom een plug-in als shag:fur, die een heel goed resultaat op kan leveren met niet al te hoge rendertijden. De methode die wij nu hebben gebruikt is in de praktijk vaak de beste vanwege de lage rendertijden.

Afsluiting van deel 2: het texturen

Als alles goed is gegaan heb je ongeveer het resultaat bereikt dat helemaal bovenaan deze tutorial al werd getoond. De MAX-file van mijn eigen eindresultaat kun je hier downloaden. Zoals je hebt gemerkt komt er bij texturen heel veel kijken en zijn er veel verschillende technieken mogelijk. Als je er veel mee probeert kun je zeer indrukwekkende resultaten bereiken met alleen textures, maar het kost veel tijd om het goed aan te leren. Dit is dan ook slechts het begin geweest van alles dat je kunt leren aan textures. Een tip voor als je ooit nog texturing voor games wilt leren: zoek een tutorial over de UVW-unwrap-modifier. Dat is een erg groot onderdeel van 3D Studio MAX, dus er was hier geen ruimte om hem uit te leggen, maar vooral voor games is deze heel erg belangrijk. Voor nu gaan we eerst maar eens kijken naar een heel ander onderdeel van 3D Studio MAX: belichting, de sleutel tot mooie, sfeervolle beelden.

Klik hier om door te gaan naar deel 3: de belichting

Klik hier om door te gaan naar deel 4: animatie

Hiermee is deel 2 afgesloten. Heb je nog op af aanmerkingen of zitten er nog fouten in, mail dan naar tsgoo@hotmail.com

Succes met MAX en groeten,
Joost 'Oogst' van Dongen

Quote van de dag:
"Gebruik die internetverbinding eens nuttig: download het nummer Close to the edge van Yes en geniet van dit meesterwerk."
(Oogst, 16-06-2002)

Naar de Oogst-overzichtssite

Meer tutorials door Oogst