Tip Photoshop. Cómo evitar los halos en texturas recortadas

Imaginad esta situación: una escena 3D con una gran superficie, por ejemplo un muro de hormigón, y en una zona determinada queremos “pegar” una señal, un logotipo, un texto… En un caso así utilizaremos un material para definir la base —el hormigón— y aparte crearemos otro material para definir el logotipo o texto propiamente dicho.

Este segundo material, sea cual sea el programa 3D que utilicemos, tendrá al menos un canal de Color y un segundo canal para definir el recorte de la Máscara (el contorno de nuestro logotipo) (*). Dependiendo de la situación o del programa en cuestión, esa Máscara podrá ser un Canal de Transparencia, o un Decal, o un Stencil, o un Alpha (aquí sí que ya depende de la nomenclatura que utiliza cada programa).

En la siguiente imagen podemos ver el viejo logotipo de Apple, a la izquierda con fondo negro, a la derecha con fondo blanco, y en el medio tenemos la máscara o alfa para recortar el logotipo. Porque recordemos que cuando peguemos nuestro logotipo en la pared, la manzanita deberá aparecer rodeada del material “hormigón” (ni blanco, ni negro). Para eso necesitamos la máscara, que podrá ir guardada como un canal alfa en el mismo documento o como un fichero independiente.

result_selection

 

Y aquí viene el problema que probablemente os habrá aparecido en alguna ocasión: tanto si utilizamos la versión del logo con el fondo negro como la de blanco, una vez que sea recortada por la máscara sobre nuestro material de fondo es posible que nos aparezca un molesto halo alrededor.

white_over_darkSi decidimos guardar el logotipo con fondo blanco, lo recortamos con la máscara y lo colocamos sobre un fondo oscuro, es probable que acabemos viendo un halo clarito como el que podéis ver en la imagen de la izquierda. En la imagen se ha exagerado el efecto, porque realmente suele ser muy sutil, ya que se trata de un problema de conflicto entre el antialiasing del contorno de color y el de la máscara.

black_over_softSi por el contrario decidimos guardar el logotipo con fondo negro, lo recortamos con la máscara y lo colocamos sobre un fondo claro, es probable que acabemos viendo un halo oscuro como el de la derecha (también aquí exagerado).

Por supuesto, la lógica nos dice que deberíamos haber guardado el logo con un fondo negro si lo vamos a usar sobre un fondo oscuro, o con un fondo blanco si va a ir sobre uno claro. O incluso mejor aún, podríamos rodear al logo, en Photoshop, del mismo material sobre el que finalmente va a ir cuando lo coloquemos en en nuestro programa 3D. De hecho esta sería una de las soluciones más comúnmente aceptadas. El problema es ¿qué ocurre si finalmente cambiamos de idea y usamos un material base diferente —madera o mármol, por ejemplo— en lugar de hormigón? Tendríamos que volver a Photoshop a cambiar el material que rodea al logo.

Tenemos una solución mucho mejor, consistente en “reventar” el logotipo: hacer que los colores se expandan más allá de los límites de nuestra máscara. De esa forma nunca aparecerán halos.

En un logotipo de un solo color, por ejemplo, no sería necesario definir su contorno en el canal de color, sino que con el recorte sería suficiente. Con el actual logo de Apple, por ejemplo, si queremos que la manzana sea toda roja sobre un fondo de mármol, bastaría con tener un cuadrado completo de rojo en el canal de color, y ya se encargaría el alfa de recortar la forma del contorno.

Pero en el logo antiguo, con las franjitas de colores, ya no es tan simple. Es cierto que para expandir los colores podríamos hacerlo manualmente con relativa facilidad haciendo una selección vertical central de todo el logo, en Photoshop, y luego expandiéndola en horizontal hasta llenar el documento completamente. Pero si la distribución de colores fuera más compleja ya no podríamos hacerlo así.

Y aquí es donde viene al rescate una de esas herramientas que nos hace la vida más fácil. Pero no se encuentra directamente en Photoshop (al menos, no que yo sepa, corregidme si me equivoco, en los comentarios). Es un filtro gratuito de Flaming Pear que se llama Solidify. Lo encontraréis junto con otros muchos en el enlace “Free Plugins”, abajo del todo en la página de downloads.

Al aplicar este filtro sobre una capa flotante conseguimos que se expandan los pixels de colores respecto a los bordes del objeto, tal como podéis ver en la siguiente imagen:

flamingpear_solidify

 

Y de esta forma la selección definida por el canal alfa nunca se podrá ver “contaminada” por pixels de colores ajenos a los del propio objeto, como podéis apreciar aquí:

result_selection

 

Cuando instaléis el plugin veréis que tiene 3 posibilidades o “sabores”: Solidify A, B o C. Probad con todas ellas, dependiendo de la situación, pero a mí por lo general me suele funcionar bastante bien la “A”.

En el siguiente ejemplo es esto lo que he utilizado para expandir los colores alrededor de la costa de Japón y poder trabajar la capa terrestre de material independientemente, con respecto al material empleado para el mar:

japan

 

(*) Es verdad que también podríamos guardar la textura como un formato de archivo (.PSD, .PNG) que permitiera contener la transparencia de una capa de un modo “flotante” o “directo” y no a través de un canal alfa, pero quizá no todos los programas 3D puedan entender correctamente esa información de “transparencia incrustada”.

Tutorial Photoshop. Importar y tratar topografía RAW

Hace unos días he necesitado crear una textura que incorporase la información del relieve de la Tierra, así que fui a la fantástica web de la NASA “Blue Marble Next Generation” y allí me hice con el archivo a máxima calidad “BMNG RAW Topography”.

Tal y como describen allí, este archivo supone una representación de la elevación de la superficie de la Tierra en metros, respecto al nivel del mar. Los valores positivos corresponden a todas aquellas zonas que están por encima del nivel de mar, y los negativos a aquellas que están por debajo, aún perteneciendo a las zonas continentales (como ciertas zonas de los Países Bajos, por ejemplo).

Todos esos datos están formateados como un archivo de 16 bits de tipo “RAW Binary” (.bin), de tal modo que se representa la superficie equirectangular de nuestro mundo mediante 86.400 columnas por 43.200 líneas. Así que al final, una vez lo convirtamos a una imagen, tendremos que cada grado de latitud o longitud de la Tierra estará representado por 240 píxels (86.400/360º=240). Se trata, pues, de una representación de muy alta calidad del relieve de nuestro planeta y además, no lo olvidemos, contamos con 16 bits de información (es decir: 65.536 posibles niveles, en  lugar de los 256 que obtendríamos con un archivo de 8 bits).

En el mencionado link veremos que tenemos un archivo comprimido de 1GB llamado “srtm_ramp2.world.86400×43200.bin.gz”. Una vez lo bajemos y descomprimamos el .gz tendremos un archivo .bin de varios gigas. La cuestión es: ¿cómo hacemos para convertir ese archivo en imagen?. Aunque no es el mejor programa para tratar con ese tipo de archivos, lo podremos abrir con Photoshop, siempre y cuando tengamos un equipo relativamente moderno y potente, con suficiente RAM. Para ello podremos seguir los siguientes pasos:

Desde Photoshop ejecutamos la orden “Abrir…” y buscamos el archivo .bin, pero será importante que le indiquemos al programa que debe tener en cuenta “Todos los Documentos” y que use el formato “Photoshop Raw” (cuidado, no confundir con “Camera Raw”). Aquí tenéis una captura:

all_documents_psd_raw

 

psd_raw_options_macA continuación se os abrirá un cuadro de diálogo donde tenéis que introducir los parámetros de la derecha.

Fijaos que las medidas 86400 x 43200 nos las facilitaban en el texto de la NASA. En “Canales” dejad sólo “1”. Por otro lado es importante indicarle que se trata de una imagen de “16 bits”.

En mi caso, que trabajo con un Mac, le he tenido que indicar esa opción (de hecho, si marco “IBM PC” se me abre una imagen totalmente inservible).

Y el “Cabecero” (“Header”) lo dejamos en cero, tal como nos indicaban en las instrucciones (“no header”).

Una vez le demos al OK, tranquilos, porque probablemente se os pasará un buen ratito para abrir la imagen (no recuerdo exactamente, pero igual fue 1 minuto o quizá algo más).

Y una vez la tengáis abierta, no os alarméis: parece que todo es negro ¿verdad?. Pues no. No es negro. Recordad que se trata de una imagen de 16 bits ;-)

Lo que sí es cierto es que la imagen tiene un problema y es que Photoshop no sabe interpretar las zonas de tierra firme que se encuentran bajo el nivel del mar y que originalmente, en el archivo .bin, tenían valores negativos. Lo que hace el programa es darles un valor de “casi blanco”. Acercaos mucho a la imagen y descubriréis que hay algunas “manchitas” blancas aquí y allá. Más o menos por la zona central, un poco hacia el norte, si os ponéis al 100%, podréis reconocer el perfil de la costa de los Países Bajos:

 

error_negative

Y si os acercáis más todavía veréis que el contorno de esas zonas NO tiene antialiasing, sino que están claramente pixeladas (detalle de la imagen superior).

Pues bien, lo que vamos a hacer ahora es darles a todas esas zonas un valor de “negro absoluto” para hacer que se queden al nivel del mar. Para ello usamos la herramienta “Varita Mágica” e indicamos en sus opciones que use una tolerancia de 32, desactivamos el Anti-alias y le decimos que NO sea Contiguo, tal como vemos en la siguiente captura:

 

varita

A continuación pinchamos sobre una de esas zonas blancas (o casi blancas), y esperamos. Paciencia, porque le volverá a costar un rato: se trata de una imagen enorme. Una vez nos haya seleccionado todas esas zonas del documento las llenamos de negro.

Bien, ahora tenemos una imagen enorme y aparentemente negra. Pero no es así.

Abrimos los Niveles y allí veremos un histograma que nos indica que casi toda la información se encuentra en la parte izquierda, en la zona de los tonos más oscuros. Gracias al hecho de que contamos con 16 bits, lo podemos arreglar sin fastidiar la calidad de la imagen, moviendo el manejador de las altas luces hacia la izquierda, justo hasta la zona donde se empieza a ver información en el histograma, tal como vemos en la siguiente captura animada:

levels

Al hacer esta operación veréis cómo en la imagen aparece por fin el relieve de la Tierra. Antes de cerrar la ventanita de los Niveles quizá notéis un fuerte banding. Tranquilos: dadle a OK, dejad que calcule (le volverá a costar un buen rato) y finalmente tendremos nuestra imagen con el relieve de la Tierra (y sin bandings). Si nos acercamos a Japón veremos esto, con el Fujiyama abajo a la derecha:

 

error_negative

Ahora podremos decidir si mantenemos la imagen como 16 bits, o si no nos hace falta tanta cantidad de información y lo podemos bajar a 8 bits. En cualquier caso, una vez nos llevemos la imagen a nuestro programa 3D y la usemos como Mapa de Desplazamiento, obtendremos algo como esto:

 

japon3d

Y aquí terminamos. Seguro que esto no lo vais a usar ni necesitar mañana. Pero algún día espero que quizá os pueda servir :-)

Recurso Photoshop: Guías y rejillas exactas, al píxel

guideguide

Acabo de descubrir esta extensión para Photoshop, GuideGuide, y ya se ha convertido en uno de mis recursos favoritos, imprescindible cuando necesitas “exactitud al pixel”, que es algo relativamente frecuente al trabajar ciertas texturas como los patrones de repetición, entre otras muchas situaciones.

Con esta herramienta podremos crear guías para márgenes, filas y columnas, guías medias horizontales o verticales, retículas personalizadas de X por Y píxels, con absoluta exactitud y simplemente pinchando en un botón. Con otro botón eliminaremos todas las guías del documento. Y también podremos guardar nuestros presets.

ACTUALIZO: Ah, y se me ha olvidado mencionar algo que para mí resulta extremadamente útil: si no tenemos nada seleccionado, las guías se aplican considerando el área de todo el documento, pero si hacemos una selección sólo tiene en cuenta esa zona. De ese modo, dejando los márgenes a “0”, con sólo pinchar en el botón “GG” se nos crearán 4 guías alrededor de la selección. Por ejemplo.

Además, el control de la precisión es total: podemos predefinir dónde queremos que se queden los “píxeles sobrantes” cuando le pidamos operaciones no exactas (por ejemplo, si dividimos un documento de 25 pixels por la mitad, donde nos quedarán dos áreas diferentes, una de 12 y otra de 13 pixels)

Si usas Photoshop CS4 o CS5 no sé a qué estás esperando para bajarla.  Muchísimas gracias Cameron McEfee por crear y regalarnos esta pequeña maravilla. Porque además es gratis (podéis mandarle un donativo si queréis) ;-)

Tip Photoshop. Fantástica técnica de Rodrigo Gelmi

Vaso splash Rodrigo Gelmi

Hace unas semanas, el gran ilustrador brasileño Rodrigo Gelmi compartió con nosotros en los foros de Luxology unas fantásticas imágenes realizadas con Modo en las que había creado las gotas mediante normal maps trabajados con Photoshop. Todo el mundo empezó a preguntarle cómo lo había hecho y enseguida nos lo enseñó, con este fantástico vídeo, donde sobran las palabras. ¡Gracias Gelmi! :-)

Si no conocíais el trabajo de Gelmi podéis pasaros por su web y también por su galería personal en Luxology, donde podréis ver muchos de sus trabajos de un modo más rápido.

Tip Photoshop. Usar Umbral para detectar límites

Hacemos un crop a ojoAlgunas veces, cuando queremos recortar una imagen haciendo un “crop” en Photoshop, nos puede surgir la duda de dónde exactamente está el límite, hasta dónde llegan los últimos pixels de color, especialmente cuando tenemos unos bordes difusos como los de una sombra, un glow o un contorno desenfocado.

A la derecha vemos un ejemplo típico: a la hora de hacer el “crop” no percibimos exactamente hasta donde llega esa sombra.

Mal resultado por recortar a ojoProbablemente nos ocurrirá que, o bien dejaremos un excesivo margen innecesario, o bien nos cargaremos parte de la imagen.

Y ninguna de las dos opciones es buena, especialmente la segunda, porque una vez coloquemos nuestra imagen allá donde tenga que ir (en un folleto, en una web o aplicada como textura en nuestro modelo) nos saltará a la vista ese horrible recorte que nos ha eliminado parte de nuestro borde difuso. Fijaos en el ejemplo de la izquierda.

Un truco que uso para estos casos es el de añadir una capa de ajuste “Umbral” (“Threshold”, en inglés) con carácter temporal. Una capa que se sitúe por encima de todas las demás y las afecte al completo. Y a continuación movemos el nivel del umbral al máximo, hasta llegar a los 255, como podéis ver en la siguiente captura.

Subimos el umbral a tope

Recorte hecho basándonos en el umbral máximoDe esta forma veremos como todo lo que tengamos por debajo se nos transforma en una masa negra, de tal modo que hasta el último pixel que contenga algo de color se convertirá en negro, por suave que sea.

Y así podremos realizar la operación de recorte basándonos en esa información, como podéis ver en la imagen de la derecha.

Podríamos incluso ajustarnos hasta el último pixel, con la seguridad de no afectar por accidente a nada importante de la imagen.

Resultado recorte perfecto gracias al Umbral máximoUna vez hecho el crop no tenemos más que eliminar esa capa de ajuste de tipo Umbral, y ya tenemos nuestra imagen perfectamente recortada y lista para guardar o exportar para ser utilizada fuera de Photoshop. Fijaos en la imagen de la izquierda cómo ya no se ve la sombra interrumpida antes de llegar a su límite.

Si vais a necesitar hacer esto a menudo recordad que podéis utilizar una acción que nos añada la capa de ajuste umbral y lo lleve al máximo.

Tip Photoshop. Dos ventanas con el mismo documento

Estos últimos días me ha venido muy bien una vieja prestación de Photoshop que, quizá por sencilla, pueda haberos pasado desapercibida: la posibilidad de ver un mismo documento abierto en dos ventanas (o más). De esta forma podemos tener una ventana principal en la que trabajaremos sobre nuestra imagen a una escala muy grande, y otra ventana secundaria para poder ver cómo está quedando al 100%, o incluso a una versión más reducida. En la siguiente imagen vemos cómo se accede a esta prestación:

Cómo abrir una segunda ventana en Photoshop

De este modo nos podemos ahorrar muchos zoom-in y zoom-out dentro del documento, si estamos por ejemplo retocando las pestañas de un ojo y queremos, en tiempo real, ver cómo está quedando el retrato al verlo en su conjunto.

También es muy útil para el diseño de iconos: me ha venido genial para crear los iconitos de las “ETÉREA UV Tools”. A continuación podéis ver, a la izquierda un icono ampliado al 1200%, y a la derecha a su tamaño real, de 32 x 32 pixels.

Dos ventanas abiertas de un mismo documento

Tip Photoshop. Interpolación por aproximación

Al hilo de mi anterior post, aquí tenéis un pequeño truquillo con Photoshop. Cuando tengáis que escalar una textura de ese tipo, muchas veces es conveniente utilizar un sistema de interpolación diferente del “Bicúbico”, que es el que viene por defecto.

La interpolación bicúbica es idónea para escalar imágenes de tipo fotográfico, pero para gráficos pixelados, como los del mencionado post, es mucho mejor usar la “Interpolación por Aproximación” (creo que la traducen así en castellano; en inglés se llama “Nearest Neighbor”).

Fijaos en la diferencia al escalar una de las texturas de Daisuke Hayashi a un 400%:

Interpolación Nearest Neighbor

Y para estos casos, todo funciona muchísimo mejor si escalamos al 200%, 400%, 800%. O bien al 50%, 25%, 12,5%… si estuviéramos partiendo de texturas grandes.