Tengo una tarea pendiente para la universidad, y mi tarea es discutir las texturas utilizadas en los videojuegos y cómo han evolucionado.
Mi pregunta principal es, ¿cuál es la diferencia fundamental entre usar un sprite o usar otros métodos de textura?
Después de haber investigado un poco, me parece inclinado a que Sprites almacene imágenes en un solo archivo, y pueda usarse para animaciones, etc. y se usara comúnmente con videojuegos más antiguos, generalmente usando sprites como todos sus elementos visuales del juego. Ahora, con los juegos modernos, creo que los sprites tienden a usarse menos a medida que avanza la tecnología y otras texturas están disponibles, como el mapeo de relieve. Aunque los sprites todavía se usan hoy para acomodar características como una barra de salud o texturas de larga distancia.
Pero, ¿cuáles son las principales ventajas de usar texturas sobre los sprites?
fuente
Respuestas:
Al final del día, los sprites y las texturas son solo imágenes, bloques de datos de color de trama (aunque a veces empujamos un poco los límites para ponerles datos que no sean de imagen). La distinción está en gran medida en cómo los usamos.
Por lo general, llamamos a una imagen (o una parte de una imagen que contiene muchas piezas separadas) un "sprite" si su propósito de representación se debe dibujar directamente a la cuadrícula 2D de la pantalla, sin distorsión de perspectiva. Entonces, lo que ves en el juego en ejecución es básicamente lo que ves en el archivo de imagen en sí mismo (aparte del teñido de color / intercambio de paleta / efectos de transparencia). Esto se aplica a los mosaicos de fondo y personajes / objetos interactivos en juegos 2D, tarjetas de "cartelera" como partículas y estilos más antiguos de representación de árboles y arbustos, y también a los elementos e iconos de la interfaz de usuario en juegos 3D.
Por el contrario, si estamos usando una imagen para proporcionar detalles de superficie para los polígonos de un objeto 3D que se pueden dibujar en perspectiva, generalmente llamamos a esa imagen una "textura". Ese nombre se ha transferido a otros usos de los datos de imagen para modular la representación de otra cosa, incluso si ya no se trata de la textura en el sentido que podría sentir con la punta de los dedos: cosas como reflejos, mapas de distorsión, superposiciones, máscaras o cualquier otro. El uso de uso general de imágenes que no sentimos como nombrar más específicamente tiende a agruparse bajo "textura" en nuestra nomenclatura suelta.
Eso hace que los límites entre los dos sean difusos y no particularmente estrictos. Si tengo una imagen que contiene una secuencia de columnas de fuego y humo para usar en el dibujo de partículas con carteles para un efecto de explosión, podría llamarlo indistintamente una "hoja de sprites" o una "textura de flipbook". O si tengo una imagen de conjunto de mosaicos que comprende todos los mosaicos de fondo para un juego en 2D, podría llamarlo hoy un "atlas de texturas", por analogía con las texturas de atlas desarrolladas para juegos en 3D, a pesar de que sus datos y uso en mi juego en 2D son indistinguibles de lo que alguien más llamaría una hoja de sprites. Si tengo un rectángulo de geometría cuyo propósito es presentar una sola imagen en la pantalla, podría llamarlo un "quad texturizado" o un "sprite" dependiendo de lo que quiero enfatizar sobre su uso.
(Tenga en cuenta aquí en este último ejemplo que "sprite" representa tanto el segmento de imagen de origen en nuestros activos de juego como la instancia de una entidad de juego renderizada que usa este segmento de imagen; otra forma en que usamos esta terminología de manera un poco inconsistente)
Encontrarás que algunos motores y bibliotecas codifican esta distinción al representar la intención en su propia nomenclatura. Por ejemplo, en Unity, puede optar por importar un recurso de imagen como un "Sprite"; esto permite un conjunto adicional de opciones que comúnmente se desean para las imágenes de la interfaz de usuario o los activos del juego 2D, como el corte y empaque de hojas de sprites, y la capacidad de referenciar partes de la imagen como entidades discretas en su escena y configuración de objetos. En estos casos, "Sprite" a menudo significa "una imagen (textura) más metadatos ", pero sigue siendo igual que las texturas ordinarias debajo del capó. El empaque adicional es una conveniencia, por lo que no necesitamos microgestión de compensaciones UV y similares en todos los lugares donde queremos usar la imagen;
fuente
Un sprite es un relicto de la historia de los juegos de computadora. Piensa en Ataris de 8 bits alrededor de ca. 1980. Una pequeña imagen, generalmente con una máscara de bits de cobertura (o un color "transparente" especial) que tiene una posición en la pantalla y se combina en la pantalla de alguna manera particular. Con agujeros donde haya "agujeros" en el sprite, según el mapa de cobertura. Por lo general, de una manera "simplemente funciona", y de una manera que permite fácilmente la ilusión de cosas que se mueven, generalmente al guardar y restaurar los píxeles sobrescritos de la pantalla original.
Solía ser que los sprites eran una característica de hardware en las computadoras, solía ser que podías dibujarlos / dibujarlos con el contenido de la pantalla guardado automáticamente, solía ser que solo podías tener un número muy limitado de ellos (y no se superponían, ¡sí!) , y solía ser que son bastante pequeños (como 16x16) y limitados.
El cursor del mouse es lo que más se acerca a un sprite hoy en día (y solía ser que era un sprite real en algunos sistemas hasta hace unos 10-15 años).
Hoy en día, tal cosa no existe realmente, pero la palabra permanece. Un sprite es básicamente una pequeña imagen 2D que dibujas (compuesta) en alguna parte. Por lo general, dibujando un pequeño quad con textura.
Una textura, por otro lado, es el concepto de una imagen legible utilizada en API de gráficos algo más modernas. O, más precisamente, una región de memoria ("búfer" en términos de API modernas) con algunos datos adicionales asociados, como el tamaño, que se pueden muestrear de alguna manera. Por lo general, pero no necesariamente por un sombreador que se ejecuta en una unidad de procesamiento de gráficos. Usualmente, pero no necesariamente, con coordenadas normalizadas, y usualmente pero no necesariamente con filtrado (y mipmapping, y algún modo de borde particular, y, y, y ...).
Por lo tanto, una textura puede ser la fuente de los datos que utiliza para dibujar un sprite.
fuente
A00D
/AOOC
opcode eran ciertamente del tipo de modificación del framebuffer draw / undraw. BOB, sí, eso también existía, cosa típica de Amiga. Eso fue lo más parecido a una textura actual, supongo (cualquier tamaño, subir al procesador de gráficos una vez, dibujar muchas veces).Es una especie de comparación de manzanas y naranjas. Una textura es solo una imagen, mientras que un sprite es una imagen y cómo se usa.
Todavía usamos sprites para juegos en 2D, y aparecen en juegos en 3D con efectos de partículas. Hoy en día, los sprites generalmente se refieren a un cierto tipo de quad con textura, o (rara vez, creo) un solo triángulo. Incluso los elementos de la interfaz de usuario a menudo son quads texturizados, lo que yo llamaría sprites.
Solía ser el caso de que los sprites se precargaban en la memoria y se borraban (byte por byte mem-copiado) a puntos en la pantalla (literalmente, memoria de pantalla), como sellos. En cierto modo, todavía hacemos eso. Para las animaciones de sprites, a menudo modificamos las coordenadas de muestra de la textura de origen para copiar segmentos de texturas que se renderizarán en quads. Los efectos de sombreado, como el mapeo de relieve, toman muestras de las texturas de la misma manera y, por lo tanto, todavía son utilizables para, por ejemplo, los efectos de brillo en los sprites.
Más particular a los juegos 2D, es una opción estilística. Uno podría, por ejemplo, componer personajes dibujados a mano o pintados en un juego usando sprites. Los juegos de South Park serían un ejemplo de eso, técnicamente.
Por lo tanto, no puedes usar solo una textura en lugar de un sprite.
fuente
Aquí hay una respuesta simple y corta. Por lo general, pienso en el sprite como el objeto completo junto con las funciones y texturas que se le han aplicado. En cuanto a la textura, lo considero una imagen que podría aplicarse a algo.
fuente