a Bump mapping és a normal mapping két különböző módszer ugyanarra a dologra: a felületi textúra illúziójának megteremtése egy vizuális számítógépes modellhez.
ezek a módszerek hasznosak annak megismeréséhez, hogy videojáték-karaktereket készít-e vagy 3D-s animációkat renderel-e.
a Bump maps szürkeárnyalatos képet ír elő, így a sötét foltok mélyebben jelennek meg, és kontrasztot biztosítanak a könnyebb “dudorok” számára.”A normál térképek RGB skálát használnak a 3D vektor normálok levezetésére a 3D felületre. Ez becsapja a renderelt fényt, hogy kiemeléseket és árnyékokat hozzon létre. Mindkét módszer változatlanul hagyja a geometriát.
a két technika közötti különbségek ismerete segíthet meghatározni, hogy melyik a legmegfelelőbb az adott alkalmazáshoz. Olvassa el, hogy többet tudjon meg mindkettőről, így hozzáadhatja őket a trükkök táskájához.
a fő különbség a világítás
mindkét térkép célja az, hogy a felület textúrájának illúzióját adja egy olyan felületen, amelynek nincs textúrája. Ez előnyös a videojátékok számára, mert azt jelenti, hogy a modell hálójának nem kell olyan finomnak lennie, hogy fizikailag rögzítse az összes apró részletet, mint egy elmozdulási térkép.
a térkép úgy hozza létre ezt az illúziót, hogy torzítja a renderelt fény kölcsönhatását egy felülettel. Ez az, ahol a bump térkép korlátozóvá válhat, attól függően, hogy milyen részletességi szintet próbál elérni.
- egy bump térkép jelzi a megjelenítőnek, hogy a felület mely területei világosabbak és melyek sötétebbek, függetlenül a fényforrás irányától.
- egy normál térkép a mesterséges felületi normálokat a 3D tér többi részéhez kapcsolja, és matematikailag meghatározza, hogy a textúra hogyan lép kölcsönhatásba a renderelt fényforrással.
tehát az eredmény mindkét esetben az, hogy egy geometriailag sima alaknak nagyon részletes felületi textúrája van. A bump map azonban megingani kezd, amikor a texturált objektumot különböző szögekből nézzük. Az észlelt textúra valószínűleg nem fog hihető módon kölcsönhatásba lépni a környezeti fénnyel.
hogy jobban megértsük ezt, vessünk egy pillantást arra, hogy az egyes módszerek hogyan működnek a textúra megjelenítésében.
a Bump térkép egy beállított szürkeárnyalatos beállítást használ a magasság manipulálására
ha egy bump térképet hozna létre, vagy csak megnézne egyet, fekete-fehér képet fog látni. Nincs semmi több. Lényegében a térkép ezt a szürkeárnyalatot használja, hogy megmondja a renderelő motornak, mely foltok világosak és mely foltok sötétek.
- a fekete területek a térképen sötét vagy “elsüllyedt” helyeket jelölnek a felszínen
- a fehér területek a térképen Kiemelt vagy “kiálló” helyeket jelölnek a felszínen
- és a szürke minden árnyalata ennek megfelelően működik.
a legtöbb renderelő motor ezt úgy teszi, hogy a szürke árnyalatot a felület normál vektorához kapcsolja. Mivel a normál Vektorok azt mutatják, hogy a renderelő motor hogyan “látja” a felületet, ez egy módja annak, hogy becsapja a textúra megjelenítését egy valóban sima felületen.
a szürkeárnyalatos és a felületi normál közötti kapcsolat mint olyan:
- fekete = felület érintő
- fehér = normál felület
és a szürke bármely árnyalata megváltoztatja a normál vektor szögét. Ez azért remek, mert lehetővé teszi, hogy a szürkeárnyalatos kép fordítóként működjön az emberi játéktervező között, aki egy képet fekete & fehér színben lát, és a renderelő motor között, amely a képet a felületi normálok szempontjából látja.
most, mint korábban említettük, van egy hiány, hogy ez a módszer, mivel vonatkozik a világítás. A bump térkép rögzített felületi normál eloszlást állít be. Más szavakkal, csak helyi fényhatásokat hoz létre. Csak azt fogja mondani a renderelő motornak, hogy a felület mely területei sötétebbek, mint mások önmagához képest.
tehát a bump map nem biztosítja a megjelenítő motort ahhoz, hogy figyelembe vegye, honnan származik a globális fényforrás a felület részleteihez viszonyítva. Ez olyan helyzethez vezethet, amikor egy felület árnyékai valójában a fényforrás felé néznek, és a fénypontok ott vannak, ahol az árnyékok várhatók.
ha a végfelhasználó árnyékokat lát ott, ahol a szeme kiemeli, akkor a grafika kevésbé hihető. Ez nem azt jelenti, hogy a bump térképek teljesen elavultak, bár. Használhatók önmagukban vagy más térképekkel együtt, hogy valóban javítsák a teljes megjelenítést. Egy kicsit megismerjük a legjobb gyakorlatokat, de először egy kicsit a normál térképeken, és hogyan hatnak a világításra.
egy normál térkép RGB-t használ a fény manipulálására
mint már utaltunk rá, a normál térképek képesek jobban beépíteni a globális világítást az objektum észlelt felületi textúrájába.
ezt úgy teszik, hogy a renderelő motornak egy harmadik információt vagy színcsatornát biztosítanak. Ezzel szemben a bump térkép technikailag csak két színes csatornát biztosít; fekete vagy fehér. A normál leképezés az RGB színskálát használja a normál felület kiszámításához kettő helyett három komponens vektorból. Az RGB ebben az esetben azt jelenti:
- piros
- Zöld
- Kék
ahhoz, hogy ezt jobban megértsük anélkül, hogy disszertációt adnánk a lineáris algebráról, gyorsan térjünk vissza egy pillanatra a bump térképekre. A szürke árnyalata lényegében megegyezik a vektor szögével a felülethez viszonyítva. Ez a vektor két komponens vektorból áll derékszögű objektumtér, az egyik az érintő tengelyen (fekete), a másik a normál tengelyen (fehér).
minél közelebb van a szín a feketéhez egy adott helyen, annál alacsonyabb a szög a normál vektor és maga a felület között. Ezzel szemben, minél közelebb van a fehérhez a kép, annál közelebb van az ortogonálishoz a normál vektor.
de ha 3D térben működünk, mi a helyzet a harmadik dimenzióval? Ez az, ahol a normál térképek jönnek RGB helyett szürkeárnyalatos. A bump térképhez hasonlóan a normál térképnek is van egy érintő tengelye és egy normál tengelye, de bevezeti a bitangens tengelyt is. És mivel van egy harmadik tengely, szükség van egy harmadik színre, hogy képviselje. Az alábbi táblázat bemutatja, hogy az egyes térképek hogyan fordítják a színeket vektorokká.
Vektor tengely | Bump Térkép színes fordítás | Normál térkép színes fordítás |
normál | fehér | Kék |
érintő | Fekete | piros |
Bitangens | Nincs adat | Zöld |
a legfontosabb megérteni, hogy a normál térkép képes meghatározni a felszíni normálokat a 3D globális térben, mert három vektorkomponens alkotja az említett normált. Mindegyik komponens kapcsolódhat a derékszögű világtér globális X, Y és Z komponenseihez, amelyben a fényforrás rögzítve van.
a bump map nem tudja ezt megtenni, mert nincs harmadik komponens, amely a normált a globális derékszögű térhez kapcsolná. Ez az, amiért akkor a végén kiemeli, ahol azt várják árnyékok bump mapping.
a normál térkép három vektorkomponense derékszögű rendszert alkot, vagyis mind ortogonálisak egymással. A koordinátarendszer azonban még mindig végtelen mennyiségű irányba orientálható, és valamilyen módon korlátozni kell, hogy a térkép értelme legyen.
ez úgy történik, hogy a vektor komponenseket a térkép textúrakoordinátáira orientáljuk. A legtöbb renderelő és 3D modellező szoftver ezt a háttérben fogja megtenni az Ön számára, így nem verejték, ha nem figyeltél a lineáris algebra osztályban. Vannak jellemzően 3 különböző irányok közül lehet választani:
- érintő tér
- Objektumtér
- Világtér
ezek mindegyikének megvannak a maga előnyei és hátrányai, az objektum alkalmazásától függően. Majd később megbeszéljük.
függetlenül attól, hogy melyik tájolást használják, ez egy fontos lépés, mert lehetővé teszi a renderelő motor számára, hogy kiszámítsa a felületi normálokat oly módon, hogy azok zökkenőmentesen kapcsolódjanak egymáshoz. Az eredmény egy észlelt felületi textúra, amely egyenletesen reagál a globális fényforrásra.
tehát ez a nagy különbség. Mindkét térkép befolyásolja a felület megvilágítását, de ezt különböző módon teszik. A normál térkép kiemelkedik abban a képességében, hogy a felületi textúrát összekapcsolja azzal a 3D-s térrel, amelyben lakik. Ez végül hihetőbb megjelenítést eredményez, bár nem ritka, hogy a bump maps és a normál térképek együtt használják a rendkívül részletes felületek létrehozását.
ismét ezen módszerek egyike sem módosítja ténylegesen az alatta lévő felület 3D geometriáját.
gyors megjegyzés a normál térkép Tájolásáról
mivel a normál térképek meghatározzák azt a szöget, amelyen a fény visszaverődik egy felületről, fontos figyelembe venni, hogy maga a térkép hogyan orientálódik az alkalmazott objektumhoz képest.
az érintő tér a leggyakoribb
ha egy normál térkép tangens térben van orientálva, akkor a textúra normáljait a geometriai normálhoz viszonyítva tárolják. Ez általában a legsokoldalúbb, mert lehetővé teszi az objektum mozgását és deformálódását a térben, miközben a textúra hatásait érintetlenül tartja. Ez különösen akkor hasznos, ha olyan dolgokat textúrázunk, mint:
- egy karakter bőre
- mozgó textíliák
- tárgyak, amelyek a felhasználóval mozognak és kölcsönhatásba lépnek
alsó sor; akkor használja ezt, ha a textúrázott objektum térben mozog a felhasználóval.
az Objektumtér magasabb minőséget hoz létre a sokoldalúság árán
az objektumtérben orientált normál térkép kiszámítja normáljait az objektum egészéhez viszonyítva. Az objektum továbbra is mozoghat, de ha a felületei deformálódnak, problémák lehetnek a normálissal. A térképeket általában kifejezetten az alkalmazott objektumra szabják, ami élesebb részletekhez és jobb simításhoz vezet.
ez azonban megnehezíti a térkép más felületeken történő újrafelhasználását vagy csempézését. A textúra koordinátái sem tükrözhetők. Tehát a szimmetrikus objektumok textúrájának modellezése kétszerese lesz a munkának.
a világűr teljesen rögzített térképet hoz létre
a világűrben orientált normál térkép a globális 3D koordinátákhoz képest rögzítve van. Ez azt jelenti, hogy az alkalmazott objektumnak helyben kell maradnia; ellenkező esetben” kicsúszik ” a térkép alól, ha áthelyezik.
ez jó a környezet nagy, helyhez kötött objektumainak nagy részletességű létrehozásához.
Melyik Térkép Jobb Megjelenítési Sebességgel Rendelkezik?
míg a renderelési sebesség nagymértékben függ a renderelő motortól, a bump maps és a normál térképek különböző mennyiségű memóriát foglalnak el.
a normál térképeket általában gyorsabban lehet megjeleníteni, mint a bump térképeket.
a különbség nem drasztikus, de ott van. A normál térképek kissé szélesítik a bump térképeket, mert nem igényelnek több textúramintát, mint a bump maps.
milyen térképet használjak?
mint bármi másnál, nincs egyhangú egyetértés abban, hogy az egyik térkép jobb, mint a másik. A Bump maps és a normál térképek egyaránt előnyösek a különböző alkalmazásokban. Nézzünk meg néhányat ezek közül.
legjobb felhasználás a normál térképezéshez
ezek közül néhányat már érintettünk, amikor a különböző normál térképorientációkat tárgyaltuk. Általánosságban elmondható, hogy a normál térképek a legsokoldalúbb megoldás, ha olyan textúrára van szüksége, amely jól reagál a mozgásra. Ez szinte bármire vonatkozhat:
- karakterek
- fegyverek/eszközök/tárgyak
- járművek
- Textíliák
- lombozat
a normál térképek arra is hasznosak, hogy a részleteket a környezet olyan részeibe vigyék, amelyek várhatóan közelről láthatók.
- falak
- járdák
- jelzések
a normál térképek rendkívül sokoldalúak, különösen érintőtér tájolással. Az élek köré is tekerednek, hogy kedvező beveling hatást hozzanak létre, amit a bump maps nem tud megtenni. Ez lágyítja az egyébként éles széleket egy olyan tárgyon, amelynek nem szabad éles szélűnek lennie, így hihetőbbé teszi a képet.
ez nem éri el ugyanazt a részletességi szintet, mint egy elmozdulási térkép (amelyet röviden érintünk a cikk végén), de legalább a lekerekített élek illúzióját kelti olyan dolgokon, mint:
- Kilincsek
- Fegyver fogantyúk
- fal sarkok
ez a finom hatás nem érhető el egy bump térkép.
legjobb Felhasználási Bump Mapping
Bump térképek a legjobb használt háttér felületek vagy viszonylag kis tárgyak. Gondolj a környezeti jellemzőkre, amelyeket a távolban kell érzékelni.
- műtő
- tájképek
- városképek
mivel a bump térképek nem olyan jól működnek, mint a mozgó tárgyak normál térképei, könnyen alkalmazhatók a jelenet hátterére vagy közepes részletességű szempontjaira. Mivel könnyebb létrehozni őket, és nem igényelnek annyi vektoros számítást, ezek az alacsonyabb erőfeszítési lehetőségek.
ha azonban olyan környezet egyes részeire alkalmazzák, amelyek nem lesznek olyan nagy ellenőrzés alatt, akkor a bump maps adja a legtöbb durranást a közmondásos Bakért.
ezeket együtt is lehet használni
ne felejtsük el, hogy a bump maps és a normál térképek egymásra rakhatók, hogy még mélyebb részleteket hozzanak létre a megjelenítéshez.
mint minden textúratérképnél, annyi vagy kevés réteget rétegezhet, amennyit csak akar, hogy elérje a kívánt részletességi szintet.
- Bump maps állítsa be a felület észlelt magasságát önmagához képest
- normál maps állítsa be azt az észlelt szöget, amelynél a fény visszaverődik a felületről
kombinálja ezt a kettőt, hogy egyensúlyba hozza a felület magasságának és szögének manipulálásának előnyeit.
Összefoglalva.
a különbség a bump térkép és a normál térkép között az, hogy mindegyik hogyan manipulálja a felületet, hogy kölcsönhatásba lépjen a fénnyel. A Bump maps “két dimenzióban” működik, szürkeárnyalatos használatával mesterségesen mozgathatja a felület egyes részeit felfelé vagy lefelé. Felfelé haladva világosabb, lefelé haladva pedig sötétebb.
a normál térképek “három dimenzióban” működnek, piros, zöld és kék színcsatornák segítségével mesterségesen manipulálják a felületről visszaverődő fény irányát.
a térképek együtt vagy külön-külön is használhatók, és egyik textúratérkép sem változtatja meg a felület geometriáját. Míg a normál térképek körbeforgathatják az éleket, hogy ferde hatást hozzanak létre, mindkét térkép nem képes a textúra illúziójának előállítására egy él mentén.
Bónusz: Mi A Helyzet Az Elmozdulási Térképekkel?
ha egy felület széleit úgy kell renderelni, hogy az objektum sziluettje megfeleljen a textúrának, akkor a bump térkép vagy a normál térkép nem vágja le.
a bump térképek és a normál térképek előnye, hogy a textúra illúzióját hozzák létre anélkül, hogy ténylegesen megváltoztatnák a felület hálóját. Ez azt jelenti, hogy a modell mérete kicsi maradhat, és a megjelenítési idő még mindig elég gyors. De ez korlátozza az objektum széleinek részletességét.
itt jönnek a képbe az elmozdulási térképek. Tekintsük a téglafal példáját. A téglák kilógnak az őket összetartó habarcshoz képest. Tehát, ha körülnézünk a sarok szélén, nem tűnik egyenesnek, a téglák kinyúlnak, és a habarcs visszahúzódik.
sem a normál térképek, sem a bump térképek nem képesek elérni ezt az illúziót, és csak unalmas feladat lenne ott ülni és ténylegesen modellezni az összes téglát. Nem is említve, hogy a 3D-s modelled elég nehézkes lenne.
itt jön be az elmozdulás leképezése. Ez, mint egy bump térkép, beállítja a felület magasságát. De ahelyett, hogy manipulálná a világítást, manipulálja a tárgy tényleges alakját, amikor megjelenik. Emiatt több renderelési időt és sokkal finomabb hálót igényel a felületen. Például a nagyobb felületet több száz, valószínűleg több ezer egyedi felületre kell bontani.
ez azonban megéri, ha a renderelő motor elég erős, és a részletekre szükség van.
az alábbiakban néhány hasznos videót, hogy bemutassák ezeket a fogalmakat vizuálisan:
Bump mapping: