oestrimnio escribió:@cuervoxx Gracias por buscarlo.
sampler feedback streaming le llaman
Copiado de por ahí:
Siguiendo con el ejemplo de la Xbox Series X, si la velocidad de carga de texturas tras la descompresión es de 3,8 GB/s esto permitiría cargar 64 MB por cuadro a 60 FPS; esto es lo suficientemente rápido para cargar 1000 texturas por cada cuadro, el equivalente a una única textura de 4096 x 4096.Edito: No estoy seguro de haberlo entendido bien. Dicen que la XSX acelera la carga de texturas evitando leer del SSD aquellas que ya están en la memoria y no se que más leches, que si duplicar y triplicar el rendimiento... mi nivel no alcanza a entender mucho más..
Si hay un experto en la sala que nos quiera arrojar alguna luz[angelito]
Tiene sentido. Intentaré exponer lo poco que yo sé y puedo deducir:
Una textura de 4096x4096 píxeles es suficiente para texturizar toda una escena 4K. Para poder comparar, The Witcher 3 usa texturas de 2048x2048, con lo que hablaríamos de una definición 4 veces mayor.
Si buscas información sobre las megatexturas (a partir de ID Tech 5) y/o el Virtual Texturing (John Carmack ya hablaba de Virtual Texturing hace 20 años, como también hablaba de virtualizar la geometría, lo que hará Nanite), te darás cuenta de que la nueva tecnología de Microsoft, SFS, es precisamente eso.
Te preguntarás.............¿con una sola textura es suficiente para toda una escena? ¿No sería toda igual? Efectivamente, lo sería, por eso habla de 1000
tiles de texturas. Un
tile es una porción de 128x128 pixeles de esa textura completa. Ahora toca enebrar:
- Cada texel (un pixel pero referente a texturas) ocupa 4 bytes.
- Un
tile de 128x128 ocupará 64 KB.
- ¿Cuántos de esos
tiles caben en una textura (atlas de texturas más bien) de 4096x4096? 1024.
- ¿Cuánto ocupará ese atlas de texturas? 64 MB.
- ¿Y qué tasa de transferencia es necesaria para tener ese atlas cada frame en un juego a 60 fps? 3,84 GB/s una vez descomprimidas las texturas. Como el BCPack comprime las texturas a la mitad, un SSD de 1,92 GB/s es suficiente para texturizar directamente desde allí.
EDITO: lo que harás es formar "una textura" de 4096x4096 con 1024
tiles 128x128. A esta "textura" lo llamarás atlas de texturas.
En cuanto a lo de duplicar o triplicar el rendimiento, no es que de repente el SSD es como si tuviera un tasa de transferencia de 9,6 ó 14,4 GB/s. Se refiere a que la técnica de Virtual Texturing aka SFS sólo transmite la información que la GPU requiere en ese momento, al contrario que ahora, que tienes texturas cargadas en memoria que no se van a utilizar. Es un gasto inútil, como lo es transferir desde el HDD 1,5 GB de datos cada 30 segundos cuando sólo vas a usar la mitad en el mejor de los casos.
Calcula tú el ahorro que significará el SFS. Ahora mismo no es raro que un juego tenga 3-4 GB de texturas cargadas en memoria, porque el HDD es tan lento que tarda 30 segundos en llevar a memoria 1,5 GB de texturas nuevas. Con un SSD de 1,92 GB/s, sólo se cargará en memoria el atlas de texturas, 64 míseros MB. Por supuesto, hablando de texturas 4K, querremos ver texturas 8K, y las veremos claro, que tienen 13,5 GB y si no vas cargar texturas..........¿qué vas a cargar? ¿16.000 millones de polígonos?