Més enllà del EMBM: Com aconseguir millor bump/normal mapping en Wii

Definitivament la cosa esta complicada. Ja High Voltage Software amb la seva demo del motor Quantum3 i els posteriors, més destacats jocs que van portar aquest motor, ja van posar les possibilitats, pràcticament al màxim:

  • 2011 Conduit 2
  • 2010 Tournament of Legends
  • 2010 Iron Man 2
  • 2009 The Conduit

El veritable problema del “bump mapping” per maquinari de la Wii és que només afecta al Mapa d’ambient o mapa / canal Especular. Anomenat EMBM (Environmental Bump Mapping), és un algoritme de l’era del DX6 que simula reflexions especulars planes. No a la il·luminació dels punts de les textures o texels. L’aproximació a aquest efecte d’il·luminació per texel s’aconsegueix amb un emboss bump, clàssic des de la Voodoo. Per al qual cal usar una o diverses textures per aconseguir l’efecte, segons la qualitat a aconseguir. El qual s’aplica per textura completa, no per punts.

The Conduit falseja la il·luminació, conformant un cube map, amb llums / àrees negres o dels colors que hi ha a l’escenari. La manera clàssica de fer servir el EMBM. Creant la foscor al costat de la textura que tocaria aproximadament. Com aconsegueix Slave Zero en PC. En aquest no tinc clar que sigui un efecte per GPU o per CPU. Però el canvi no es produeix en temps real o ajustat als canvis de punts de llum.

El xip de la Wii igual que el de la GC té unes unitats anomenades TEV (Texture Environment Unit) que té la capacitat de barrejar en ultimo passi de la pipeline de renderitzat de la GPU, el de texturitzat. Aquesta és una unitat similar al píxel shader, però ni de lluny amb la seva flexibilitat, complexitat i eficàcia. Amb tot, des NGC es van poder aconseguir shaders, efectes de textura molt complexos: Rogue Squadron, Mario Sunshine, The Legend of Zelda: Twilight Princess o Starfox Adventures. I ja en la Wii amb The Conduit, Silent Hill Shattered Memories, Mario Galaxy 1/2 i / o Metroid other M, aquests fan ús d’aquesta TEV, molts efectes per Hardware i del mateix EMBM de manera precisa. Per recrear, textures amb bump mapping, reflexos, refracció, fresnel o nivells d’especularidad com en les germanes grans, menys en la il·luminació per píxel al bump mapping.

A veure, seria possible aconseguir una il·luminació per píxel combinant el EMBM amb el emboss bump mapping i uns cubemaps del reflex d’ambient amb les llums que hi hagi en aquest punt bakeados en temps real, llevat frames i resolución.Esto hauria estat el més aproximat l’DOT3 o el píxel shader 1.0 de la Xbox1 contemporània de la NGC, però hagués penalitzat molt en el rendiment o en la varietat de textures en l’escena carregada. O obligant a trossejar els nivells per la càrrega gràfica. Ja que haver de carregar a la VRAM de la GC o la Wii, 1 cubemap cada x àrea per recrear aquests canvis d’il·luminació en objectes estàtics o dinàmics, seria una solució valida però molt per força bruta. Obligaria al motor i als programadors, a controlar i escalar l’ús de tot això. S’entén que l’algoritme de DOT3 simplificava tot això, a més que era mes realista amb la part d’il·luminació al punt ia més es podria sumar el mapa d’ambient i especular. Amb tres passades [de multitextura] ho aconseguiria. Això dependria també de si es fa servir forward rendering o differed rendering en el motor de dibuix. En el cas de la Wii necessités algunes més, pot arribar a 16 passades, però seria una salvatjada concentrar aquests passis en els objectes a la pantalla.

Per això més endavant es va arribar a la solució dels píxels shaders, que és una simplificació i racionalització de tots això. S’intenta aconseguir el mateix amb una passada. Guanyant temps de càlcul de la GPU, ús de memòria de la VRAM i també temps de CPU i RAM principal. Perquè al final aquests efectes de multitextura es recolzaven molt en el controlador de la GPU i per tant en instruccions complementàries de la CPU.

Però cal destacar com a avanç real en els gràfics en videojocs, l’streaming data. El dia que Xbox original va introduir el HDD dins el concepte consola, i com ja en la Xbox360 es exploto, realment les textures i la informació de textures per recrear materials, va créixer exponencialment. És cert que la velocitat de procés, la varietat d’efectes i la versatilitat dels shaders programables són crítics en aquesta evolució, però seria impensable aquests realment, sense discos durs en les consoles. És cert que la 360 va tenir molts jocs sense aquest requisit, al principi. Però és cert que la qualitat i la velocitat del streaming i l’ús del DVD millorava moltíssim.

Podríem concloure que The Conduit és gairebé el màxim i millor fet en un videojoc. I es tècnicament la demostració del motor Quantum3 en una situació real. A nivell de solució tècnica aquest és el camí. Mancat evidentment tot el pressupost que hi va haver darrere d’un Halo, per posar un exemple. Amb més treball d’art i de programació, podríem a veure tingut segur el 90% de la qualitat d’un Xbox1 en Wii. Entenent les diferències en el maquinari tan grans. Nintendo configura una gran GPU en el seu temps. Però just en aquest moment tot estava canviant tot, Nvidia estava donant el salt a PC.

Insisteixo, que The Conduit aquesta molt bé però podria a veure estat més. Més gran com a joc i encara millor acabat.

Si a més aquest motor s’hagués estandarditzat en el SDK de Nintendo, com l’Unreal en Xbox, encara més probable a veure vist aquests efectes en més quantitat de títols i en més qualitat. Però va ser tard.

Afegeix que el Metroid Other M, el Team Ninja demostra que coneixen la tècnica del “Normal Mapping” millor que Retro o Nintendo, i aconsegueixen el mateix que The Conduit, potser amb menys quantitat (en el total de l’escena) de “Normal Mapping “és a dir EMBM, que The Conduit, però molt bé introduït. Sobretot a usar-lo almenys, pot introduir major quantitat de polígons en pantalla.

Podria concloure que The Conduit, Metroid other M i Mario Galaxy, que també usa EMBM. Són els jocs que millor fan servir la Wii. I en el seu conjunt el maquinari de la NGC.

Amb aquesta entrada dono per conclosa tota reflexió sobre els límits de la Wii o NGC. Sobretot el camp de la recerca de fotorealisme en la seva capacitat per generar gràfics.

Imatges referència Wii EMBM:

Quake 1 modificat, EMBM en totes les textures:

Imatges esborrats de la web.

Super Mario Galaxy, enemics (llavis …) Planta i altres:

En les rodes:

Starfox Adventures: Fusta, aigua i pèl:

Rogue Squadron: Aigua, Xwings, terra…

Metroid other M: Hud casc Samus, Armadures aliats…

Metroid other M: Armadura Samus, ememigo…

Resident Evil: The Darkside Chronicles: Pelo, roba, parets…

Imatges referència PC EMBM:

Expendable:

Expendable_BM_Wasser_an

Evolva:

Slave Zero:

3dMark:

Documentació i enllaços utilitzats:

Fòrum debat interessant sobre el tema de EMBM en Quake 1 modificat: https://forum.beyond3d.com/threads/normal-mapping-wii-demo.46425/page-3

Documentació Nvidia: http://www.nvidia.com/object/LO_20010614_6721.html

Reportatge DX6 bump Gamesutra: http://www.gamasutra.com/view/feature/131753/ups_and_downs_of_bump_mapping_.php?page=1

Patent EMBM vigent: https://www.google.com/patents/US6825851

Pixel Pixel Shading Nvidia doc: https://developer.nvidia.com/sites/default/files/akamai/gamedev/docs/AGDC__Per_Pixel_Shading.pdf

Bump and Environment Mapping doc: http://www.ics.uci.edu/~majumder/VC/classes/BEmap.pdf

ReflectiveBumpMapping Nvidia Doc: https://developer.nvidia.com/sites/default/files/akamai/gamedev/docs/ReflectiveBumpMapping.pdf

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.