¿Es el blanco el mejor color base para comenzar al planear sombrear sprites dentro de Unity?

10

Estoy buscando la creación de prototipos de un juego en Unity que consistirá en sprites / azulejos cuadrados sólidos. Me imagino que puedo representar diferentes tipos de objetos con diferentes colores para cada una de las fichas del juego.

Me imagino que puedo importar un solo sprite cuadrado y sombrearlo adecuadamente en Unity en lugar de los cuadrados importados de muchos colores diferentes.

Mi experiencia con el ajuste del tono y la saturación en Photoshop muestra que el blanco no es un color fácil de cambiar, ya que las cosas blancas a menudo permanecen blancas. Mis pruebas en Unity muestran que puedo cambiar el "color" de un sprite a cualquier otro que no sea blanco y el sprite aparentemente está sombreado de manera apropiada, a pesar de lo que hubiera pensado dada mi experiencia con Photoshop.

Dado que los objetos blancos parecen adoptar el sombreado de color apropiado cuando se cambian dentro de Unity, mi instinto me dice que este es el mejor color base para empezar, lo que significa que puedo importar un solo sprite cuadrado blanco y simplemente ajustar el color para representar diferentes objetos y estados de objeto.

¿Es un sprite blanco en realidad el mejor sprite de color para empezar y por qué algo como esto funciona en Unity en lugar de ajustar el tono y la saturación en Photoshop?

ingrese la descripción de la imagen aquí

SpartanDonut
fuente
Primero, defina "mejor".
Krythic

Respuestas:

13

El blanco es el mejor color base para una verdadera representación. También mantener su escala de grises de sprite puede hacer algunos ajustes de color fáciles para los equipos, etc.

Unity aplica un Multiplymodo de fusión a la textura y el color del sprite.

El tipo de color de Unity varía de 0 a 1 inclusive.

Color(1, 1, 1, 1) . Blanco es igual a .

Sabiendo que a 1veces todo es en sí mismo.

Si la escala de grises texturese combina con el Colorcampo Sprite Renderer , cada píxel es él mismo. Cambiar este campo simplemente multiplicará cada valor uniforme de escala de grises por cada componente del color.

Tintando un sprite


Puedes jugar con el modo de mezcla Multiplicar en tu editor de imágenes favorito como Photoshop o GIMP.

Configuración de Photoshop

MLM
fuente
4

Sprites-Additive.shader - GitHub Gist

Los colores de la unidad tienen 4 valores flotantes típicos de muchos formatos de color RGBA, correspondientes a los valores de color porcentuales individuales Rojo, Verde, Azul y el canal de transparencia Alfa.

Además, como se mencionó anteriormente, el "Tinte" predeterminado aplicado por Unity es un sombreador multiplicativo que Photoshop llama a este efecto "Multiplicar" y el proceso literalmente multiplica los valores de color en los píxeles de su sprite con el valor de color seleccionado.

El problema con esto es que un sombreador matemático de color multiplicativo SIEMPRE producirá el mismo tono (si "multiplica" por blanco) o un color más oscuro si multiplica por cualquier otra cosa. Encontré la situación en la que quería exactamente el efecto contrario en una situación de tipo herrería. El metal calentado no debe multiplicarse por amarillo para producir un tono más oscuro:

sombreador multiplicativo por amarillo

En cambio, reescribí el sombreador multiplicativo predeterminado de Unity para que sea aditivo. Los resultados fueron más similares a lo que estaba buscando:

sombreador aditivo

Proporcionaré una idea general al reescrito Sprites-Additive.shader si alguien está interesado.

Aquí hay una buena referencia sobre terminología y modos de color: http://www.northlite.net/ps/blend.htm

Joe
fuente
Un usuario sin suficiente reputación para comentar ha expresado interés en ver el código del sombreador para este efecto. ¿Todavía lo tienes disponible para compartir?
DMGregory
1
Hola, no lo tengo disponible ahora, pero lo desenterraré y obtendré un enlace lo antes posible. Esta noche si es posible.
Joe
2
Retiro eso, lo encontré relativamente fácil y lo agregué a un Gist en mi GitHub. La principal diferencia entre un sombreador aditivo y multiplicativo es la transparencia. En el sombreador aditivo establecí un límite de transparencia del 10% para mantener el alfa relativo de píxeles con valores alfa bajos. No tiene que preocuparse por este tipo de cosas en un sombreador multiplicativo debido a la naturaleza de esa matemática.
Joe