Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





¿es verdad? (tema tamaño texturas)

Iniciado por sms al 04 logaritmo de 22, 05 de Febrero de 2008, 03:48:47 PM

« anterior - próximo »

sms al 04 logaritmo de 22

me han dicho que en los juegos, aunque las texturas esten comprimidas (.dds o el formato que sea) cuando la grafica las carga, en su memoria ocupan lo mismo q un .bmp o similar

¿es verdad esto?

bueno, esa era mi duda tonta gracias y un saludo :oops:

BeRSeRKeR

Si no comprimes la textura en algún formato S3TC (y el hardware lo soporta), el tamaño será el mismo que la textura sin comprimir.

Saludos.
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

tamat

las texturas comprimidas en dds se guardan comprimidas en las tarjetas (al menos en la mayoría de tarjetas que yo he probado), y no solo eso, sino que los accesos de lectura son mucho mas rapidos al no colapsar los buses, lo digo porque hice pruebas y el framerate se incrementaba mucho cuando usaba DDS
Por un stratos menos tenso

Tei

De todos modos un BMP tiene compresión RLE. Asi que un BMP ocupara menos que una imagen "descomprimida".

BeRSeRKeR

Cita de: "Tei"De todos modos un BMP tiene compresión RLE. Asi que un BMP ocupara menos que una imagen "descomprimida".
Pero en memoria de video se almacena descomprimida (que creo que es la duda que tiene sms) salvo que se comprima en algún formato S3TC en tiempo de carga.

Saludos.
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

[EX3]

Cita de: "BeRSeRKeR"Si no comprimes la textura en algún formato S3TC (y el hardware lo soporta), el tamaño será el mismo que la textura sin comprimir.
Cita de: "tamat"Las texturas comprimidas en dds se guardan comprimidas en las tarjetas (al menos en la mayoría de tarjetas que yo he probado), y no solo eso, sino que los accesos de lectura son mucho mas rapidos al no colapsar los buses, lo digo porque hice pruebas y el framerate se incrementaba mucho cuando usaba DDS
Interesante, tomo nota :)

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

sms al 04 logaritmo de 22

o sea, que pasa como me han dicho pero si uso el formato .dds esto no ocurre, ahorrando memoria grafica y mejorando el rendimiento...

¿el formato dds tiene perdida de calidad?

¿hay algo mejor que el dds?

muchas gracias y un saludo

tamat

DDS es un contenedor de distintos formatos, propuestos por distintas compañías, el problema es que no todas las tarjetas soportan todos, así que cuando un formato no es soportado pues se sube descomprimido.

Por otra parte todos los formatos que yo conozco tienen perdida de calidad, de hecho en la web de NVIDIA hay un plugin para photoshop que permite hacer un preview de cada formato.

Pero para mi las dos mejores cualidades de DDS son que permite (no obliga) contener los mipmaps (con lo que las cargas son mucho mas rapidas al no tener que generarlos en ejecucion) y que permite almacenar cubemaps (muy utiles cuando trabajas con shaders).
Por un stratos menos tenso

sms al 04 logaritmo de 22

pero entonces, ¿puedes usar tu propio formato de texturas? o tienes que usar por huevos el .dds si quieres tener esa "compresion" y ahorro de memoria...

madre mia, como se complican xD

gracias y salu2

misscelan

Por ejemplo en OpenGL, una vez cargados los bytes que te de la gana dentro de "datos" (ya sea de un tga, png, jpg, etc...) defines la textura así


glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, ancho, alto, 0, GL_RGB, GL_UNSIGNED_BYTE, datos);


Para pedir a OpenGL que te la comprima al pasarla a su memoria interna sin que tu tengas que hacer otra cosa, bastaría con esto:



glTexImage2D(GL_TEXTURE_2D, 0, GL_COMPRESSED_RGB, ancho, alto, 0, GL_RGB, GL_UNSIGNED_BYTE, datos);


Si no me equivoco pasando GL_COMPRESSED_RGB (u otro como  GL_COMPRESSED_RGBA)  como formato interno, hace que automáticamente te la guarde comprimida en el caso de que tu hardware la soporte.

Espero haberte aclarado algo.

Un saludo

sms al 04 logaritmo de 22

Cita de: "misscelan"Por ejemplo en OpenGL, una vez cargados los bytes que te de la gana dentro de "datos" (ya sea de un tga, png, jpg, etc...) defines la textura así


glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, ancho, alto, 0, GL_RGB, GL_UNSIGNED_BYTE, datos);


Para pedir a OpenGL que te la comprima al pasarla a su memoria interna sin que tu tengas que hacer otra cosa, bastaría con esto:



glTexImage2D(GL_TEXTURE_2D, 0, GL_COMPRESSED_RGB, ancho, alto, 0, GL_RGB, GL_UNSIGNED_BYTE, datos);


Si no me equivoco pasando GL_COMPRESSED_RGB (u otro como  GL_COMPRESSED_RGBA)  como formato interno, hace que automáticamente te la guarde comprimida en el caso de que tu hardware la soporte.

Espero haberte aclarado algo.

Un saludo

joer, si que lo hace facil open gl ¿y todo automático? madre mia, creo q me va a gustar esto de aprender a programar jejeje aunque en el fondo no creo q sea "ala, 2 palabras y arreando!

tamat

se supone que dentro de esa trama de bytes que le pasas a opengl ya hay toda la informacion que necesitas tal como tipo de compresion, tamaño de la imagen,etc. Por eso mola tanto DDS.
Por un stratos menos tenso

misscelan

Poniéndolo como te comenté antes, te convierte "al vuelo" cualquier tipo de textura. Aunque se comenta por ahí que a parte de que puede repercutir en más tiempo de carga, dejar a opengl que haga la compresión por ti, te dará peores resultados de imagen.

Así que prueba ambos métodos "al vuelo" o cargándo unas ya comprimirdas con S3TC DDS y nos comentas.

Un saludo.

sms al 04 logaritmo de 22

Cita de: "misscelan"Poniéndolo como te comenté antes, te convierte "al vuelo" cualquier tipo de textura. Aunque se comenta por ahí que a parte de que puede repercutir en más tiempo de carga, dejar a opengl que haga la compresión por ti, te dará peores resultados de imagen.

Así que prueba ambos métodos "al vuelo" o cargándo unas ya comprimirdas con S3TC DDS y nos comentas.

Un saludo.

de acuerdo, ya hechare mano de esos tutoriales de programar en c xDDD

es q empeze el otro dia y aun voy por el hola mundo y una ventana q te deja sumar :oops:  :oops:

gracias y salu2






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.