I dagens raske tips, vil ny forfatter Ankash Kallyat diskutere optimalisering av teksturer i Unreal Development Kit og noen av de viktigste tingene å huske når du importerer teksturer til UDK. Vi ser på noen måter å lagre minne ved å trekke ut spesielle kart fra diffuse kart, samt å jobbe med LOD-innstillinger for å optimalisere spillspillet.
Publisert opplæringNoen få uker besøker vi noen av leserens favorittinnlegg fra hele historien til nettstedet. Denne opplæringen ble først publisert i desember 2011.
Før vi starter, vil jeg gjerne liste ut formatene som støttes av UDK. Følgende tekstformater støttes:
Jeg foretrekker mest TGA som det nå støttes av de fleste programvarepakker, pluss at du kan justere alfaen. Jeg lagrer ofte teksturer i TGA-format, men noen ganger får TGA-filer lagret i 32 bit og noen ganger med en vanlig alfa, selv om de faktisk ikke inneholder noen alfanumeriske opplysninger.
Dette er veldig dårlig fordi UDK importerer TGA-filer og prøver å komprimere dem med den innebygde kompressoren kjent som DXTC. Alfa er imidlertid ikke helt komprimert eller noen ganger ikke overhodet av Unreal Engine 3. Så det er bedre å lagre filen uten en alfa, hvis du egentlig ikke trenger noen alfa-informasjon i Unreal Engine. Kontroller også at filen er lagret med 8 bits per kanal RGB / RGBA-format for å unngå komplikasjoner ved import.
Her begynner jeg med en enkel løvtekstur (Banana Palm leaf.)
Klikk for å forstørreVi har alle en tendens til å lagre filer i tre forskjellige formater, dvs. Diffuse, Spekulative og Normale kart. Selv om du egentlig ikke alltid trenger å lagre et eget speilkart, fordi vi kan trekke det fra det diffuse kartet.
Klikk for å forstørreSom vist ovenfor i Unreal Material Editor, hentet jeg Rød og Grønn informasjon fra Diffuse-kartet, og multipliserte den deretter. Jeg multiplisert det igjen med en konstant verdi på 18 bare for å skru opp resultatet.
Du kan justere det i henhold til dine ønsker, eller du kan importere et 256 x 256 spekulativt kart i stedet for å bruke den konstante parameteren. Du vil kunne se den andre multiplisert verdien begynner å skinne litt (som er akkurat det vi ønsket) Etter det må du bare plugge resultatet inn i "Specular" node.
Du kan også koble den konstante parameterverdien til noden "Specular Power", hvis du vil ha et fint og skinnende spekulært resultat. Det er det, vi har nettopp opprettet et spekulert kart fra et diffust kart og har dermed lagret nok minne til å laste inn en mer 1024 res kart i motoren.
Når vi prøver å laste eller lagre et teksturkart, går vi vanligvis glipp av og glemmer å sjekke oppløsningen på teksturkartet. Sjekk alltid oppløsningen på kartet fordi UDK bare importerer teksturer med en oppløsning på 2 (x2.).
For eksempel: 256 x 256, 512 x 512, 1024 x 1024, 2048 x 2048 og så videre. Igjen forsikre deg om at filen er lagret i 8 bit per kanal RGB / RGBA-format, for å unngå komplikasjoner mens du importerer. For å sjekke dette ut, åpne filen i Photoshop og Gå til Bilde -> Mode -> og der skal du se 8 bit / kanal valgt. Hvis ikke, klikker du bare på den. Når du har lagt inn tekstur, må du kontrollere at du har angitt LOD Bias.
Som vist i de ovennevnte teksturegenskapene, har jeg importert bananbladet tekstur med en oppløsning på 1024 x 1024, men jeg har satt LOD bias til 1. Hva skjer her, oppløsningen reduseres med 1 trinn (x2) som er 512 x 512, slik at du ikke trenger å laste Photoshop for det.
Grunnen til at jeg har satt belastningsforstyrrelsen til 1 er fordi nettverket vårt er enkelt løvverk og 1024 x 1024 kommer til å tømme mye minne. Nedenfor er forskjellen mellom "With LOD Bias" og "Without LOD Bias".
I UDK går du til Vis og deretter nettleservinduet og velger Teksturstatistikk for å se statistikken over teksturene som er lastet inn i scenen din..
Som du ser i bildet over, lastes teksturene i en 1024 x 1024 dimensjon uten LOD bias sett. Teksturene her bruker hver ca 1366 kb minne.
I bildet over er lastene lastet i 1024 x 1024 dimensjoner, men med LOD Bias satt til 1. Hver tekstur bruker omtrent 342 kb minne.
KONKLUSJON
For objekter der du trenger høy detaljering, trenger du ikke å gjøre ovennevnte prosess. Men for enkle statiske gjenstander som løvverk, gress, blader og andre slike statiske masker, kan du gå for den ovennevnte prosessen. Dette vil spare mye minne og dermed optimalisere spillingen.