En aquest tercer capítol, on analitzem més a fons la creació de jocs 3D, ens centrarem en el que pot passar al món 3D després que es faci el processament de les cantonades i es rasteritzi l’escena. La configuració és una de les etapes més importants en la representació, tot i que tot el que passa és que es calculen i canvien els colors d’una quadrícula bidimensional de blocs de colors.

Molts dels efectes visuals que es veuen en els jocs actuals depenen de l’ús intel·ligent de les textures; sense ells, els jocs serien avorrits i sense vida. Així que donem el pas i veiem com funcionen!

Com sempre, si no esteu preparats per fer una immersió profunda en els teixits, no us espanteu; podeu començar Creació de jocs 3D 101. Però un cop superats els conceptes bàsics, seguiu llegint per veure la nostra pròxima mirada al món dels gràfics en 3D.

Comencem senzill

Trieu els jocs en 3D més venuts dels darrers dotze mesos i tots compartiran una cosa en comú: mapes de textures (o simplement textures). Aquest és un terme molt comú, la majoria de la gent crea la mateixa imatge quan pensa en textures: un quadrat o rectangle simple i pla que conté una imatge d’una superfície (gespa, pedra, metall, roba, cara, etc.).

Però quan s’utilitzen en diverses capes i es combinen amb aritmètica complexa, l’ús d’aquestes imatges bàsiques en una escena 3D pot produir imatges realment sorprenents. Per veure com és possible, saltem-los del tot i vegem com podrien ser els objectes del món 3D sense ells.

Com vam veure en articles anteriors, el món 3D està format per vèrtexs: formes simples que es mouen i després es coloren. Després s’utilitzen per fer les primitives, que al seu torn es comprimeixen en una quadrícula 2D píxels. Com que no utilitzarem textures, hem de pintar aquests píxels.



Es diu un mètode que es pot utilitzar ombrejat placonsisteix a obtenir el color del primer vèrtex de la primitiva i després utilitzar aquest color per a tots els píxels del ràster que cauen sota la forma. Es veu així:

Viouslybviament, no es tracta d’una tetera realista, almenys el color de la superfície és incorrecte. Els colors salten d’un nivell a un altre, no hi ha una transició fluida. Una solució a aquest problema podria ser utilitzar una cosa que es diu Ombra Gouraud.



Es tracta d’una operació que pren els colors dels vèrtexs i calcula com canvia el color a la superfície del triangle. Les matemàtiques utilitzades interpolació linealTot i que això sembla fantàstic, en realitat, si un costat primitiu té un color vermell de 0,2 i l’altre costat és de 0,8 vermell, significa que el centre de la forma té un color entre 0,2 i 0,8 (és a dir, 0,5).

És relativament senzill de fer i el principal avantatge és la velocitat. Molts dels primers jocs 3D utilitzaven aquesta tècnica perquè el maquinari que feia els càlculs estava limitat pel que podia fer.

Però fins i tot això té els seus problemes, perquè si una llum apunta al centre d’un triangle, és possible que els seus vèrtexs (vèrtexs) no puguin captar-lo correctament. Això significa que es poden passar per alt els punts culminants causats per la llum.

Els ombres plans i Gouraud es troben a l’arsenal de renderització, mentre que els exemples anteriors són clarament candidats a utilitzar textures per millorar-los. I per entendre millor què passa quan s’aplica una textura a una superfície, retrocedirem en el temps ... fins al 1996.

Una breu història de jocs i GPU

Quake és un joc emblemàtic llançat fa 23 anys Programari id. Tot i que no va ser el primer joc que va utilitzar polígons i textures 3D per crear l’entorn, va ser un dels primers a utilitzar-los de manera tan efectiva.

Una altra cosa que va fer va ser mostrar què es podia fer amb OpenGL (l'API gràfica encara estava en la seva primera revisió), i també va ajudar molt a vendre el primer producte de targeta gràfica. Comenta ve 3Dfx Vudu.

En comparació amb els estàndards actuals, Voodoo era extremadament senzill: no s'admeten gràfics 2D, no hi ha representació de vèrtexs i només els conceptes bàsics de representació de píxels. Encara era una bellesa:

Tenia un xip sencer (TMU) per obtenir un píxel d’una textura i després un altre xip (FBI) per barrejar-lo amb un píxel del ràster. Podria fer alguns extres com fer efectes de boira o transparència, però això va ser gairebé tot.

Si fem una visió general de l’arquitectura del disseny i el funcionament de la targeta gràfica, podem veure com funcionen aquests processos.

El xip FBI pren dos valors de color i els combina; un d’ells pot ser un valor d’una textura. El procés de classificació és matemàticament bastant senzill, però difereix lleugerament entre què es barreja exactament i quina API s’utilitza per executar les instruccions.

qualsevol cosa que mirem Ofertes Direct3D Pel que fa a les funcions de mescla i a les operacions de mescla, podem veure que cada píxel es multiplica per un nombre entre 0,0 i 1,0. Això determina la quantitat de color del píxel que afectarà l'aspecte final. A continuació, s'afegeixen, es resten o es dupliquen els dos colors de píxels ajustats; en algunes funcions, l'operació és una expressió lògica on sempre se selecciona alguna cosa com el píxel més brillant.

La imatge superior és un exemple de com funciona això a la pràctica; el factor utilitzat per al píxel esquerre alfa valor. Aquest número transparent píxels.

La resta de passos consisteixen a aplicar un valor de boira (extret d’una taula de números creada pel programador, i després fer les mateixes matemàtiques de barreja); realitzar certs controls i ajustos de visibilitat i transparència; abans d’escriure finalment el color del píxel a la memòria de la targeta gràfica.

Per què una lliçó d'història? Tot i la relativa simplicitat del disseny (sobretot si es compara amb els desenvolupadors moderns), el procés explica els fonaments bàsics de la textura: obtenir alguns valors de color i barrejar-los de manera que els models i els entorns tinguin un aspecte que haurien de tenir en una situació determinada.

Els jocs d’avui dia encara ho fan tot, l’única diferència és la quantitat de textures utilitzades i la complexitat dels càlculs de barreja. Junts simulen els efectes visuals que es veuen a les pel·lícules o com la llum interactua amb diferents materials i superfícies.

Els fonaments de la textura

Per a nosaltres, una textura és una imatge plana 2D aplicada als polígons que formen les estructures 3D del marc mostrat. Per a un ordinador, no és res més que un petit bloc de memòria en forma de matriu 2D. Cada entrada de la matriu representa un valor de color per a un dels píxels de la imatge de textura (més conegut) omplert de text - píxels de textura).

Cada vèrtex d’un polígon té 2 coordenades (normalment sen, v) us indica quin píxel de la textura hi està associat. El vèrtex té tres conjunts de coordenades (X ve Z) i s’anomena procés de connexió de textos amb vèrtexs. mapatge de textures.

Per veure-ho en acció, tornem a una eina que hem utilitzat diverses vegades en aquesta sèrie d'articles: Representació en temps real de WebGL eina. Per ara, z coordina des de les cantonades i mantén-ho tot en un pla pla.

D'esquerra a dreta, tenim la textura sen, v coordenades mapades directament als vèrtexs dels vèrtexs x, i coordenades. A continuació, les cantonades superiors y les coordenades han augmentat, però la textura s’estira cap amunt, ja que la textura encara s’hi assigna directament. A la imatge de l’extrema dreta, la textura que ha canviat aquesta vegada: u els valors augmenten, però això fa que el teixit sigui aixafat i després recaigui.

Perquè el teixit és efectivament més llarg, encara que més alt u El valor ha d’adaptar-se a la primitiva, essencialment la textura es repeteix parcialment. Aquesta és una manera de fer alguna cosa que es veu en molts jocs en 3D: trepetir. Exemples habituals d'això es poden trobar en escenes amb paisatges rocosos o herbosos o parets de maó.

Ara posem l’escena a ser més primitiva i tornem a posar en joc la profunditat. El que tenim a continuació és una vista clàssica del paisatge, però a mesura que la textura del pit es copia i es repeteix entre els primitius.

Ara, aquesta textura del pit té 66 quilos en format gif original i té una resolució de 256 x 256 píxels. La resolució original de la part del marc ocupada per les textures de la caixa és de 1900 x 680, de manera que només en termes d'àrea de píxels, aquesta regió només hauria de mostrar 20 textures de caixa.

Evidentment, obtenim més de 20 camins amb tantes textures de pit al fons molt Menys de 256 x 256 píxels. De fet, ho són i han passat per un procés reducció de textura (Sí, això és una paraula!). Intentem-ho de nou, però aquesta vegada es va acostar a un dels cofres.

Tingueu en compte que la textura només té una mida de 256 x 256 píxels, però aquí podem veure que una textura supera la meitat de l’amplada de la imatge de 1900 píxels. Va passar per una cosa anomenada textura augment de teixits.

Aquests dos processos de textura es produeixen tot el temps en els jocs en 3D, ja que a mesura que la càmera es mou per l’escena o els models s’acosten i redueixen, totes les textures aplicades a les primitives s’han d’escalar juntament amb els polígons. Matemàticament, això no és gran, de fet, fins i tot els xips gràfics integrats més simples flaixen en aquest negoci. No obstant això, la reducció i augment de teixits presenta nous problemes que d’alguna manera s’han de resoldre.

Introduïu mini textures

El primer problema a solucionar és el de les textures llunyanes. Si tornem a mirar la primera imatge del paisatge de la caixa, les que tenen cap a l’horitzó només tenen una mida d’uns pocs píxels. Intentar esprémer una imatge de 256 x 256 píxels en un espai tan reduït no té sentit per dos motius.

Per una banda, una textura més petita ocupa menys espai de memòria a la targeta gràfica, cosa que és útil per intentar ajustar una petita quantitat de memòria cau. Això significa que és menys probable que s’elimini de la memòria cau i que l’ús repetit d’aquesta textura obtingui el màxim rendiment de les dades que hi ha a la memòria propera. La segona raó per la qual estem aquí per un moment, ja que està relacionada amb el mateix problema per a les textures ampliades.

Una solució comuna a l’ús de grans textures que es trenquen en petites primitives, Coincidència. Es tracta de versions reduïdes de la textura original; El propi motor de joc es pot construir (mitjançant l'ordre API corresponent per fer-ho) o pot ser realitzat prèviament per dissenyadors de jocs. Cada nivell de textura de mipmap té la meitat de les dimensions lineals de l'anterior.

Per a la textura del pit seria una cosa així: 256 x 256 → 128 x 128 → 64 x 64 → 32 x 32 → 16 x 16 → 8 x 8 → 4 x 4 → 2 x 2 → 1 x 1.

Els mipmaps estan agrupats de manera que la textura segueix sent el mateix nom de fitxer, però més gran ara. El teixit s’embala de manera que sen, v Les seves coordenades no només determinen quin text s'ha d'aplicar a un píxel del marc, sinó també a partir de quin mipmap. A continuació, els programadors codifiquen el renderitzador per determinar el mipmap a utilitzar en funció del valor de profunditat del píxel quadrat, de manera que, si és massa alt, el píxel està molt lluny, de manera que es pot utilitzar un mipmap petit.

És possible que els lectors amb ulls esmolats hagin vist l’inconvenient dels mapes mip i es produeixi a costa que les textures siguin més grans. La textura original del pit era de 256 x 256 píxels, però com podeu veure a la imatge superior, la textura del mipmap ara és de 384 x 256 píxels. Sí, hi ha molt d’espai lliure, però l’increment general fins a almenys una de les mides de la textura és del 50%, independentment de com empaqueteu en textures més petites.

Tot i això, això només s’aplica als mipmaps prefabricats; Si el motor del joc s'ha programat per generar-los correctament, l'augment mai no pot superar el 33% respecte a la mida original de la textura. Així obtindreu avantatges de rendiment i millores visuals per obtenir un augment relativament petit de memòria als mipmaps de textura.

A continuació es mostra la comparació off / on dels mipmaps de textura:

Al costat esquerre de la imatge, les textures de la caixa s'utilitzen "tal qual", donant lloc a un aspecte granulat i suposadament patrons moires de distància. A la dreta, però, l’ús de mapes mip resulta en una transició molt més suau a través del paisatge, on la textura de la caixa canvia a un color uniforme a l’horitzó.

Tanmateix, qui vol textures borroses que espatllin el fons del seu joc favorit?

Bilinear, trilineal, anisotròpic, tot grec per a mi

Es denomina procés de selecció de píxels d’una textura que s’ha d’aplicar a un píxel d’un marc mostreig de texturesi en un món perfecte, la seva mida, ubicació, direcció, etc. independentment, seria una textura que s’adapta exactament a la primitiva. En altres paraules, el mostreig de textures no és res més que un mapatge pla d'1 a 1 píxel a píxel.

Com que no és així, el mostreig de textures ha de tenir en compte diversos factors:

  • La textura està augmentada o reduïda?
  • La textura és original o és un mipmap?
  • Amb quin angle es mostra la textura?

Analitzem-los un per un. El primer és prou clar: si la textura s’amplia, hi haurà més text sobreposant el píxel a la primitiva; amb la reducció serà el contrari, ara cada texel ha d’abastar diversos píxels. Això és una mica un problema.

En segon lloc, atès que els mipmaps s’utilitzen per solucionar el problema del mostreig de textures amb primitives remotes, deixa les textures en un angle. I sí, això també és un problema. Per què això? Com que totes les textures es mostren "cara oberta" per a una vista, o totes són semblants a les matemàtiques: el normal de la superfície de la textura és el mateix que la superfície normal que es mostra a sobre de la textura.

Per tant, tenir massa o massa textura i textura inclinada, filtratge de textures. Si no utilitzeu aquesta acció, això és el que obteniu:

Aquí, hem substituït la textura del pit per una textura de lletra R per mostrar amb més claredat quina embolic obtindrà sense filtrar la textura.

Les API de gràfics com Direct3D, OpenGL i Vulkan ofereixen els mateixos tipus de filtratge d’interval, però utilitzen noms diferents per a ells. En realitat, tot va així:

  • mostreig del punt més proper
  • Filtrat de textures lineals
  • Filtrat de textures anisotròpiques

A tots els efectes, mostreig del punt més proper si no es filtra, és perquè és el píxel més proper al píxel que requereix que es mostregin les textures (és a dir, que es copiïn de la memòria) i que es combinin amb el color original del píxel.

Aquí el rescat del filtratge lineal. Obligatori sen, v les coordenades de texel s’envien al maquinari per al mostreig, però en lloc d’aconseguir el texel més proper a aquestes coordenades, el mostrejador quatre texel Aquests es troben directament a sobre, a sota, a l'esquerra i a la dreta del seleccionat mitjançant el mostreig del punt més proper.

Aquests 4 tèxtils es barregen després amb una fórmula ponderada. Per exemple, a Vulkan la fórmula és:

T "Color", f Per al drenat i de l'1 al 4 hi ha quatre tèxtils mostrejats. Valors alfa ve beta quina distància del punt definit per sen, v les coordenades provenen del centre del teixit.

Afortunadament, tothom que participa en jocs en 3D, ja sigui jugant o creant jocs, passa automàticament en aquest xip de processament gràfic. De fet, el xip TMU de 3dfx Voodoo va fer això: va prendre mostres de 4 singletons i després els va barrejar. Direct3D l’anomena de manera estranya filtratge binaural, però des de l’època del xip TMU de Quake i Voodoo, les targetes gràfiques només han pogut fer filtratge bilineal en un cicle de rellotge (si la textura queda còmodament a la memòria propera, és clar).

El filtrat lineal es pot utilitzar juntament amb els mipmaps i, si voleu obtenir un estil fantàstic amb el filtre, podeu agafar 4 textos d'una textura, i altres 4 del següent nivell de mipmaps i, després, combinar-los. I el nom de Direct3D per a això? trilineal filtratge. Què tri sobre aquest procés? La vostra suposició és tan bona com la nostra ...

Es diu l’últim mètode de filtratge esmentat anizòtrop. En realitat, es tracta d’un ajust del procés realitzat en el filtrat bilineal o trilineal. Inicialment grau d’anisotropia superfície primitiva (i sorprenentment complex): aquest valor canvia la relació d'aspecte de la primitiva per la seva orientació:

La imatge superior mostra la mateixa primitiva quadrada amb costats de la mateixa longitud; però a mesura que ens allunyem de la nostra perspectiva, sembla un rectangle quadrat i l’amplada augmenta per sobre de la seva alçada. Així doncs, la primitiva de la dreta té una anisotropia més gran que la de l’esquerra (i en el cas del quadrat, el grau és exactament zero).

Actualment, la majoria de jocs en 3D us permetran activar el filtratge anisotròpic i, a continuació, ajustar-ne el nivell (1x a 16x), però, què canvia això realment? La configuració controla el nombre màxim de mostres de texel addicionals preses per mostra lineal original. Per exemple, suposem que el joc està configurat per utilitzar un filtre bilateral lineal anisotròpic de 8 vegades. Això vol dir que retornarà 32 valors en lloc de prendre només 4 valors de text.

És clar que l’ús del filtratge anisotròpic pot aconseguir:

Només cal desplaçar-se una mica cap amunt i comparar el mostreig del punt més proper per a un màxim de filtratge trilineal anisòtrop 16x. Tan suau, gairebé deliciós!

Però hi ha d’haver un preu a pagar per tot aquell bonic sabor de textura mantegosa i, sens dubte, és el rendiment: tot el filtratge trilineal anisòtrop màxim retornarà 128 mostres d’una textura per cada píxel representat. Fins i tot per a les millors GPU més recents, això no es pot fer en un sol cicle de rellotge.

Si aconseguim alguna cosa com AMD Radeon RX 5700 XTLes unitats de textura dins del processador poden desactivar 32 adreces texel en un cicle de rellotge, després carregar 32 teixits de la memòria (32 bits cadascun de mida) en un altre cicle de rellotge i, a continuació, posar-ne 4 juntes per marcar-les. És per això que es barreja per a 128 instàncies texel que requereixen almenys 16 cicles de rellotge.

Ara la velocitat de rellotge base del 5700 XT és de 1605 MHz, de manera que setze cicles només triguen deu nanosaniye. Feu això per cada píxel del marc 4K. un la unitat de teixit només duraria 70 mil·lisegons. D’acord, potser el rendiment no és tan important.

Fins al 1996, els gustos de 3Dfx Voodoo eren força astuts a l’hora de manejar textures. Es podia obtenir un màxim de 1 texel filtrat bilineal per cicle de rellotge i significava que es podien tallar 50 milions de tex cada segon mentre el xip TMU oscil·lava a 50 MHz. Un joc que funcioni a 800 x 600 i 30 fps requereix només 14 milions de text filtrat bilineal per segon.

Tot i això, suposa que les textures es troben a la memòria propera i que només s’assigna un text a cada píxel. Fa vint anys, la idea d’haver d’aplicar diverses textures a una política era gairebé completament estrangera, però ara és habitual. Vegem per què es va produir aquest canvi.

Il·luminant el camí cap a imatges impressionants

Per ajudar a entendre com el teixit va esdevenir tan important, doneu un cop d'ull a aquesta escena de Quake:

És una imatge fosca, aquesta era la naturalesa d’aquest joc, però es pot veure que la foscor no és la mateixa a tot arreu: les taques de les parets i del terra són més brillants que d’altres per donar la sensació d’il·luminació general en aquesta zona.

Els primitius que formen els laterals i el terra tenen la mateixa textura aplicada, però hi ha una segona textura anomenada mapa de llumes combina amb valors texel abans de coincidir amb píxels quadrats. Ja en els dies del terratrèmol, els mapes de llum eren precomputats i fabricats pel motor del joc i es feien servir per crear nivells de llum estàtics i dinàmics.

L’avantatge d’utilitzar-los era que es feien càlculs d’il·luminació complexos en textures en lloc de cantonades, millorant l’aspecte d’una escena en particular i un cost de rendiment molt reduït. Obviouslybviament, no és perfecte: com es pot veure a terra, la frontera entre les zones il·luminades i les ombres és molt plana.

En molts sentits, un mapa lleuger és només una textura més (recordeu que no són més que matrius de dades 2D), de manera que el que estem mirant aquí és un ús primerenc del que es coneix com textura múltiple. Com el seu nom indica, és un procés en el qual s’apliquen dues o més textures a un principi. L’ús de mapes lleugers a Quake era una solució per superar les limitacions de l’ombreig de Gouraud, però a mesura que creixien les capacitats de les targetes gràfiques, també ho van fer les aplicacions multithread.

3Dfx Voodoo, com altres cartes de la seva època, era limitat en quant podia fer en un render passar. Es tracta essencialment d’una seqüència de renderització completa: des de representar les cantonades fins a rasteritzar el marc i, a continuació, canviar els píxels a un framebuffer final. Fa vint anys, els jocs gairebé sempre feien una passada.

Això es va produir perquè representar els vèrtexs dues vegades era molt costós en termes de rendiment, ja que només volíeu aplicar més textura. Pocs anys després de Voodoo, vam haver d’esperar fins que estigués disponible abans de poder fer targetes gràfiques multi-threaded ATI Radeon i Nvidia GeForce 2 en una sola passada de renderització.

Aquestes GPU tenien diverses unitats de textura per secció de representació de píxels (és a dir, canonada), de manera que portar un tèxtil filtrat bilineal de dos teixits separats va suposar un problema. Això va fer que el mapatge de la llum fos encara més popular, cosa que va permetre que els jocs fossin completament dinàmics, canviant els valors de la llum en funció dels canvis en l’entorn del joc.

Però hi ha molt més que es pot fer amb diverses textures, així que fem una ullada.

És normal multiplicar l'alçada

En aquesta sèrie d’articles sobre la representació 3D, no hem descrit com el paper de la GPU s’adapta realment a tot el punt (encara no ho farem). Però si tornes Episodi 1i mireu tot el treball complex sobre la representació de vèrtexs, és possible que penseu que aquesta és la part més difícil de gestionar de la GPU.

Ho ha estat durant molt de temps i els programadors de jocs han fet tot el possible per reduir aquesta càrrega de treball. Això significava arribar a la bossa de trucs visuals i treure el màxim nombre de dreceres i trampes possibles, donant el mateix aspecte visual d’utilitzar molts vèrtexs per tot arreu, però no utilitzar-ne molts per llançar-lo.

I la majoria d’aquests trucs, mapes d’elevació ve mapes regulars. Els dos estan relacionats amb el fet que el segon es pot crear a partir del primer, però, ara per ara, anem a veure una tècnica anomenada: mapatge de cops.

El mapatge de cops consisteix a utilitzar una matriu 2D anomenada mapa d’altura, que sembla una versió única de la textura original. Per exemple, la imatge superior té una textura realista de maó aplicada a 2 superfícies planes. La textura i el mapa d’alçada són els següents:

Els colors del mapa d’alçada representen les normals de la superfície del maó (hem cobert el que és el normal Episodi 1 d'aquesta sèrie d'articles). Quan la seqüència de renderització arriba al punt d’aplicar la textura del maó a la superfície, es fan una sèrie de càlculs per ajustar el color de la textura del maó al normal.

Com a resultat, els maons tenen un aspecte més 3D, tot i que encara són perfectament plans. Sobretot si mireu detingudament les vores dels maons, podeu veure els límits de la tècnica: la textura sembla una mica deformada. Però per obtenir un truc ràpid d’afegir més detalls a una superfície, el mapatge de cops és molt popular.

Un mapa normal és com un mapa d’elevació, però els colors d’aquesta textura són els mateixos. Dit d’una altra manera, no es requereix un càlcul per convertir el mapa d’elevacions a la normalitat. Us podeu preguntar com es poden utilitzar els colors per representar una fletxa a l’espai. La resposta és senzilla: cada texel en té un de específic R, G, B (vermell, verd, blau) i aquests números són directament X ve Z valors per al vector normal.

A l'exemple anterior, el diagrama esquerre mostra com canvia la direcció del normal en una superfície rugosa. Per representar les mateixes normals en una textura plana (diagrama central), els assignem un color. En el nostre cas, R, G, B augmentant els valors (0,255,0) per a la recta i després les quantitats de vermell per a l'esquerra i blava per a la dreta.

Tingueu en compte que aquest color no es combina amb el píxel original, ja que indica al processador cap a on s’enfronta la normalitat, de manera que la càmera pot calcular correctament els angles entre els llums i la superfície amb textura.

Els avantatges del mapatge normal i de gran intensitat brillen quan s’utilitza il·luminació dinàmica a l’escena i el procés de renderització calcula els efectes dels canvis de llum per píxel i no per cantonada. Ara els jocs moderns utilitzen un munt de textures per millorar la qualitat de la màgia feta.

Aquesta paret d’aspecte realista és increïblement només una superfície plana: els detalls sobre el maó i el morter no es van fer amb milions de polígons. En el seu lloc, només fa cinc textures i molta intel·ligent feina de matemàtiques.

El mapa d'elevació es va utilitzar per generar el mapa normal per simular la forma en què els maons projectaven ombres sobre si mateixos i qualsevol canvi menor a la superfície. La textura de rugositat es va utilitzar per canviar la manera en què la llum reflecteix diferents elements de la paret (per exemple, un maó aplanat reflecteix de manera més consistent que el morter rugós).

El mapa final, etiquetat com AO a la imatge superior, forma part d’un procés anomenat oclusió ambiental: una tècnica que examinarem amb més profunditat en un article posterior, però només ombres per ara.

El mapatge de textures és crucial

La textura és absolutament essencial per al disseny de jocs. Obteniu la versió 2019 de Warhorse Studio Arriba el regne: la salvació - Un joc de rol en primera persona situat a Bohèmia del segle XV, un antic país de l’Europa central de l’est. Els dissenyadors desitjaven crear un món el més realista possible per al període en qüestió. I la millor manera d’immergir el jugador en una vida de fa centenars d’anys, en totes les vistes del paisatge, edificis, conjunt de roba, cabells, articles quotidians, etc. Es tractava de tenir l’aspecte adequat.

Cada textura única d’aquesta imatge del joc la fabriquen els artistes i el seu ús és el motor de renderització controlat pels programadors. Alguns són petits, tenen detalls bàsics i tenen poca manera de filtrar o processar altres textures (ales de pollastre, per exemple).

Altres són d'alta resolució i mostren molts detalls; filtrat anisotròpicament i combinat amb mapes normals i altres textures; només cal mirar la cara de l’home en primer pla. Els programadors expliquen els diferents requisits de texturar cada element de l’escena.

Ara tot això passa en molts jocs, ja que els jugadors esperen més detalls i realisme. Les textures creixeran i s’utilitzaran més en una superfície, però el procés de mostreig de text i aplicació a píxels serà essencialment el mateix que en els dies del terratrèmol. La millor tecnologia, per vella que sigui, no mor mai!