10-30-2018, 07:15 AM
Hola!
Mis comentarios al respecto:
Imágenes indexadas de menos de 256 colores. Tilengine es render por sofware (como un emulador de consolas o recreativas), así que hay que optimizar las operaciones de CPU. Los formatos de píxel de menos de 8 bits utilizan bitplanes, que cuando están implementados en hardware se hace directamente, pero emularlo en software requiere muchas operaciones que reducirían bastante el rendimiento. El formato que requiere menos operaciones y por tanto es más rápido es el de 8 bpp. Además con él se pueden representar menos colores también. Puedes tener una imagen de 16 colores contenida en una paleta de 256, sin problema. La pérdida de velocidad sería mucho mayor que el ahorro de memoria.
Imágenes de color directo RGBA. Soportarlas requeriría replantear mucho de lo que está hecho. Diseñé Tilengine para que utilizara las técnicas de la era 8/16 bits (mediados 80 - mediados 90), y en estos sistemas el uso de imágenes de color indexado es fundamental, además de que permite una serie de técnicas como animación por ciclo de color o intercambio de paletas sobre un mismo gráfico que no son posibles en las imágenes RGBA. El "pipeline" del motor de render está todo en 8 bits, y sólo se hace la conversión a 32 en el paso final, al volcar en framebuffer. Soportar imágenes de color RGBA requeriría replantear todo el pipeline gráfico, ya que no está pensado para eso. Y además se alejaría de la filosofía de los sistema de color indexado, que es lo que quiero mantener vivo con Tilengine. Así que no hay planes para soportarlas. Tilengine es para pixel art, que consta de baja resolución y pocos colores, por lo que tampoco supone una limitación relevante.
Formato de mapas: utilizo el formato de Tiled porque tanto el editor como el formato en sí me parecen geniales. No obstante, hay funciones en Tilengine para construir recursos en tiempo de ejecución, que son las mismas que utilizan los propios cargadores de formatos estándar. Así que cualquiera puede implementar un cargador para el formato que quiera, el formato de Tiled de serie es una conveniencia, no una exigencia. Podrías proponer y especificar un formato de mapas que te parecería útil implementar?
Mis comentarios al respecto:
Imágenes indexadas de menos de 256 colores. Tilengine es render por sofware (como un emulador de consolas o recreativas), así que hay que optimizar las operaciones de CPU. Los formatos de píxel de menos de 8 bits utilizan bitplanes, que cuando están implementados en hardware se hace directamente, pero emularlo en software requiere muchas operaciones que reducirían bastante el rendimiento. El formato que requiere menos operaciones y por tanto es más rápido es el de 8 bpp. Además con él se pueden representar menos colores también. Puedes tener una imagen de 16 colores contenida en una paleta de 256, sin problema. La pérdida de velocidad sería mucho mayor que el ahorro de memoria.
Imágenes de color directo RGBA. Soportarlas requeriría replantear mucho de lo que está hecho. Diseñé Tilengine para que utilizara las técnicas de la era 8/16 bits (mediados 80 - mediados 90), y en estos sistemas el uso de imágenes de color indexado es fundamental, además de que permite una serie de técnicas como animación por ciclo de color o intercambio de paletas sobre un mismo gráfico que no son posibles en las imágenes RGBA. El "pipeline" del motor de render está todo en 8 bits, y sólo se hace la conversión a 32 en el paso final, al volcar en framebuffer. Soportar imágenes de color RGBA requeriría replantear todo el pipeline gráfico, ya que no está pensado para eso. Y además se alejaría de la filosofía de los sistema de color indexado, que es lo que quiero mantener vivo con Tilengine. Así que no hay planes para soportarlas. Tilengine es para pixel art, que consta de baja resolución y pocos colores, por lo que tampoco supone una limitación relevante.
Formato de mapas: utilizo el formato de Tiled porque tanto el editor como el formato en sí me parecen geniales. No obstante, hay funciones en Tilengine para construir recursos en tiempo de ejecución, que son las mismas que utilizan los propios cargadores de formatos estándar. Así que cualquiera puede implementar un cargador para el formato que quiera, el formato de Tiled de serie es una conveniencia, no una exigencia. Podrías proponer y especificar un formato de mapas que te parecería útil implementar?