☰ Menu

Scene.hu

Magyar demoscene portál – grafikusok, zenészek, programozók alkotói közössége

Az előző cikk végén egy szürke, semmitmondó felülettel végeztünk, ami még önmagában nem valami látványos. A következő lépésekben továbbmegyünk, egészen a textúrázásig.

Nézzük meg, hová jutottunk.

1

Mivel az utolsó lépésekben nem használtam referenciát, ezért a belső loopok nem adják ki a megfelelő formát. Ez van akkor, amikor fejből dolgozunk. A problémát egy gyors Google kereséssel orvosolhatjuk. Mivel nem terveztem, hogy a kerék belsejébe tárcsát teszek, csak magát az abroncsot készítjük el, így ez a kép teljesen megfelel a célnak:

tire

Ez alapján kijavítjuk ( vagy elkészítjük ) a belső loopokat, itt nyugodtan lehet pontosítani, több részletet kidolgozni. Ha szeretnénk a kerék oldalán kidomborodó márkajelzést is elkészíteni, akkor javaslom, hagyjuk ezt egy normal-mapra, nem szükséges geometriát létrehozni egy ilyen apró felület miatt.

2

Következő lépésben eltávolítunk pár felesleges élt. Erre nem feltétlenül van szükség, főleg akkor nem, ha állóképhez készül a kerék, viszont jó ha hozzászokunk az optimalizáláshoz. Az az él, ami nem ad a sziluetthez, teljesen felesleges. Kijelöljük minden második fölösleges élünket, az utolsó vertex kijelölését megszüntetjük, majd X->Edge loop. Háromszögek fognak keletkezni, de olyan helyen, ahol nem okoznak különösebb gondot.

Ha ezzel megvagyunk, már csak ki kell terítenünk a felületet. Erre azért van szükség, mert egy két dimenziós képet fogunk a kerék köré tekerni. Ezt az eljárást Unwrappingnek hívják (UVW). Ezt megtehetjük többféleképpen is, de először nézzük mi van akkor, ha szükségünk van a belső loopokra, mondjuk egy matrica vagy egy márkajelzés elhelyezéséhez. Egyszerűen elvágjuk valamelyik élnél az egészet, kijelölve az élt, majd a Ctrl+E lenyomása mellett megjelenő menüből a Mark as Seam opciót választjuk. Ha ezt jól csináltuk, pirossal fogja megrajzolni az adott élt a program. Mivel a bordázat eléggé össze vissza alakul, és nem szimmetrikus, ezért valószínűleg az elvágott élünk sem esik egy vonalba, nem lehet kijelölni Alt+jobb klikk segítségével, de ez nem probléma.

4

Ha most kijelölünk mindent, megnyomjuk az U gombot, és az Unwrap opciót választjuk, ezt kapjuk.

5

Ez az unwrap tökéletesen megfelel, akkor, hogyha nincs szükségünk komolyabb részletek hozzáadásához, és elég egy ismétlődő textúra használata. Ha árnyékot, ambient occlusiont kéne bakelnünk, akkor gondban lennénk. Továbbá matricázni sem igazán tudnánk a felületet.

Ha fontos, hogy a kerék oldalát szerkeszteni tudjuk, esetleg beleírhassuk, hogy Matyi 01, akkor fogjuk az összes oldalsó loopot, mindkét oldalon, szembe állítjuk a kamerát vele, U->Project from view.

6

Ezután nyomjunk egy H gombot, hogy elrejtsük a kijelölt felületet, majd a maradékot újra Unwrappeljük.

7

Az én esetemben az oldalsó körök és a barázdák között kimaradt egy loop, pontosan a háromszögelés miatt. Ennek a textúrázás közben jelentősége van, ugyanis itt szakadás lesz a képen.

8

Mindenesetre használjuk ezt az unwrapet. Ami fontos, hogy egymással arányos méretű un. Islandeket kapjunk, azaz a különböző rácsokat egyformán kell méreteznünk. Az elhelyezkedésük jelenleg nem számít, mivel most még csak egy egyszerű textúrát fogunk használni.

9

Miután kész a terítés, keresnünk kell egy megfelelő textúrát. Gumihoz elég nehéz jót találni, egyszerűbb procedurálisan generálni egyet felhővel és/vagy noise textúrával, de most használjuk ezt, hogy láthassuk a további lépést is.

Az első dolgunk ezzel a képpel, hogy az összes színt eltüntessük róla. A színek ismétlődését nagyon könnyen észleli a szem, és nekünk még a minták ismétlődését is el kell tüntetnünk. Szóval, nyissunk egy új 1024×1024 (72p) képet fotóboltban vagy Gimpben, helyezzük bele a textúránkat, és keressük meg a Desaturate parancsot, vagy a Hue/Saturation csúszkáknál vegyük le a Satot 0-ra.

10

Most fogjuk meg a textúrát, és duplikáljuk (Ctrl+C -> Ctrl+V). Helyezzük az új képet az előző felé, majd fűzzük össze a két layert (Merge layers). Ezután el kell tolnunk a mintát 512-vel minden irányba. Gimpben ki kell jelölnünk az egész képet, Ctrl+C -> Ctrl+V, majd egy esetleges ruler (vonalzó) segítségével el kell tolnunk az új lajert jobbra. Ez után ismételjük a műveletet, majd felfelé. Photoshopban a Filters-Offset eszköz ugyanezt megteszi, csak nem kell kézzel duplikálgatnunk.

11

A megjelent törésvonalat könnyen el tudjuk tüntetni. Ilyen közepesen bonyolult mintáknál egy grunge brush segíthet, kevésbé bonyolult formáknál pedig maszkolással el lehet tüntetni a vágást. Fogjuk meg a Clone Stamp tool-t Photoshopban, válasszunk egy ecsetet, majd helyezzük el a mintavételezőt az Alt gomb nyomvatartása mellett a bal egérgombbal. Ezután fessük ki a keresztet vagy a vízszintes vágást, majd egy újabb Offset (eltolás) segítségével nézzük meg, maradt e még valahol törés. Addig ismételjük a lépést amíg teljesen el nem tűnnek a hibák. Ha ez megvan, kimenthetjük a képet.

Blenderben adjunk hozzá egy új Materialt, Material->New, majd állítsunk be egy sötétszürke Oren-Nayar és egy Phong shadert, ezután pedig a Textures fül alatt adjunk hozzá egy új textúrát. New->Image, keressük ki a képet, majd Mapping alatt: Coordinates: UV Ha jól csináltuk, meg is fog jelenni a textúránk az előnézeti ablakban.

Ehhez előbb át kell váltanunk Textured nézetbe (Viewport shading, lent az “Object mode” vagy “Edit mode” felirat melletti kis gömböc. ill. Alt+Z), majd egy lámpát kell hozzáadnunk. Shift+A -> Lamp -> Sun. Ezt a lámpát irányítsuk a felületünkre, majd az N menüben jobb oldalt a Display alatt állítsuk át a Shading fület GLSL-re. Ez főleg azért kell, mert így a Specmapet és a Normalmapet is tudjuk majd tesztelni, ami Multitexture alatt nem látható.

13

Ha ezt kaptuk, nem csináltunk semmit rosszul, csak a textúra túl világos. Egyébként, észrevehetjük azt is hogy ez a textúra eléggé elhasznált gumiról készülhetett, szóval a referenciaképhez közünk nem lesz. :)

Mindenesetre ugrás vissza képszerkesztőbe, majd egy picit toljuk lejjebb a Brightnesst, a Contrastot meg feljebb (Fényerő, Kontraszt).

14

Mentsük el a sötétebb verziót, majd az így készült képet töltsük be újra, és keressük meg a Levels opciót. Image-Adjustments-Levels. Itt állítsuk úgy a három kicsi háromszöget, hogy lehetőleg kevés fehér maradjon hátra, de azok legyenek nagyon fehérek :)

15

Az így kapott képet új textúraként adjuk hozzá, a koordinátákat állítsuk UV-ra, majd lejjebb az Influence alatt vegyük ki a Color mellől a pipát, aktiváljuk a Specular alatt az Intensityt, csúsztassuk le -1-re, és a Blend mode-ot állítsuk Substractra, az RGB to Intensityt pedig pipáljuk be.

Most ugorjunk át a Modifiers fülhöz, és adjunk hozzá egy Solidify modifiert, és állítsuk be ~0.5-re az értékét, bepipálva az Even Thicknesst és a High Qualityt.

Ha ügyesek vagyunk, kapunk egy ilyen kereket:

16

Itt látszania kell a vágásoknak, és ha mindent pontról pontra követtünk, akkor nem a legjobb eredményt láthatjuk. Úgy döntöttem, fogom az egészet és újra Unwrappelem: Edit mode, select all (A) -> U->Unwrap, majd az így kapott összevissza islandeket megnöveltem (A->felnagyít->balklikk). Az így kapott eredmény egy olyan traktorkerék lett, ami egy egyszerűbb propnak lazán jó. Természetesen a loopokat még lehetne egyszerűsíteni, és 256×256-os textúra is elég lenne, de most ez nem fontos.

17

Ha valami nem lett volna egyértelmű, vagy csak nem szeretnétek a textúrázással molyolni, mellékeltem a befejezett .blend filet és a textúráimat is. Én csináltam még egy normalmapet is, ami adott egy hangyányi bumpot.

Munkafájlok: tire_tutorial_betasector

 

8 Responses so far.

  1. avatar zoom says:

    Jó lett ez megint, annyit fikáznék csak hogy a textúraminta és a modell (real-world) mérete között elég szembeötlő a különbség, mintha egy aprócska traktorgumi készült volna a traktorgumi gyárban :)

  2. avatar zoom says:

    Ja meg még annyi hogy a bordákon jobban be lehetne lőni a smoothingot, hogy megmaradjanak az élei, és akkor nem lesz egy nagy összefüggő blob belőle.

  3. avatar dolf says:

    traktor vektoooor! =) nade komolyiglan: élek gyanánt éis beakatam xóni úhogy what zoom said…

  4. avatar blala says:

    “A megjelent törésvonalat könnyen el tudjuk tüntetni. […]”

    Ezek a mai fiatalok! Bezzeg a mi idonkben, emlekszem, en meg pixelenkent festettem meg hogy ne legyen vagas a korbeeresnel :)))))

  5. avatar betasector says:

    Rányomtok egy edge splitet és automatice elintézi a bordázásnál a smoothingot.

  6. avatar poison says:

    Remélem, lesz ebből egész traktor is! Megjegyzések:

    UV-záskor több vágó élt is be lehet állítani, az unwrap elboldogul vele. Érdemes megemlíteni, hogy 2 algoritmust ismer a program: ABF (ANGLE BASED flattening – organikus felületekre) és LSCM (least scale CONFORMAL mapping – lapokra jobban szétszedhető modellek). Ez az unwrap (U) beállításai között választható a tool shelf-en.

    Az UV szigetek texelsűrűsége gombnyomásra azonosra hozható: A, ctrl+A (mindent kijelölsz, average islands scale).

    Olyan objektumoknál, ahol ismétlődő (tile-os) textúra használható, a leírt UV-zás rendben van, de amint bonyolultabb formáról van szó, amit egyetlen textúrára szeretnénk “kiteregetni”, vagy pl. egy ambient occlusion-t szeretnénk beleégetni, akkor az UV szigeteknek a 0-1 tartományban kell maradniuk. Nem túl optimálisan, de szintén gombnyomásra ezt is megteszi nekünk a Blender: A, ctrl+P (pack islands). Kiindulásnak ez is jó, aztán lehet tovább rendezgetni…

    Törések: A tile-os textrúra ellenére, az UV szigetek határán látható lesz az illesztés. Ha 0-1-be van teregetve az UV, akkor a térbeli modellen festve (texture paint mód) javítani lehet ezeket is. Ez egy Blender-be integrált Bodypaint :)

    Csak így tovább! Happy blending!

  7. avatar Unreal says:

    most mar csak 1 traktor kene :) king

Leave a Reply

You must be logged in to post a comment.

Ugrás a lap tetejére Ugrás a lap aljára