Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Cuando ocupa menos un png?

Iniciado por Josepho, 12 de Julio de 2006, 04:19:21 AM

« anterior - próximo »

donald

Un png a 24 bits, puede comprimir una barbaridad con el pngcrush...salvar el 40% en algunos casos, no es desdeñable...en desarrollos pc, quiero decir.En móviles, ya sabeis que saques los ks que saques (pero se pueden ganar muchos, depende del caso) que ganan puede ser que te lo acepte o no la operadora ;)
Me paso por aquí de cuando en cuando (1 vez cada 3 o 4 meses) ...así que si no respondo a algo no es por antipático. ;) Posteo, y me acuerdo del foro tres meses después... ;)    :-S

CoLSoN2

Aunque ya le dije esto a Josepho por MSN, lo pongo aquí por si alguien tiene algo que decir.

@Josepho: si lo que quieres es tener la mayor calidad de imagen y a la vez que el instalador ocupe lo mínimo (no así el espacio en disco una vez instalado), te recomiendo que utilices un formato de imagen sin compresión. Una opción sería un BMP para el RGB y otro en escala de grises para el alfa (estilo PopCap Framework), pero esto es más coñazo y yo recomiendo TGA sin compresión.

Esto hace que el espacio en disco una vez instalado sea mayor, pero un programa de creación de instaladores tipo Inno Setup, para comprimir realmente bien (usa LZMA que va de coña aunque tarda lo suyo y chupa mucha RAM al crearlo) necesita datos no comprimidos. Usa BMP, TGA, WAV, etc donde puedas. Por ejemplo, para samples usa WAV, mientras para música utiliza mejor OGG que aunque lleve compresión tiene la ventaja de que luego lo cargas como un stream en el juego y no te ocupará mucha memoria. Sin embargo las imágenes no proporcionan este beneficio y no vale la pena.

Yo recuerdo que pasando todas las imágenes del Cursed Wheel, que no tenía muchas, de PNG a TGA sin compresión, el instalador bajó de 11 MB a 8, mientras que el tamaño sin compresión aumentaba bastante.
Manuel F. Lara
Descargar juegos indie  - blog sobre juegos indie y casual
El Desarrollo Personal.com  - blog sobre productividad, motivación y espíritu emprendedor

donald

yo creí que él estaba obligado de algún modo a usar PNG.

Sí, eso tiene mucho sentido.

Aunque...depende...quien sabe ;) (no he hecho una comparación con imagenes RGB y png con pngcrush)

En cualquier caso, lo del instalador comprimiendo mucho, es lo menos engorroso, y cada ganancia de tu tiempo cuenta :)

De todos modos, igual es también bueno porque no sé si es perceptible para un Pc, pero supuestamente, el PNG tiene que descomprimir al abrirse...no tengo números al respecto...

Yo he usado las 3 técnicas , bmp con grises, el transparency del png, y el tga con alpha channel. Por cierto, es más enrevesado, pero el Gimp lo hace correctamente.

Por cierto, el 7-zip comprime muchísimo.
Me paso por aquí de cuando en cuando (1 vez cada 3 o 4 meses) ...así que si no respondo a algo no es por antipático. ;) Posteo, y me acuerdo del foro tres meses después... ;)    :-S

senior wapo

Teniamos un hilo sobre eso hace unos meses, con pruebas y medidas y tal. Lástima que no funcione la herramienta de búsqueda del foro.

Ratifico lo que ha dicho Colsón. PNG internamente usa el algoritmo de compresión deflate (el de los .ZIP) que es inferior al LZMA que puedes usar en un instalador (el SDK LZMA es libre y puedes hacerte tu formato de archivo empaquetado con LZMA para el juego en lugar de depender del instalador).

Solo añadir que PNG es más que el compresor, ya que el formato internamente tiene filtros y reordenamientos de los pixeles previos a la compresión. Esto hace que comprima más en ciertos casos debido a que técnicamente ya no está comprimiendo la misma secuencia de bytes.

Para usarlo en BlitzMax, pues eso, TGAs y tirar del instalador, pero para el que programa en C++ y no necesita fidelidad 100%  sigo defendiendo descomponer la imagen en 2: una RGB en JPEG y otra del ALPHA en RAW con compresión LZMA. EL programador que las combine en memoria.

Dado que el alpha se comprime sin perdida, al aplicarlo en pantalla enmascara los posibles defectos en el sprite que pueden dar los bordes duros en JPEG. Hablo de usar realmente los 32 bits de color, no de cartoon, claro.

Josepho

Un problema de los TGA no podria ser que luego chupara mucho mas memoria de video y bajasen los fps del juego? No stoy muy al dia en esto por eso pregunto...
Questtracers.com La web de los creadores de Kukoo Kitchen y Easter Avenger!
http://www.questtracers.com

Sepho-blog >Mi blog personal !
http://sepho.blogspot.com

ethernet

Independientemente del formato que uses de compresión, una ves los cargues para mostrarlos ocuparán lo mismo en memoria (salvo que uses compresión de texturas en la gráfica).

senior wapo

Cita de: "ethernet"Independientemente del formato que uses de compresión, una ves los cargues para mostrarlos ocuparán lo mismo en memoria (salvo que uses compresión de texturas en la gráfica).

¿ Las texturas permanecen comprimidas en memoria de video ? Pensaba que solo se comprimían para reducir consumo de ancho de banda al subirlas a la tarjeta, pero que la grafica las desempaquetaba en memoria de video.

Me encantaría ver algún link que lo corrobore, ya que encaja con el hecho de que para render target no te valga usar una textura creada de forma normal (aunque coincida en profundidad de color).

Esto ya es offtopic para general grafistas, que no nos coma la yakuza :P

ethernet

Cita de: "senior wapo"
¿ Las texturas permanecen comprimidas en memoria de video ? Pensaba que solo se comprimían para reducir consumo de ancho de banda al subirlas a la tarjeta, pero que la grafica las desempaquetaba en memoria de video.

Me encantaría ver algún link que lo corrobore, ya que encaja con el hecho de que para render target no te valga usar una textura creada de forma normal (aunque coincida en profundidad de color).

Esto ya es offtopic para general grafistas, que no nos coma la yakuza :P

No lo sé, lo he asumido y la verdad es que no sé porqué. En http://oss.sgi.com/projects/ogl-sample/registry/ARB/texture_compression.txt
pone : "Compressing texture images can reduce texture memory utilization and improve performance when rendering textured primitives", lo cual parece que viene a decir que permanecen comprimidas.

También si miras la página de la wikipedia ( http://en.wikipedia.org/wiki/S3_Texture_Compression ) pone que provee acceso rápido a los pixels, lo cual tb apunta a que permanecen comprimidas, aunque, cuando he dicho eso lo he dicho sin pensar demasiado.

Josepho

Poseso que si uso TGA usara mas memoria de video no? Con lo cual menos compatibilidad con tarjetas viejas no? O igual es que no lo he entendido bien..
Questtracers.com La web de los creadores de Kukoo Kitchen y Easter Avenger!
http://www.questtracers.com

Sepho-blog >Mi blog personal !
http://sepho.blogspot.com

ethernet

Cita de: "Josepho"Poseso que si uso TGA usara mas memoria de video no? Con lo cual menos compatibilidad con tarjetas viejas no? O igual es que no lo he entendido bien..

En la práctica, da igual el formato de fichero que tengas en disco, cuando las cargues en memoria van a ocupar lo mismo.

fiero

Cita de: "Josepho"Poseso que si uso TGA usara mas memoria de video no? Con lo cual menos compatibilidad con tarjetas viejas no? O igual es que no lo he entendido bien..

No, una vez has cargado la imagen en memoria da igual BMP, PNG, TGA, JPG o lo que quieras. Eso sólo son formatos para guardar la imagen en un fichero, una vez la has cargado en memoria RAM, la imagen ocupará ancho*alto*bytesPorPixel = bytes totales, da lo mismo en qué formato estuviera almacenada.

Para ocupar menos RAM se puede variar el numero de bytesPorPixel al almacenarla en RAM, es decir, 24, 16 ó 8 bits. O también se puede utilizar compresión de texturas, pero eso sólo aplicable a gráficos 3D y no compatible con todas las tarjetas.

un saludo
www.videopanoramas.com Videopanoramas 3D player

seryu

Que yo sepa, permanecen siempre comprimidas, al menos en S3TC y el resto de DXT, que nunca sabe uno cuando salen tecnicas nuevas...

Lo mejor en pc, tal como comenta el senior wapo, es hacerse un formato propio, eso si te lo quieres/puedes permitir en tiempo.

Yo no soy muy amigo del jpeg pero sabiendo ajustar la compresion se puede salvar mucho disco.

Loover

Retomando este post antiguo...

El mejor parece ser PNGOUT, programado por el chaval que con 19 años hizo el Duke Nukem 3D Jejeeje. Gana a sus competidores más cercanos, como OptiPNG, PNGCrush y otros que habeis comentados.

http://www.codinghorror.com/blog/archives/000810.html

Por cierto Josepho, ¿cuál era ese formato rarillo-png que elegiste al final que me comentaste hace tiempo?
IndieLib Libreria 2.5d utilizando aceleración por hardware para la programación de juegos 2d.
Indie Rover The monkeys are reading!






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.