• Ei tuloksia

Normal mapia käytetään simuloimaan pinnan muotoja. Se on RGB-kartta, jossa jokainen väri vastaa pinnan X-, Y-, Z-koordinaatteja. Siinä voidaan esimerkiksi säilyttää yksityiskohtaisia pinnan muotoja korkearesoluutioisesta 3D-mallista, jotka sitten projisoidaan matalaresoluutioiseen malliin. (The PBR Guide part 2.) Toisin sanoen, siihen yleensä leivotaan yksityiskohtaisia pinnan muotoja geomet-rian määrän säästämiseksi. Normal map ei kuitenkaan muokkaa pinnan varsi-naista muotoa, joten 3D-mallin silhuetti on sama joka tapauksessa.

KUVIO 20. Puuhöylän normal-kartta (Maertz n.d)

KUVIO 21. Normal mapin vaikutus 3D-mallin pintaan (Chadwick n.d) 4.5 Ambient Occlusion

Ambient Occlusion, lyhennettynä AO, määrittelee kuinka paljon ympäristöstä tu-leva valo vaikuttaa materiaalin pintaan. Eli sillä estetään valoa pääsemästä tiet-tyyn pisteeseen. Se yleensä leivotaan 3D-mallin pinnan muodoista tekstuurikar-taksi käyttäen simuloitua valaistusmallia. PBR:ssä sitä ei tulisi laittaa albedoon, vaan pitää se omana erillisenä karttana. AO:n tulisi peittää ainoastaan dif-fuusiovaloa, eikä vaikuttaa heijastuvaan valoon ollenkaan. (Wilson 2015.)

KUVIO 22. AO-kartta ja Albedo kartta. (The PBR Guide part 2)

Joissakin renderöintimoottoreissa on mahdollista simuloida ambient occlusionia reaaliaikaisesti, jolloin tämä kartta ei ole välttämätön. Tätä simulointia kutsutaan screen space ambient occlusionksi, eli SSAO:ksi. Yleensä kuitenkin näiden kah-den menetelmän yhdistelmä tuottaa parhaimman tuloksen.

KUVIO 23. AO:n vaikutus digitaalisessa ympäristössä (Arvi VR 2018)

4.6 Metallisuuteen perustuva lähestymistapa

PBR-teksturoinnin alkuvaiheessa on yleensä hyvä kysyä, onko materiaalin pinta metallia vai ei? Sillä sekä metal/roughness- että specular/glossiness työnkulku perustuvat pääasiassa pinnan metallisuuteen. Lähestymistavat johtavat lähes sa-maan lopputulokseen, mutta omaavat hieman erilaiset ominaisuudet.

KUVIO 24. Specular vs. metalness (Wilson 2015)

Metalness-työnkulussa albedo map määrittelee pinnan värin materiaalin tyypistä riippumatta sekä pinnan heijastavuuden. Metallic map määrittää mitkä alueet pin-nassa ovat eristävää materiaalia ja mitkä metallia. Tämän takia kontrolli pinnan heijastavuudesta siirtyy käytännössä kokonaan shaderin puolelle. Eristäville ma-teriaaleille määrätään vakio heijastavuus, joten sitä ei pääse erikseen muokkaa-maan. Näin ollen epärealistisia pintoja ei pääse syntymään yhtä helposti, mutta kontrolli materiaalin ominaisuuksista rajoittuu. Roughness mapilla määritellään kuinka sileää tai rosoista pinta on ja sen tarkoitus on tehdä materiaalista persoo-nallinen. Metalness-työnkulku käyttää myös vähemmän tekstuurimuistia kuin täy-sin värillinen specular-työnkulku, joka on optimaalista vartäy-sinkin pelituotannossa.

(Wilson 2015.)

4.7 Specular tai peilimäinen lähestymistapa

Specular-työnkulku käyttää diffuusikartan lisäksi specular- ja glossiness-karttaa.

Tämä työnkulku voi olla helpompi lähestymistapa artisteille, jotka ovat tottuneet käyttämään perinteisempiä shader-malleja, jossa tämä on tavanomaisempaa.

Keskeisintä tässä työnkulussa on parempi kontrolli pinnan heijastavuudesta, mikä tosin antaa enemmän tilaa virheille. (Wilson 2015.)

Diffuusikartta, jota kutsutaan myös albedoksi, antaa pohjavärin, mutta ei sisällä heijastavuusinformaatiota. Kartassa metalliset kohdat määritellään mustiksi.

Specular-kartta on värillinen RGB-kartta, jossa määritellään metallien heijasta-vuus sekä eristävien materiaalejen F0 arvot. Näin ollen eristävillä materiaaleilla voi olla omat heijastavuusarvot, toisin kuin metalness-työnkulussa. Glossiness-kartta toimii samalla periaatteella kuin roughness-Glossiness-kartta, mutta käänteisesti. (Wil-son 2015.)

5 3D-MALLIN TEKSTUROINTI PBR-MATERIAALEILLA

Tämän kappaleen aikana käydään läpi fantasiamaailmaan sopivan 3D-taistelu-kirveen teksturoinnin PBR-materiaaleilla. Kirves on tätä opinnäytetyötä varten mallinnettu Blender-ohjelmalla. Se teksturoidaan Quixel Suite 2-sovelluspaketilla metallic työnkulkua noudattaen. Kirveelle tehdään kolme erilaista materiaalia:

puu, teräs ja nahka. Teksturoinnissa käytetään Quixelin mukana tulevia pohja-materiaaleja prosessin nopeuttamiseksi. Tämän aikana käydään kuitenkin läpi mitä ne sisältävät ja kuinka niiden eri tekstuurikarttojen muokkaaminen vaikuttaa varsinaiseen lopputulokseen. Lopuksi kirves viedään Unity-pelimoottoriin, jossa tekstuurikartat kytketään Unityn Standard shaderiin.

KUVIO 25. Prosessikaavio toteutettavasta työnkulusta

Tarkoituksena on nähdä kuinka hyvältä teksturoitu kirves näyttää pelimoottorissa ja näyttääkö se samalta kuin teksturointiohjelmassa. Tästä pitäisi nähdä kuinka paljon eri valaisut, shaderit ja renderöintimoottorit vaikuttavat lopulliseen 3D-mal-liin. Samalla vertaillaan työnkulkua perinteiseen tapaan teksturoida, jotta saa-daan käsitys siitä, miten PBR parantaa teksturointiprosessia. Tärkeintä tässä on kuitenkin se, että saadaan dokumentoitua toimivaksi todettu metallic-työnkulku ja saadaan aikaiseksi realistinen pinta kirveelle.

5.1 Blender

Blender on ilmainen avoimen lähdekoodin 3D-mallinnus ohjelma, joka toimii Win-dowsilla, Linuxilla ja Macintoshilla. Se tukee koko 3D-työnkulkua, eli mallinnusta, riggausta, animointia, simulointia, renderöintiä, liikkeen seurantaa, editointia ja pelintekoa. (Blender n.d.)

Kirves mallinnettiin kolmessa osassa. Ensin metallinen terä, sitten puinen varsi ja lopuksi nahkainen kädensija. 3D-mallin geometria pidetään alhaalla, jotta se olisi mahdollisimman optimaalinen pelimoottoriin. Eli tehtiin ns. low poly -malli.

Yleensä tässä vaiheessa tehdään ensin high poly -malli, josta leivotaan geomet-rian yksityiskohdat normaalikarttaan. Kartta laitetaan low poly -mallille, jolloin säästetään geometriassa, mutta ei yksityiskohdissa. Tämä vaihe jätettiin kuiten-kin tekemättä ajan säästämiseksi. Quixel Suite 2:lla saadaan tätä demonstraa-tiota varten tarpeeksi hyvää jälkeä, ottaen huomioon kuinka yksinkertainen kysei-nen kirves on.

KUVIO 26. Low poly kirves Blenderissä

Mallinuksen jälkeen kirveelle määriteltiin saumat ja se unwrapattiin UV-kartaksi.

Kun 3D-mallilla on UV-kartta, siitä voidaan leipoa AO –kartta sekä ID –kartta. ID-kartassa on annettu kaikille halutuille elementeille oma uniikki väri, esim. kaikki metalli on punaista, kaikki puu on sinistä ja kaikki nahka on vihreää. (Franczak 2018.) Kirveen jokaiselle materiaalille annetaan oma väri ID-kartassa. Tämä mahdollistaa nopeamman tavan määritellä tarvittavat pohjamateriaalit jokaiselle elementille.

Perinteisessä teksturoinnissa itse mallinnusvaihe ja uv-mappaus toteutetaan sa-malla periaatteella. ID-kartta ei ole pakollinen ja sen tekeminen riippuu täysin siitä, miten teksturointi toteutetaan ja minkälainen teksturoitava 3D-malli on. Esi-merkiksi jos teksturointi tehdään täysin käsin Photoshopissa, ID-kartta ei välttä-mättä auta prosessia merkittävästi ja eri materiaalit voidaan maskata Photos-hopissa tarpeen mukaan. Perinteisessä teksturoinnissa AO-kartta leivotaan 3D-mallista ja asetetaan diffuusikarttaan. Tämä tarkoittaa sitä, että jos pelissä olevan 3D-mallin AO:ta halutaan muuttaa, täytyy muokata sen diffuusikarttaa pelimoot-torin ulkopuolella. PBR:ssä AO-kartta laitetaan shaderissa omaan kanavaan, jo-ten AO:n määrää pystyy säätämään kätevästi pelimoottorin sisällä.

KUVIO 27. Kirveen UV-kartta

KUVIO 28. Kirveen ID-kartta

KUVIO 29. Kirves ID-kartalla

5.2 Quixel Suite 2

Mallinnuksen jälkeen päästään varsinaiseen teksturointiin. Teksturointia pystyy harjoittamaan lukuisilla eri työkaluilla. Sunstance Painter-, Zbrush-, 3D-coat-, Mudbox- ja Photoshop-ohjelmat ovat hyviä esimerkkejä. Jopa Blenderillä pystyy teksturoimaan, mutta se ei ole varsinaisesti siihen erikoistunut ohjelma. Tässä opinnäytetyössä päädyttiin kuitenkin Quixel Suite 2 -sovelluspakettiin, jota käyte-tään Iceflake Studiosilla pääasiallisena teksturointityökaluna.

Quixel Suite 2 on käytännössä ohjelmapaketti, jota käytetään Photoshopin si-sällä. Pakettiin kuuluu NDO-, DDO-, ja 3DO-ohjelmat. NDO on normaali kartan muokkaukseen tarkoitettu työkalu, jolla voi helposti lisätä uurteita ja kuhmuja tekstuuriin. Tämä on esimerkiksi kätevä erilaisten kovien pintojen yksityiskohtien lisäämiseen. 3DO-työkalu mahdollistaa materiaalien muokkauksen 3D-näky-mässä. Se sisältää myös eri jälkikäsittely- ja valaisuvaihtoehtoja. DDO:lla artisti voi nopeasti ja helposti luoda korkea laatuisia materiaaleja. Se mahdollistaa ma-teriaalipintojen maalaamisen lisäksi eri tasojen maskauksen. Se käyttää hyväksi Quixelin kattavaa materiaali- ja smart materiaalikirjastoa. (Quixel n.d.)

Smart –materiaalit sisältävät useita tasoja, jotka valmiiksi kaikki tarvittavat kulu-mat, hapettukulu-mat, maalit ja muut vastaavat elonmerkit. Nämä ovat yleensä mas-kattu niin, että ne asetetaan 3D-mallin geometrian mukaan järkevästi. Eli esim.

reunakulumat tulevat aina oikeaan paikkaan mallista riippumatta. Quixeliin voi tuoda myös lisää materiaaleja muualta, esimerkiksi Quixelin Megascans materiaalikirjastosta. Vaihtoehtoisesti voi myös tehdä omia materiaaleja sekä smart -materiaaleja. Kaikki Quixelin sisältämät materiaalit käyttävät skannattuja oikeaan maailmaan perustuvia arvoja, joten artistin ei tarvitse huolehtia niiden fyysisistä ominaisuuksista.

Kirveen 3D-malli, AO-kartta ja ID-kartta tuotiin Quixelin DDO-ohjelmaan. Reso-luutioksi tuleville tekstuureille laitettiin 1024 pikseliä sekä valittiin pakkausmuoto, joka noudattaa Unityn metallic -työnkulkua. ID-kartan ansiosta, DDO:ssa pystyy helposti teksturoimaan ennalta määriteltyä aluetta ilman erillistä maskausta. Kir-veen terälle määriteltiin pohjamateriaaliksi kulunut teräs, joka kattaa koko terän.

3DO-työkalua hyödyntäen teräksen päälle maalattiin harjattua metallia, joka nä-kyy ainoastaan varsinaisessa terävässä kohdassa. Ja lopuksi kaiken päälle lai-tettiin kevyt ruostepinta. Kirveestä tulee heti mielenkiintoisempi, kun siinä näkyy selkeitä käytön ja ajan aiheuttamia yksityiskohtia. Nämä tärkeät yksityiskohdat sijaitsevat roughness -kartassa. Roughness kontrolloi myös metallin heijasta-vuutta pinnan kuluman mukaan.

KUVIO 30. Teksturoitu terä

KUVIO 31. Terän eri tekstuurikarttojen materiaalit, väri ja läpinäkyvyys

Puiselle varrelle määriteltiin pohjamateriaaliksi perus puumateriaali ja siihen mas-kattiin päälle likakerrostuma. Maskaus tapahtui 3DO:n avulla maalaamalla likaa halutuille alueille. Puu ei ole metallia, joten metallic -kartassa se merkataan mus-taksi. Normaali- ja roughness -kartta sisältävät puun yksityiskohdat ja albedosta löytyy puun pohjaväri. Puun F0 on 4%, joka on vakio kaikille eristäville materiaa-leille metallic -työnkulun mukaisesti.

KUVIO 32. Teksturoitu puu

KUVIO 33. Puuvarren materiaalitasot

Nahkamateriaali toteutettiin käyttämällä smart -materiaalia. Kyseinen materiaali sisälsi nahkaisen pohjamateriaalin, värjäymätason ja reunakulumatason. Pohja-materiaalin sekä värjäymän albedo-väriä muokattiin lähes mustaksi ja reunaku-luman väriä vaalennettiin tuomaan hieman kontrastia.

KUVIO 34. Teksturoitu nahka

KUVIO 35. Nahkamateriaalin tasot

KUVIO 36. Teksturoitu kirves Quixelin 3DO-näkymässä

Kirveen teksturoinnin jälkeen valmiit tekstuurikartat pakattiin metallic-työnkulun mukaisesti Unityn standard shaderiin sopiviksi. DDO:ssa käytetään glossiness -karttaa, joka invertoidaan pakkausvaiheessa roughness -kartaksi. Quixel sijoittaa roughness -kartan metallic -kartan alfakanavalle.

KUVIO 37. Kirveen albedo-, metallic- (roughness alfakanavassa), normal- ja AO-kartat

Perinteisessä teksturoinnissa ainoastaan normal-kartta olisi pysynyt samanlai-sena. AO-kartta olisi upotettu albedoon eli diffuusikarttaan, johon olisi vielä lisätty ylimääräisiä varjoja ja heijastuksia sopimaan ennalta määritettyyn valaisumalliin.

Metallic- ja roughness -kartat olisi korvattu specular -kartalla, johon pitäisi käsin maskata kuinka paljon kukin alue kirveestä heijastaa valoa ja kuinka paljon. Tämä

olisi huomattavasti enemmän aikaa vievä lähestymistapa, sillä heijastusten arvoa pitäisi säätää pelimoottorin ympäristön valaisutilanteeseen sopivaksi ja se tapah-tuu ainoastaan kokeilun tai kokemuksen kautta. Jos otetaan vielä huomioon digi-taalisen ympäristön muuttuva valaisu, silloin artistin tulisi tehdä näihin eri valai-sutilanteisiin sopivat maskit. PBR-teksturoinnissa materiaalin pinta reagoi valon määrästä riippumatta aina realistisesti, joten sama metallic/specular -kartta riit-tää, eikä ylimääräistä säätöä tarvita.

5.3 Unity ja Standard shader

Unity on ilmainen monialustainen pelimoottori, jolla pystyy luomaan 2D- ja 3D-pelejä, sovelluksia ja interaktiivisia kokemuksia. (Unity3D n.d.) Se julkaistiin vuonna 2005, tarkoituksena mahdollistaa pelienteko kaikille halukkaille osaami-sesta tai budjetista riippumatta. Unity on erittäin suosittu indie-, eli itsenäisten pelintekijöiden keskuudessa ja sillä onkin jo yli 6 miljoonaa aktiivista käyttäjää.

(Axon 2016.) Tässä opinnäytetyössä päädyttiin käyttämään Unityä, koska se on ilmainen ja se on käytössä Iceflake Studiosilla.

Unityn Standard shader on pelimoottoriin sisäänrakennettu shader, joka noudat-taa PBR:n periaatteita. Eli se noudatnoudat-taa energian säilyvyyttä ja simuloi Fresnel-heijastuksia. Idea sen taustalla oli saada käyttäjäystävällinen shader, joka rende-röi johdonmukaisesti uskottavia pintoja kaikissa valaisutilanteissa. Standard sha-der on suunniteltu pääasiassa kovia pintoja varten, mutta tekee kelpo jälkeä myös pehmeille pinnoille. (Unity documentation 2019) Unity sisältää myös useita ns.

Legacy shadereita, joita käytettiin ennen Standard shaderia. Shadereita on niin monta lähinnä niiden yksinkertaisuuden takia ja koska ne sopivat vain tiettyihin tilanteisiin. Perinteiseen teksturointiin nähden PBR on tässäkin tapauksessa huo-mattavasti yksinkertaisempi, sillä se tarvitsee ainoastaan yhden shaderin toimi-akseen oikein. Näin ollen, ei tarvitse luoda tekstuureja eri shadereiden ja valai-sutilandein mukaan.

KUVIO 38. Unityn Standard shaderin ominaisuudet

KUVIO 39. Esimerkki yhdestä Unityn Legacy shaderista (Unity documentation)

Kirveen 3D-malli ja Quixelissa pakatut tekstuurikartat tuotiin Unityyn. Tämän jäl-keen luotiin uusi materiaali, joka käyttää Unityn Standard shaderia. Aluksi katsot-tiin jokaisen tekstuurikartan vaikutus 3D-mallin pintaan yksittäin. Kaikki kartat muuttivat merkittävästi mallin pintaan, paitsi AO-kartta. Sen vaikutus on varsin huomaamaton kaikkialla muualla paitsi kädensijan nahkaremmin väleissä. Kir-veessä ei ole kovin montaa paikkaa, johon valon pääsyä pitäisi estää, joten tämä oli odotettavissa.

Lopulta lisättiin kartat yksitellen materiaaliin ja katsottiin kuinka ne vaikuttavat yh-dessä kirveen pintaan. Lopullinen materiaali käyttäytyy lähes samalla tavalla kuin

Quixelin 3DO-näkymässä, eikä mitään suurempia eroavaisuuksia ole havaitta-vissa. 3DO:ssa materiaalin pinta on hieman saturoituneempi ja tummempi kuin Unityssä. Tämä johtuu joko valaisutilanteesta tai eri shaderien tavasta renderöidä kirveen pinta. Molemmissa tapauksissa kirveen eri materiaalien pinnat näyttävät uskottavilta. Voidaan siis päätellä, että tällä teksturointimenetelmällä saadaan tehtyä nopeasti PBR:n periaatteita noudattava materiaali. Huonoja puolia työn-kulussa on yksityiskohtien menetys high poly -mallin poisjättämisestä ja täysi riip-puvuus materiaalikirjaston sisällöstä.

KUVIO 40. Teksturoitu kirves Unity-ohjelmassa ja Quixel 3DO-ohjelmassa

6 POHDINTA

Tämän opinnäytetyön tavoitteena oli kehittää PBR-periaatteita noudattava työn-kulku, joka noudattaa pinnan metallisuuteen perustuvaa lähestymistapaa. Tämän seurauksena luotiin 3D-malli, jonka pinta heijastaa valoa uskottavasti eri rende-röintimoottoreissa. Työnkulku oli nopea, noudatti opinnäytetyössä läpikäytyjä PBR:n periaatteita ja todettiin toimivaksi tavaksi teksturoida yksinkertainen 3D-malli. Toimeksiantajalle tämä työnkulku on hyvä alku, jota voisi vielä kehittää koko 3D-tiimille sopivaksi. Tiimillä ei ole tällä hetkellä yhteistä teksturointityönkulkua, vaan jokainen teksturoi pitkälti omien tottumuksien mukaan. Yhteinen toimiva työnkulku voisi tehostaa teksturointiprosessia ja yhtenäistää lopputuloksia. Työ-kalut vaihtuvat ja muuttuvat, mutta ajatus prosessin takana pysyy melko samana.

Opinnäytetyössä ei käyty läpi varsinaisten materiaalien luontia. Tämä prosessi ei ole pakollinen, sillä nykyään on saatavilla niin paljon valmiita fyysisesti realistisia materiaaleja, joita pystyy hyödyntämään teksturoinnissa. Valmiit materiaalit ra-joittavat tietenkin luovaa prosessia hieman, sillä silloin luovutaan materiaalien ominaisuuksien täydestä kontrollista. Tarkoituksena oli myös vertailla hieman pe-rinteistä teksturointia PBR:ään ja huomattiin, että PBR automatisoi prosessia huomattavasti, jolloin aikaa säästyy. Käsintehdyt varjot ja heijastukset voidaan kokonaan unohtaa ja keskittyä ainoastaan eri PBR-materiaalien ja tasojen yhdis-telyyn. Yksinkertaisesti se, että PBR-teksturoitu 3D-malli näyttää hyvältä missä tahansa valaisutilanteessa on tarpeeksi hyvä syy siirtyä pois perinteisistä mene-telmistä.

Opinnäytetyö tutustuttaa aloittelevalle 3D-artistille tarvittavat teksturointikäytän-nöt ja auttaa ymmärtämään mitä PBR on ja kuinka sen periaatteita sovelletaan.

Se on kuitenkin vasta pintaraapaisu siitä, mitä kaikkea PBR oikeasti käsittelee.

Sen taustalla olevaa teoriaa ja fysiikkaa on niin paljon, että 3D-artistin kannalta, sen läpikäyminen olisi turhan päätä sekoittavaa. PBR voi aluksi tuntua monimut-kaiselta ja rajoittavalta. Perus asioiden ymmärtämisen jälkeen voidaan kuitenkin todeta, että PBR tarjoaa valmiita työnkulkuja, jotka nopeuttavat teksturointipro-sessia ja pitävät materiaalit fyysisesti mahdollisina. PBR-periaatteita noudattava

shader hoitaa suurimman osan työstä, jolloin artisti voi keskittyä pääasiassa vaan työhön. PBR-työnkulku auttaa myös eri artisteista koostuvia tiimejä luo-maan suoraviivaisempia lopputuloksia, jotka toimivat kaikissa valaisutilanteissa.

3D-artistille on tarjolla niin paljon eri sovelluksia ja materiaalipankkeja, että PBR-teksturointiprosessi on lähes automaattista. Tämä tarkoittaa sitä, että lähes ketä vain pystyy saamaan aikaan todella realistisen näköisiä 3D-malleja vain muuta-malla napin painalluksella. Täytyy kuitenkin pitää mielessä se, että PBR-tekstu-rointi toimii tiettyjen periaatteiden mukaisesti. Vaikka ketä vain pystyy teksturoi-maan, virheiden välttämiseksi, tulisi kuitenkin ymmärtää PBR:n tärkeimmät omi-naisuudet.

LÄHTEET

Allegorithmic. n.d. The PBR Guide part 1 [verkkodokumentti] Luettu 25.09.2019.

https://academy.allegorithmic.com/courses/the-pbr-guide-part-1

Allegorithmic. n.d. The PBR Guide part 2 [verkkodokumentti] Luettu 25.09.2019.

https://academy.allegorithmic.com/courses/the-pbr-guide-part-2

Ashish. 17.12.2018. What is the Index of Refraction (Refractive Index)? Luettu 11.10.2019. https://www.scienceabc.com/pure-sciences/what-index-of-refrac-tion-defintion-examples-water-air-glass.html

Arvi VR. 07.11.2018. Ambient Occlusion 2 [verkkodokumentti] Luettu 15.11.2019. https://vr.arvilab.com/blog/ambient-occlusion%2007.11.2018 Dustin Maertz. n.d. Stanley Hand Planer No.5 [verkkodokumentti] Luettu 15.11.2019. https://dustinmaertz.artstation.com/projects/GXmbz

Eric Chadwick. n.d Stairs [verkkodokumentti] Luettu 15.11.2019. http://ericchad-wick.com/img/farmhouse_stairs.jpg

Erland Körner. 18.02.2015 Working with physically-based shading: a practical approach [verkkodokumentti] Luettu 17.10.2019.

https://blogs.unity3d.com/2015/02/18/working-with-physically-based-shading-a-practical-approach/

Jeff Russel. 01.11.2015 Basic theory of physically based rendering [verk-kodokumentti] Luettu 25.09.2019. https://marmoset.co/posts/basic-theory-of-physically-based-rendering/

Joe Wilson. 01.10.2015 Physically-based rendering, and you can too! [verkko-dokumentti] Luettu 25.09.2019. https://marmoset.co/posts/physically-based-ren-dering-and-you-can-too/

Joe Wilson. 01.10.2015 PBR Texture conversion [verkkodokumentti] Luettu 25.09.2019. https://marmoset.co/posts/pbr-texture-conversion/#metalvspec Mike Seymour. 04.07.2013 Game environments – Part A: rendering Remember Me terminology [verkkodokumentti] Luettu 25.09.2019.

https://www.fxguide.com/fxfeatured/game-environments-parta-remember-me-rendering/

Michael Franczak. 29.06.2018 Creating ID maps in Blender terminology [verk-kodokumentti] Luettu 17.10.2019.

https://evermotion.org/tuto-rials/show/11071/creating-id-maps-in-blender

Pluralsight. 16.01.2014 Start mastering Important 3D texturing terminology [verkkodokumentti] Luettu 22.09.2019.

https://www.pluralsight.com/blog/film-games/cover-bases-common-3d-texturing-terminology

Quixel. n.d. Quixel SUITE 2 Overview [verkkodokumentti] Luettu 17.10.2019.

https://quixel.se/tutorial/quixel-suite-2-overview/

Shadercat. 21.03.2016 What is a Shader? terminology [verkkodokumentti] Lu-ettu 22.09.2019. https://www.shadercat.com/what-is-a-shader/

Samuel Axon, 27.09.2016, Unity at 10: For better-or worse-game development has never been easier [verkkodokumentti] Luettu 17.10.2019. https://arstech- nica.com/gaming/2016/09/unity-at-10-for-better-or-worse-game-development-has-never-been-easier/

Scratchapixel 2.0. n.d. Reflection, Refraction (Transmission) and Fresnel. [verk-kodokumentti] Luettu 15.11.2019. https://www.scratchapixel.com/lessons/3d-ba-sic-rendering/introduction-to-shading/reflection-refraction-fresnel

Thomas Denham n.d. What is UV mapping & unwrapping? terminology [verk-kodokumentti] Luettu 22.09.2019. https://conceptartempire.com/uv-mapping-un-wrapping/

Unity3D n.d. Download Unity terminology [verkkodokumentti] Luettu 17.10.2019. https://unity3d.com/get-unity/download

Unity documentation 08.10.2019, Standard Shader [verkkodokumentti] Luettu 17.10.2019. https://docs.unity3d.com/Manual/shader-StandardShader.html Unity documentation 08.10.2019, Bumped diffuse [verkkodokumentti] Luettu 17.10.2019. https://docs.unity3d.com/Manual/shader-NormalBumpedDif-fuse.html