Version: 2018.2
Materiales, Shaders y Texturas
Creando y utilizando Materiales

Texturas 2D

Normalmente, la geometría mesh de un objeto solamente da una aproximación dura de la forma mientras la mayoría de los detalles finos son suministrados por Textures . Una textura es solamente una imagen bitmap estándar que es aplicada sobre la superficie del mesh. Usted puede pensar de una imagen de textura como si fuera impresa sobre una lámina de goma que se estira y es clavada al mesh en posiciones apropiadas. El posicionamiento de la textura es hecha con una software de modelado 3D que es usado para crear el mesh.

Un cilindro con una corteza de árbol
Un cilindro con una corteza de árbol

Unity puede importar texturas de la mayoría de formatos de archivo de imagen más comunes.

Texturas para uso en modelos 3D

Las texturas son aplicadas a objetos usando Materials. Los Materiales usan programas especializados de gráficas llamados Shaders para renderizar una textura en la superficie del mesh. Los Shaders pueden implementar efectos de iluminación y coloreado para simular superficies brillantes o desiguales entre otras cosas. Ellos pueden también hacer uso de dos o más texturas a la vez, combinándolas para una flexibilidad aún mayor.

Debes elaborar tus texturas en dimensiones que sean potencias de dos (p.ej. 32x32, 64x64, 128x128, 256x256, etc). Solo tienes que colocarlas en la carpeta Assets de tu proyecto y aparecerán en el Project View.

Una vez tu textura haya sido importada, debes asignarla a un Material. El material puede entonces ser aplicado a un mesh, Particle System o GUI Texture. Usando los Import Settings, también se puede convertir a un Cubemap o Normalmap para diferentes tipos de aplicaciones en el juego. Para más información sobre importar texturas, favor leer la página de Componentes de Textura.

Gráficas 2D

En los juegos 2D, los Sprites son implementados usando texturas aplicadas a meshes planos que aproximan el tamaño del objeto.

Un Sprite desde un punto de vista 3D
Un Sprite desde un punto de vista 3D

Un objeto en un juego 2D puede requerir un conjunto de imágenes gráficas relacionadas para representar cuadros de animación o de diferentes estados de un personaje. Hay técnicas especiales que están disponibles para permitir que estos conjuntos de imágenes sean diseñadas y renderizadas de manera eficiente. Vea la página del manual acerca del Sprite Editor para más información.

GUI

La interfaz gráfica de usuario(graphic user interface) (GUI) consiste en gráficas que no son utilizadas directamente en la escena de juego pero están ahí para permitirle al jugador tomar decisiones y ver información. Por ejemplo, la visualización de los puntos y el menú de opciones son ejemplos típicos del GUI de un juego. Estas gráficas son claramente muy diferentes al tipo utilizado para detallar la superficie de un mesh pero estas, no obstante, se manejan con las texturas estándares de Unity. Vea el capitulo del manual acerca del GUI Scripting Guide para más detalles sobre el sistema GUI de Unity.

Partículas

Los Meshes son ideales para la representación de objetos sólidos, pero menos adecuados para cosas como las llamas, el humo y las chispas que dejan un hechizo mágico. Este tipo de efecto es manejado mucho mejor por Particle Systems. Una partícula es una pequeña gráfica 2D que representa una porción pequeña de algo que es básicamente fluido o gaseoso, como lo es una nube de humo. Cuando muchas de estas partículas son creadas a la vez y son puestas en movimiento, opcionalmente con variaciones aleatorias, estas pueden crear un efecto muy convincente. Por ejemplo, es posible visualizar una explosión enviando partículas con una textura de fuego a gran velocidad desde un punto central. Una cascada puede ser simulada mediante la aceleración de partículas de agua hacia abajo de una alta trayectoria en la escena.

Sistema de Partículas de una Estrella
Sistema de Partículas de una Estrella

El sistema de partículas de Unity tiene una gran cantidad de opciones para crear todo tipo de efectos de fluido. Vea el manual chapter sobre el tema para más información.

Heightmaps de Terreno

Las texturas incluso se pueden utilizar en los casos en que la imagen nunca será vista en absoluto, al menos no directamente. En una imagen de escala de grises, cada valor de píxel es simplemente un número que corresponde a la tonalidad de gris en ese punto de la imagen (esto podría ser un valor en el rango de 0..1, donde cero es negro y uno es blanco, por ejemplo). Aunque una imagen como esta se pueda ver, no hay ninguna razón para que los valores de los píxeles numéricos no puedan ser utilizados para otros propósitos también, y esto es precisamente lo que se hace con Terrain Heightmaps.

Un terrain es un mesh representando un área de suelo dónde cada punto en el suelo tiene una altura en partícula desde una base. El heightmap para un terreno almacena las muestras numéricas de altura en intervalos regulares, como valores de una escala de grises en una imagen, donde cada píxel corresponde a una cuadrícula de coordenadas en el suelo.

Interesantemente, a pesar de que un heightmap no es visto directamente como una imagen, todavía hay técnicas de procesamiento de imágenes comunes que son útiles cuando son aplicadas a la información de la altura. Por ejemplo, agregando ruido(noise) a una heightmap va a crear la impresión de un terreno rocoso, mientras difuminando lo alisará para producir un paisaje ondulado suave.

Más información acerca de los terrenos en Unity pude ser encontrada en this section del manual.

Materiales, Shaders y Texturas
Creando y utilizando Materiales