Archivos .DDS, como se puede evitar la degradación de las texturas?

Buenas, el que ande con edición de texturas en este formato, sabe que algunas compresiones como DXT5, cuando editas y guardas, se va degradando, y cuantas más veces abras, edites y guardes la textura, más degradación va adquiriendo, evidentemente sin una compresión esto no pasa (creo), pero lo normal en muchos juegos es que se usen este tipo de compresiones, DXT5, DXT3...

Se puede evitar esta degradación de alguna manera, os pongo en situación.

Estoy trabajando en una textura, de hecho son varias en un archivo, para que es o el juego es irrelevante, el tema es que tengo que guardar en DXT5 (alfa interpolado) sin generar mapa de bits, el hecho de guardar y en otro momento abrir para seguir editando, ya hace que se degrade por haber guardado.

Entonces la pregunta, porque yo en esto no soy ningún experto ni mucho menos, y si guardo la textura (Photoshop) en otro formato como "PSD"?, evitaré el degradado, podré seguir trabajando tranquilamente y guardar las veces que haga falta, y cuando tenga el resultado final, guardar desde ese archivo PSD al formato .DDS en DXT5?

Digo PSD porque es lo típico que veo de formato en que se guardan texturas para trabajar, si hay mejor opción o lo que sea o cualquier consejo que me sirva para evitar el degradado, si es que se puede, pues bienvenido sea.

Gracias locos/as [beer]

Edito: Mm, tendría que haber puesto en el título del hilo "Nintendo y Game pass son una puta mierda" para que me hicieras casito?? [qmparto] [qmparto]
Respuesta sacada de chatgpt:

¡Hola! Guardar tus texturas en formato PSD (Photoshop) es una buena práctica para evitar la degradación al editar repetidamente. El formato PSD conserva la información sin pérdida de calidad. Puedes trabajar cómodamente, realizar todas las ediciones necesarias y, cuando estés listo, exportar al formato DDS en DXT5.

Este enfoque debería ayudarte a mantener la calidad de tus texturas sin experimentar la degradación que mencionas al guardar directamente en DXT5 varias veces. ¡Buena suerte con tu proyecto de texturas!

Si no te responden es por que nadien sabe.
@doblete Si, estoy usando archivo .PSD para hacer las ediciones y luego guardar el trabajo en .DDS, basta con guardar una vez en .DDS para ver que por culpa de la compresión de DXT5 (o cualquier otra compresión) se degrade la imagen, este ejemplo deja claro de a que tipo de degradación estamos hablando -> https://imgsli.com/MjIwNTQz

Eso es un icono de un archivo de muchos, y ya ves como jode la imagen, en el juego, ese cambio de color de varios de sus píxeles es muy notable, ya no es un recuadro azul del pequeño icono azul, es mitad azul mitad otro color, más verdoso, y eso se nota en el juego.

Pero bueno, supongo que tendré que buscar alguna solución que pase por cambiar esos iconos a algo que no se degrade así no se xD
Usa cualquier formato que utilice compresión sin pérdidas (como PNG, o PSD mismamente) mientras estés trabajando en la textura, porque es como dices, cada vez que se guarda en DXT5 se pierde calidad ya que es un formato de compresión con pérdidas. Lo mismo pasa con JPEG, por ejemplo.

Utiliza solo DXT5 para la textura final que vayas a usar en producción. Y si puedes mantener el original, tanto mejor. Por lo que veo son formatos del año de la pera (basado en código de finales de los 70s): https://en.wikipedia.org/wiki/S3_Texture_Compression

Saludos
Pollonidas escribió:Usa cualquier formato que utilice compresión sin pérdidas (como PNG, o PSD mismamente) mientras estés trabajando en la textura, porque es como dices, cada vez que se guarda en DXT5 se pierde calidad ya que es un formato de compresión con pérdidas. Lo mismo pasa con JPEG, por ejemplo.

Utiliza solo DXT5 para la textura final que vayas a usar en producción. Y si puedes mantener el original, tanto mejor. Por lo que veo son formatos del año de la pera (basado en código de finales de los 70s): https://en.wikipedia.org/wiki/S3_Texture_Compression

Saludos

Un formato viejo que se sigue usando habitualmente, mismamente Starfield lo está usando (a quien le extraña eso), como otros juegos anteriores de la compañía, lo que pasa es que esos juegos pueden trabajar con texturas con compresiones sin apenas perdidas como "BC7", guardar así es guardar con una compresión con tan poca perdida que es difícil que la percibas si es que lo haces, pero cuando tratamos con juegos con motores bastante mierder, como es mi caso, que ando "editando" texturas para Stalker CoP, es otro cantar, tienes que guardar en DDS con compresión DXT5 para unas texturas, DXT1 o 3 para otras,

En el caso que me ocupa tengo que guardar por cojones en DXT5 para la textura que estoy usando o el juego no va interpretar esa textura, vamos, ni si quiera va cargar (no se molesta ni en darme CTD, directamente es una pantalla negra permanente xD), y DXT5 da una perdida brutal.

Estoy trabajando ahora mismo con la textura en formato .PSD, cualquier cambio que hago guardo en .PSD como copia sin perdidas, luego guardo en DDS otra para usarla, dejando la .PSD como archivo para trabajar, pero basta con "guardar una sola vez" en DDS DXT5 (interpolated alpha) para que de una perdida/degradación de la textura bastante notable, es una textura con "muchos iconos", en algunos no es casi visible la perdida, pero en otros, como en la imagen que pongo comparativa más arriba en IMGSLI, se nota de cojones solo en la textura, ingame se nota igualmente, parte de ese recuadro azul (el iconito pequeño al lado del bote de pirulas) ya ni si quiera es azul, tiene 2 tonos diferentes en algunos píxeles, vamos, una degradación de cojones.

En fin, supongo que es lo que hay, tendré que ingeniármelas de algún mod para hacer que esa degradación no se note mucho, los iconitos azules esos de otro color o que se yo, algo que se note menos [+risas]

Edito: He conseguido "apañarlo un poco", tenía el plugin de Nvidia para archivos DDS para Photoshop desactualizado, al actualizarlo he visto nuevas opciones, una de ellas es "Export premiltiplied alpha", marcando eso, los detalles pequeños que más se degradaban lo hacen mucho menos, y en el juego no se nota apenas, puedo conformarme con eso [+risas]
Hay muchos estándares viejos que se siguen usando por los motivos que sea (no "romper" la compatibilidad con código antiguo, entre otras cosas), pero eso no quita que en este caso particular sea mala idea utilizar ese formato en los pasos intermedios porque tiene compresión con pérdida. Como comento en el anterior post, lo suyo es trabajar en formatos sin pérdidas hasta que llegue el momento de exportar la textura final, y ahí lógicamente tendrá que ser en el formato que te pida el motor gráfico.

El hecho de exportar con premultiplied alpha, incluso si visualmente queda mejor (cosa que es independiente de todo lo demás que se está comentando), no cambia la recomendación anterior, porque sigue habiendo pérdidas en cada guardado.

Saludos
Lo que te han dicho y lo que ya has descubierto tú solo: usa un archivo sin pérdida para hacer las modificaciones y guardar capas (si es que usas, que me da la sensación de que no). Los archivos psd están bien para archivos pequeños y que no sean complejos en cuanto a capas, etc. si eres de los que se preocupan por el tamaño de los archivos, claro. porque los psd a veces ocupan una barbaridad por motivos que a veces no son nada obvios.

Yo trabajo bastante con .dds y uso GIMP que ya viene con su propio exportador para este formato y a mí por lo menos me sobra.

Y lo que te han dicho también por ahí arriba, el alpha, premultiplied o straight no afecta a la compresión, solo a cómo se calcula el alpha de la imagen.
@Pollonidas @doncojon Desde que pregunté en el post inicial ya estoy usando archivos .PSD para trabajar, eso si, no estaba guardando capas, estaba fusionando las capas cuando terminaba de editar, por muy bien que quede el trabajo en PSD, al exportarlo a DDS pues pasa lo que pasa, en el ejemplo (real) que pongo arriba en el enlace de IMGSLI, marcando premultiplied alpha al menos lo suaviza un poco, la perdida va seguir en todo el archivo, pero algunos detalles no se joden tanto usando ese... filtro? ojo que no soy ningún entendido, hago estas cosillas en algunos mods de diferentes juegos por mi cuenta y aprendo en el camino [+risas]

Parece que otras compresiones como BC7, admitidas por otros juegos, no tienen tanta perdida o casi ninguna? pero para el que estoy haciendo un apaño (Stalker CoP), solo admite DXT5 para unas texturas, y DXT1 y 3 para otras, ojo que he probado DDS sin compresión y funciona xD pero el peso del archivo se dispara, y "creo" que también afectaría a la carga del juego? [+risas]

En fin, me jode un poco que hagas una cosa que dejas "perfecta" y que lo joda un poco el formato y compresión de este, pero bueno, es lo que hay, yo más que nada preguntaba por si había alguna solución milagrosa que no conocía para no tener perdidas, ya que no soy un experto como digo, pero va ser que no cuela XD

P.D: Aprovechando que he recalcado que soy bastante novatillo en el tema, entonces por lo que habéis dicho si guardo en PSD puedo "guardar las capas" que haga no? luego a la hora de exportar el archivo a DDS, fusionarlas y exportar la textura final no? es que eso me facilitaría algunas cosillas [fiu]

Gracias locos [beer]
Es que si guardas como raw en un formato con pérdidas es normal que cada vez veas más degradado el resultado, pasa con la imagen y con el audio, por eso existe la compresión sin pérdidas.


Hace no mucho nvidia presentó este paper sobre la compresión de texturas:
https://www.profesionalreview.com/2023/ ... -texturas/

Imagen
8 respuestas