{"id":211,"date":"2015-06-04T22:51:04","date_gmt":"2015-06-04T22:51:04","guid":{"rendered":"http:\/\/inpositivegames.wordpress.com\/?p=211"},"modified":"2017-12-11T18:31:28","modified_gmt":"2017-12-11T18:31:28","slug":"beyond-embm-how-to-achieve-better-bump-normal-mapping-on-wii","status":"publish","type":"post","link":"http:\/\/www.davidgamizjimenez.com\/es\/inpositivegames\/beyond-embm-how-to-achieve-better-bump-normal-mapping-on-wii\/","title":{"rendered":"M\u00e1s all\u00e1 del EMBM: Como lograr mejor bump\/normal mapping en Wii"},"content":{"rendered":"<p><\/p>\n<div data-canvas-width=\"610.6914666666667\">Definitivamente la cosa esta complicada. Ya\u00a0High Voltage Software con su demo del motor Quantum3 y los posteriores, m\u00e1s destacados juegos que llevaron este motor, ya pusieron las posibilidades, pr\u00e1cticamente al m\u00e1ximo:<\/div>\n<div data-canvas-width=\"610.6914666666667\">\n<ul>\n<li>2011 Conduit 2<\/li>\n<li>2010 Tournament of Legends<\/li>\n<li>2010 Iron Man 2<\/li>\n<li>2009 The Conduit<\/li>\n<\/ul>\n<p><span class=\"embed-youtube\" style=\"text-align:center; display: block;\"><iframe loading=\"lazy\" class=\"youtube-player\" width=\"768\" height=\"432\" src=\"https:\/\/www.youtube.com\/embed\/4QFkevmDfyk?version=3&#038;rel=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;fs=1&#038;hl=es-ES&#038;autohide=2&#038;wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\"><\/iframe><\/span><\/p>\n<\/div>\n<div data-canvas-width=\"610.6914666666667\">\n<p>El verdadero problema del \u00abbump mapping\u00bb por hardware de la Wii es que solo afecta al Mapa de ambiente o mapa\/canal Especular. Llamado\u00a0EMBM (Environmental Bump Mapping), es un algoritmo de la era del DX6 que simula reflexiones especulares planas. No a la iluminaci\u00f3n de los puntos de las texturas o texels. La aproximaci\u00f3n a este efecto de iluminaci\u00f3n por texel se consigue con un emboss bump, cl\u00e1sico desde la Voodoo. Para el cual hay que usar una o varias texturas para conseguir el efecto, seg\u00fan la calidad a conseguir. El cual se aplica por textura completa, no por puntos.<\/p>\n<p>The Conduit falsea la iluminaci\u00f3n, conformando un cube map, con luces\/\u00e1reas negras o de los colores que hay en el escenario. La manera cl\u00e1sica de usar el EMBM. Creando la oscuridad en el lado de la textura que tocar\u00eda aproximadamente. Como consigue Slave Zero en PC. En este no tengo claro que sea un efecto por GPU o por CPU. Pero el cambio no se produce en tiempo real o ajustado a los cambios de puntos de luz.<\/p>\n<p>El chip de la Wii al igual que el de la GC tiene unas unidades llamadas TEV (Texture Environment Unit) que tiene la capacidad de mezclar en ultimo pase de la pipeline de renderizado de la GPU, el de texturizado. Esta es una unidad similar al pixel shader, pero ni de lejos con su flexibilidad, complejidad y eficacia. Con todo, desde NGC se pudieron conseguir shaders, efectos de textura muy complejos: Rogue Squadron, Mario Sunshine,\u00a0<span class=\"_Hcb _Fcb\"><span class=\"irc_pt\" dir=\"ltr\">The Legend of Zelda: Twilight Princess<\/span><\/span> o Starfox Adventures. Y ya en la Wii con The Conduit, Silent Hill Shattered Memories, Mario Galaxy 1\/2 y\/o Metroid other M, estos hacen uso de esta TEV, muchos efectos por Hardware y del mismo EMBM de manera precisa. Para recrear, texturas con bump mapping, reflejos, refracci\u00f3n, fresnel o niveles de especularidad como en las hermanas mayores, menos en la iluminaci\u00f3n por pixel en el bump mapping.<\/p>\n<p>A ver, seria posible conseguir una iluminaci\u00f3n por pixel combinando el EMBM con el emboss bump mapping y unos cubemaps del reflejo de ambiente con las luces que haya en ese punto bakeados en tiempo real, a menos frames y resoluci\u00f3n.Esto habr\u00eda sido lo m\u00e1s aproximado al DOT3 o el pixel shader 1.0 de la Xbox1 contempor\u00e1nea de la NGC, pero hubiese penalizado mucho en el rendimiento o en la variedad de texturas en la escena cargada. O obligando a trocear los niveles por la carga gr\u00e1fica. Ya que tener que cargar en la VRAM de la GC o la Wii, un cubemap cada x \u00e1rea para recrear esos cambios de iluminaci\u00f3n en objetos est\u00e1ticos o din\u00e1micos, seria una soluci\u00f3n valida pero muy por fuerza bruta. Obligar\u00eda al motor y a los programadores, a controlar y escalar el uso de todo esto. Se entiende que el algoritmo de DOT3 simplificaba todo esto, adem\u00e1s de que era mas realista con la parte de iluminaci\u00f3n al punto y adem\u00e1s se podr\u00eda sumar el mapa de ambiente y especular. Con tres pasadas [de multitextura] lo conseguir\u00eda. Esto depender\u00eda tambi\u00e9n de si se usa forward rendering o differed rendering en el motor de dibujo. En el caso de la Wii necesitara algunas m\u00e1s, puede llegar a 16 pasadas, pero seria una salvajada concentrar estos pases en tantos objetos en pantalla.<\/p>\n<p>Por esto m\u00e1s adelante se llego a la soluci\u00f3n de los pixels shaders, que es una simplificaci\u00f3n y racionalizaci\u00f3n de todos esto. Se intenta conseguir lo mismo con una pasada. Ganando tiempo de calculo de la GPU, uso de memoria de la VRAM y tambi\u00e9n tiempo de CPU y RAM principal. Porque al final estos efectos de multitextura se apoyaban mucho en el driver de la GPU y por ende en instrucciones complementarias de la CPU.<\/p>\n<p>Pero hay que destacar como avance real en los gr\u00e1ficos en videojuegos, el streaming data. El d\u00eda que Xbox original introdujo el HDD dentro del concepto \u00abconsola\u00bb, y como ya en la Xbox360 se exploto, realmente las texturas y la informaci\u00f3n de las texturas para recrear materiales, creci\u00f3 exponencialmente. Es cierto que la velocidad de proceso, la variedad de efectos y la versatilidad de los shaders programables son cr\u00edticos en esta evoluci\u00f3n, pero seria impensable estos realmente, sin discos duros en las consolas. Es cierto que la 360 tuvo muchos juegos sin este requisito, al principio. Pero es cierto que la calidad y la velocidad del streaming y el uso del DVD mejoraba much\u00edsimo.<\/p>\n<p>Podr\u00edamos concluir que The Conduit es casi lo m\u00e1ximo y lo mejor hecho en un videojuego para conseguir este tipo de efectos de relieve e iluminaci\u00f3n. Y t\u00e9cnicamente es la demostraci\u00f3n del motor Quantum3 en una situaci\u00f3n real. A nivel de soluci\u00f3n t\u00e9cnica ese es el camino. Falto evidentemente todo el presupuesto que hubo detr\u00e1s de un Halo, por poner un ejemplo. Con m\u00e1s trabajo de arte y de programaci\u00f3n, podr\u00edamos a ver tenido seguro el 90% de la calidad de un Xbox1 en Wii. Entendiendo las diferencias en el Hardware tan grandes. Nintendo configuro una gran GPU en su tiempo. Pero justo en ese momento todo estaba cambiando, todo, Nvidia estaba dando el salto en PC.<\/p>\n<p>Insisto, que The Conduit esta muy bien pero podr\u00eda a ver sido m\u00e1s. M\u00e1s grande como juego y aun mejor acabado.<\/p>\n<p>Si adem\u00e1s este motor se hubiese estandarizado en el SDK de Nintendo, como el Unreal en Xbox, aun m\u00e1s probable a ver visto estos efectos en m\u00e1s cantidad de t\u00edtulos y en m\u00e1s calidad. Pero fue tarde.<\/p>\n<p>A\u00f1adir que el Metroid Other M, el Team Ninja demuestra que conocen la t\u00e9cnica del \u00abNormal Mapping\u00bb mejor que Retro o Nintendo, y consiguen lo mismo que The Conduit, quiz\u00e1s con menos cantidad( en el total de la escena) de \u00abNormal Mapping\u00bb es decir EMBM, que The Conduit, pero muy bien introducido. Sobre todo al usarlo menos, puede introducir mayor cantidad de pol\u00edgonos en pantalla.<\/p>\n<p>Podr\u00eda concluir que The Conduit, Metroid other M y Mario Galaxy, que tambi\u00e9n usa EMBM. Son los juegos que mejor usan la Wii. Y en su conjunto el Hardware de la NGC.<\/p>\n<p>Con esta entrada doy por concluida toda reflexi\u00f3n sobre los limites de la Wii o NGC. Sobre todo el el campo de la b\u00fasqueda de fotorealismo en su capacidad para generar gr\u00e1ficos.<\/p>\n<p><strong>Im\u00e1genes referencia Wii EMBM:<\/strong><\/p>\n<p><strong>Quake 1 modificado, EMBM en todas las texturas:<\/strong><\/p>\n<p>Im\u00e1genes borradas de la web.<\/p>\n<p><strong>Super Mario Galaxy, enemigos (labios &#8230;) Tierra y otros:<\/strong><\/p>\n<p><a href=\"https:\/\/i0.wp.com\/www.davidgamizjimenez.com\/wp-content\/uploads\/2015\/06\/c80756c2077a733b23861f242b1eebb7-galaxy-mario-bros.jpg\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1468\" src=\"https:\/\/i0.wp.com\/www.davidgamizjimenez.com\/wp-content\/uploads\/2015\/06\/c80756c2077a733b23861f242b1eebb7-galaxy-mario-bros.jpg?resize=736%2C552\" alt=\"\" width=\"736\" height=\"552\" srcset=\"https:\/\/i0.wp.com\/www.davidgamizjimenez.com\/wp-content\/uploads\/2015\/06\/c80756c2077a733b23861f242b1eebb7-galaxy-mario-bros.jpg?w=736 736w, https:\/\/i0.wp.com\/www.davidgamizjimenez.com\/wp-content\/uploads\/2015\/06\/c80756c2077a733b23861f242b1eebb7-galaxy-mario-bros.jpg?resize=300%2C225 300w, https:\/\/i0.wp.com\/www.davidgamizjimenez.com\/wp-content\/uploads\/2015\/06\/c80756c2077a733b23861f242b1eebb7-galaxy-mario-bros.jpg?resize=320%2C240 320w\" sizes=\"auto, (max-width: 736px) 100vw, 736px\" \/><\/a><\/p>\n<p><strong>En las ruedas:<\/strong><\/p>\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"alignnone\" src=\"https:\/\/i0.wp.com\/media.gamerevolution.com\/images\/games\/wii\/battalion_wars_2\/battalion_wars_2_001.jpg?resize=640%2C480\" alt=\"\" width=\"640\" height=\"480\" \/><\/p>\n<p><strong>Starfox Adventures: Madera, agua y pelo:<\/strong><\/p>\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"alignnone\" src=\"https:\/\/i0.wp.com\/www.toy-tma.com\/wp-content\/uploads\/2010\/11\/Star-Fox-Adventures-Dino-Buddies-580x420.jpg?resize=580%2C420\" alt=\"\" width=\"580\" height=\"420\" \/><\/p>\n<p><strong>Rogue Squadron: Agua, Xwing, tierra&#8230;<br \/>\n<\/strong><\/p>\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"alignnone\" src=\"https:\/\/i0.wp.com\/common.ziffdavisinternet.com\/util_get_image\/4\/0%2C3363%2Csz%3D1%26i%3D43410%2C00.jpg?resize=640%2C480\" alt=\"\" width=\"640\" height=\"480\" \/><\/p>\n<p><strong>Metroid Other M: Samus casco HUD, Armadura aliado&#8230;<\/strong><\/p>\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"alignnone\" src=\"https:\/\/i0.wp.com\/videogamesdaily.com\/content\/metroid-other-m-preview-1.jpg?resize=768%2C432\" alt=\"\" width=\"768\" height=\"432\" \/><\/p>\n<p><strong>Metroid Other M: Samus Armadura, Enemigo&#8230;<\/strong><\/p>\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"alignnone\" src=\"https:\/\/i0.wp.com\/gamerinvestments.com\/video-game-stocks\/wp-content\/uploads\/2010\/08\/metroid-other-m-screens1.jpg?resize=768%2C433\" alt=\"\" width=\"768\" height=\"433\" \/><\/p>\n<p><strong>Resident Evil: The Darkside Chronicles: Pelo, ropa y paredes.<br \/>\n<\/strong><\/p>\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"alignnone\" src=\"https:\/\/i0.wp.com\/media.vandal.net\/m\/10293\/200972313323_5.jpg?resize=768%2C431\" alt=\"\" width=\"768\" height=\"431\" \/><\/p>\n<p><strong>Im\u00e1genes de referencia PC EMBM:<\/strong><\/p>\n<p><strong>Expendable:<\/strong><\/p>\n<p><a href=\"https:\/\/i0.wp.com\/www.davidgamizjimenez.com\/wp-content\/uploads\/2015\/06\/Expendable_BM_Wasser_an.jpg\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1469\" src=\"https:\/\/i0.wp.com\/www.davidgamizjimenez.com\/wp-content\/uploads\/2015\/06\/Expendable_BM_Wasser_an.jpg?resize=640%2C480\" alt=\"\" width=\"640\" height=\"480\" srcset=\"https:\/\/i0.wp.com\/www.davidgamizjimenez.com\/wp-content\/uploads\/2015\/06\/Expendable_BM_Wasser_an.jpg?w=640 640w, https:\/\/i0.wp.com\/www.davidgamizjimenez.com\/wp-content\/uploads\/2015\/06\/Expendable_BM_Wasser_an.jpg?resize=300%2C225 300w, https:\/\/i0.wp.com\/www.davidgamizjimenez.com\/wp-content\/uploads\/2015\/06\/Expendable_BM_Wasser_an.jpg?resize=320%2C240 320w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\n<p><strong>Evolva:<\/strong><\/p>\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"alignnone\" src=\"https:\/\/i0.wp.com\/www.beyond3d.com\/images\/reviews\/vivid\/Evolva_Do3_GeForces-big.jpg?resize=768%2C576\" alt=\"\" width=\"768\" height=\"576\" \/><\/p>\n<p><strong>Slave Zero:<\/strong><\/p>\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"alignnone\" src=\"https:\/\/i0.wp.com\/www.beyond3d.com\/images\/reviews\/vivid\/slavezero_bumps-big.jpg?resize=595%2C586\" alt=\"\" width=\"595\" height=\"586\" \/><\/p>\n<p><strong>3dMark:<\/strong><\/p>\n<p><a href=\"https:\/\/i0.wp.com\/www.davidgamizjimenez.com\/wp-content\/uploads\/2015\/06\/bump-env.jpg\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1470\" src=\"https:\/\/i0.wp.com\/www.davidgamizjimenez.com\/wp-content\/uploads\/2015\/06\/bump-env.jpg?resize=640%2C480\" alt=\"\" width=\"640\" height=\"480\" srcset=\"https:\/\/i0.wp.com\/www.davidgamizjimenez.com\/wp-content\/uploads\/2015\/06\/bump-env.jpg?w=640 640w, https:\/\/i0.wp.com\/www.davidgamizjimenez.com\/wp-content\/uploads\/2015\/06\/bump-env.jpg?resize=300%2C225 300w, https:\/\/i0.wp.com\/www.davidgamizjimenez.com\/wp-content\/uploads\/2015\/06\/bump-env.jpg?resize=320%2C240 320w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\n<p><strong>Documentaci\u00f3n y enlaces utilizados:<\/strong><\/p>\n<p><strong>Foro debate interesante sobre el tema de EMBM en Quake 1 modificado:<\/strong> <a href=\"https:\/\/forum.beyond3d.com\/threads\/normal-mapping-wii-demo.46425\/page-3\">https:\/\/forum.beyond3d.com\/threads\/normal-mapping-wii-demo.46425\/page-3<\/a><\/p>\n<p><strong>Documentaci\u00f3n Nvidia:<\/strong> <a href=\"http:\/\/www.nvidia.com\/object\/LO_20010614_6721.html\">http:\/\/www.nvidia.com\/object\/LO_20010614_6721.html<\/a><\/p>\n<p><strong>Reportaje DX6 bump Gamesutra:<\/strong> <a href=\"http:\/\/www.gamasutra.com\/view\/feature\/131753\/ups_and_downs_of_bump_mapping_.php?page=1\">http:\/\/www.gamasutra.com\/view\/feature\/131753\/ups_and_downs_of_bump_mapping_.php?page=1<\/a><\/p>\n<p><strong>Patente EMBM vigente: <\/strong><a href=\"https:\/\/www.google.com\/patents\/US6825851\">https:\/\/www.google.com\/patents\/US6825851<\/a><\/p>\n<p><strong>Pixel Pixel Shading Nvidia doc:<\/strong> <a href=\"https:\/\/developer.nvidia.com\/sites\/default\/files\/akamai\/gamedev\/docs\/AGDC__Per_Pixel_Shading.pdf\">https:\/\/developer.nvidia.com\/sites\/default\/files\/akamai\/gamedev\/docs\/AGDC__Per_Pixel_Shading.pdf<\/a><\/p>\n<p><strong>Bump and Environment Mapping doc: <\/strong>http:\/\/www.ics.uci.edu\/~majumder\/VC\/classes\/BEmap.pdf<\/p>\n<div data-canvas-width=\"393.72241999999994\"><strong>ReflectiveBumpMapping Nvidia Doc:<\/strong> <a href=\"https:\/\/developer.nvidia.com\/sites\/default\/files\/akamai\/gamedev\/docs\/ReflectiveBumpMapping.pdf\">https:\/\/developer.nvidia.com\/sites\/default\/files\/akamai\/gamedev\/docs\/ReflectiveBumpMapping.pdf<\/a><\/div>\n<div data-canvas-width=\"393.72241999999994\"><\/div>\n<\/div>\n<p><\/p>","protected":false},"excerpt":{"rendered":"<p>Definitivamente la cosa esta complicada. Ya\u00a0High Voltage Software con su demo del motor Quantum3 y los posteriores, m\u00e1s destacados juegos que llevaron este motor, ya pusieron las posibilidades, pr\u00e1cticamente al m\u00e1ximo: 2011 Conduit 2 2010 Tournament of Legends 2010 Iron Man 2 2009 The Conduit El verdadero problema del \u00abbump mapping\u00bb por hardware de la&hellip;<\/p>\n<p class=\"more\"><a class=\"more-link\" href=\"http:\/\/www.davidgamizjimenez.com\/es\/inpositivegames\/beyond-embm-how-to-achieve-better-bump-normal-mapping-on-wii\/\">Seguir leyendo <span class=\"screen-reader-text\">M\u00e1s all\u00e1 del EMBM: Como lograr mejor bump\/normal mapping en Wii<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[51,12],"tags":[79,81,80,20,11],"class_list":["post-211","post","type-post","status-publish","format-standard","hentry","category-inpositivegames","category-wii-critica-critic","tag-analisis","tag-embm","tag-tecnico","tag-the-conduit","tag-wii","entry"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pco8Eh-3p","_links":{"self":[{"href":"http:\/\/www.davidgamizjimenez.com\/es\/wp-json\/wp\/v2\/posts\/211","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.davidgamizjimenez.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.davidgamizjimenez.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.davidgamizjimenez.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.davidgamizjimenez.com\/es\/wp-json\/wp\/v2\/comments?post=211"}],"version-history":[{"count":0,"href":"http:\/\/www.davidgamizjimenez.com\/es\/wp-json\/wp\/v2\/posts\/211\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.davidgamizjimenez.com\/es\/wp-json\/wp\/v2\/media?parent=211"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.davidgamizjimenez.com\/es\/wp-json\/wp\/v2\/categories?post=211"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.davidgamizjimenez.com\/es\/wp-json\/wp\/v2\/tags?post=211"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}