Unidad 2018.1 acaba de ser lanzado y una de las principales características nuevas es Shader Graph, un nuevo lenguaje de programación visual para crear shaders. En este artículo, veremos cómo habilitar y usar Shader Graph. También hay un video de este tutorial. disponible aquí o incrustado debajo.
En primer lugar, para comenzar a usar Shader Graph, asegúrese de usar Unity 2018.1 o posterior.
A continuación, inicie Unity y cree un nuevo proyecto. Utilicé la siguiente configuración:
Shader Graph es totalmente compatible con la nueva canalización de renderización ligera. Para que conste, Shader Graph NO funciona con la tubería HD actual, esta función está en desarrollo. No hay necesidad de agregar ningún paquete nuevo… todavía. Una vez que esté listo, haga clic en Crear proyecto. Una vez que su proyecto esté cargado, continúe y cree una nueva escena.
Necesitamos algún tipo de objeto para aplicar nuestro sombreador, simplemente haga clic derecho en la escena recién creada en la vista de jerarquía, seleccione Crear-> Esfera.
Ahora necesitamos habilitar la funcionalidad Shader Graph en Unity. Haga clic en Ventana, luego seleccione Administrador de paquetes.
En la ventana resultante, seleccione Todo, luego Shadergraph, luego Instalar. Esto tomará unos segundos.
Ahora que Shadergraph está habilitado, creemos uno. En el panel Proyecto, creé una nueva carpeta llamada Shaders. Haga clic derecho en la carpeta recién creada y seleccione Create->Shader->PBR Graph.
Llamé al mío MyShader, nombra el tuyo como quieras. Excepto por Dilbert; ¡Ese es un nombre estúpido para un shader!
¡Una pequeña configuración más antes de comenzar a crear shaders! Necesitamos crear un material al que adjuntaremos nuestro sombreador y, en última instancia, lo aplicaremos a nuestra malla de esfera. Haga clic con el botón derecho en la carpeta Materiales y seleccione Crear->Material.
Llamé al mío MyMaterial, de nuevo, nombra el tuyo como quieras… incluso Dilbert. Asegúrese de que su sombreador esté seleccionado y se muestre en Inspector, luego simplemente arrastre y suelte su sombreador recién creado en él.
Finalmente, arrastre su material a la Esfera que creó anteriormente. Uf… ok, es hora de crear nuestro shader. Simplemente haga doble clic en el sombreador y se creará el editor de Shader Graph. Un nuevo proyecto debería verse así:
Puede acercar y alejar la superficie de diseño con la rueda del mouse, mantenga presionado el botón central del mouse para desplazar la superficie.
El PBR Master puede considerarse como el último resultado del sombreador. Puede elegir entre Metálico y Especular al desplegar la pestaña de flujo de trabajo. La pizarra es la sección de arriba a la izquierda y se puede usar para configurar parámetros como veremos en un momento. La región inferior derecha es una vista previa del sombreador, esta ventana se puede cambiar de tamaño.
Crear un sombreador ahora es cuestión de crear una red de nodos y conectarlos entre sí. Mostremos un ejemplo simple de cómo conectar un mapa de texturas al canal Albedo. Haga clic derecho en un punto vacío en el lienzo, seleccione Crear nodo-> Entrada-> Activo de textura 2D.
Ahora haga clic en el círculo rojo a la derecha y arrástrelo a una parte vacía del lienzo. Seleccione Input->Sample Texture 2D, luego conecte el pin de salida RGBA al pin de entrada de Albedo en el nodo PBR, así:
En este punto, tenemos el equivalente de una textura difusa definida en nuestro sombreador, ahora regrese al Activo de textura 2D, haga clic en el pequeño círculo a la derecha del campo de textura y seleccione una textura para aplicar. Elija una textura compatible de su proyecto.
La vista previa del sombreador ahora debería mostrar la textura actualizada:
Ahora, ¿qué sucede si desea que la textura se defina como un parámetro en el editor? Aquí es donde entra en juego la Pizarra. En la Pizarra, haga clic en el ícono + a la derecha, luego seleccione Textura.
Nómbralo como quieras, yo lo llamé SourceTexture en mi caso. También proporcione opcionalmente un valor de textura predeterminado usando el mismo proceso de ejemplo que acabamos de hacer arriba.
Ahora reemplacemos nuestra textura codificada con un parámetro en su lugar. Puede eliminar un nodo haciendo clic izquierdo en él y presionando la tecla Eliminar.
Ahora, este parámetro se puede definir en el editor. Seleccione la Esfera que creamos y luego aplique nuestro material también en la vista de Jerarquía. En el Inspector debajo del Material, ahora verá un nuevo parámetro que coincide con el nombre que acaba de proporcionar:
También puede ver fácilmente el código fuente generado por un sombreador haciendo clic derecho en el nodo de salida y seleccionando Copiar sombreador.
El código HLSL del sombreador se habrá copiado en su portapapeles.
Entonces, eso es lo básico para usar Shader Graph. Ahora se trata principalmente de crear los nodos de entrada apropiados, modificarlos y conectarlos a los pines de entrada apropiados en el nodo de salida PBR Master. Entrar en los detalles de cómo funciona esto está más allá del alcance de estos tutoriales, la programación de sombreadores es un tema VAST y podría llenar muchos libros. Sin embargo, no voy a dejarlo colgado… ahora que sabe cómo habilitar y usar las herramientas para crear Shader Graphs, sería un momento ideal para tener en sus manos algunas muestras y profundizar. Afortunadamente, Unity ha proporcionado exactamente eso, disponible para descargar aquí en Github.