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.
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.
Si 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.
Si 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:
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í:
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:
(*) 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”.