Pixel Lo-fi en Unity

imagen

El estilo visual de mi juego de desarrollo LAUNDRY GAME (sí, esta es una publicidad descarada) se basa en píxeles grandes y claros en 3D. Me encanta la baja resolución en 3D. Me hicieron muchas preguntas sobre cómo hice esto, así que decidí escribir un tutorial.

Nota: ¡esta es solo mi decisión! Hay métodos que usan sombreadores, gráficos intermitentes y otros trucos, pero para mi pequeño proyecto en solitario, tal solución fue suficiente.

Adición 1: ¡el tipo inteligente Pete Brisburn envió un guión aquí en caso de que no te guste el truco de "quad en el cielo" (pasos 4-6)!

Etapa 1: preparación de la escena fuente



¡Primero debes preparar la escena! Creé este pequeño cubo con mi amigo pájaro Oscar J. Ruffles . Corre alrededor del cubo y grita constantemente. (Estos son solo el controlador de personajes y el animador conectados entre sí).

¡Pero mira estas repugnantes líneas de suavizado! Fu, vamos a deshacernos de ellos.

Etapa 2: retire las cámaras MSAA



Resalte Cámara principal y desactive la casilla Permitir MSAA . Como puede ver, los píxeles son mucho más nítidos. ¡Pero todavía no hay escalamiento! Es decir, todos los píxeles serán pequeños. Necesita ser reparado.

Etapa 3: renderizar la cámara en la textura de renderizado



Hago zoom (para obtener píxeles nítidos enormes) usando RenderTexture y renderizando la cámara principal en esta textura. ¡Esto nos permitirá usar esta RenderTexture como cualquier textura regular!


Estas son las opciones que usaré para mi RenderTexture . El tamaño es el tamaño al que hacemos zoom. Cuanto más pequeño es el número, más grandes son los píxeles. Para ambos valores, generalmente uso números en el rango de 300 a 600 (excelente Celeste , por ejemplo, realiza un zoom de 320x200).

El modo de filtro es una forma de aumentar / disminuir la escala. El modo "Punto" no agrega suavizado, es decir, conserva la nitidez de los píxeles que tanto necesitamos.

Pero que paso?


Ahora mostramos la cámara no en la pantalla, sino en RenderTexture, ¡así que no se muestra nada en la pantalla!

Para solucionar esto, necesitamos configurar otra cámara , pero esta vez un poco diferente.

Etapa 4: crear una cámara con zoom + quad



Comencemos creando una nueva cámara en la escena (llamémosla QuadCamera ) y adjuntemos un quad 3D de niño.

Etapa 5: colóquelo en algún lugar del vacío



Luego tenemos que tomar la QuadCamera y empujarla a algún lado. No importa dónde, lo principal es que nunca debe ser visible desde la cámara principal . Por lo general, lo levanto alto hacia el cielo o lo bajo profundamente.

Paso 6: adjunte la textura de renderizado al Quad y colóquelo frente a la cámara



Luego tomamos quad. Configuré Sprites-Default para él (un material estándar de Unity que no se ve afectado por la iluminación) para que no se vea afectado por ninguna iluminación aleatoria en la escena. Luego arrastre la RenderTexture al quad. Ahora quad muestra nuestra escena! Luego, movemos el quad de modo que quede frente a la QuadCamera (la cámara que ahora muestra la pantalla de destino).


Como puede ver, ¡ahora se ha aumentado la escala de renderizado! ¡Oscar puede hacer clic constantemente en su pico de píxeles! Pero al mismo tiempo, nos acercamos mucho más a su cabeza.

Etapa 7: ajusta las cámaras



En la última etapa, volvamos a mi cámara principal y configurémosla para que veamos lo mismo antes. Aquí puede aumentar el tamaño de la textura de renderizado para que los píxeles se vuelvan un poco más pequeños, o reducirlo, de modo que solo quepan 7 píxeles en la pantalla. Es hora de experimentar, encuentre lo que más le convenga personalmente.

Bonificación: asegúrese de que las texturas no sean borrosas



Como hemos visto, la textura del modelo (el gran ojo de Oscar) ha sido borrosa todo este tiempo. Esto sucedió porque al importar texturas en Unity, se seleccionan parámetros estándar para generar texturas mip y una escala suave. Pero no necesitamos esto. Por lo tanto, al importar texturas, debe deshabilitar Generar mapas Mip y seleccionar el modo Punto para el Modo de filtro .

Source: https://habr.com/ru/post/465479/


All Articles