Compartir a través de


Regiones de texturas sucias (Direct3D 9)

Las aplicaciones pueden optimizar qué subconjunto de una textura se copia especificando regiones "sucias" en texturas. Solo las regiones marcadas como desfasadas se copian mediante una llamada a IDirect3DDevice9::UpdateTexture. Sin embargo, las regiones desfasadas se pueden expandir para optimizar la alineación. Cuando se crea una textura, toda la textura se considera sucia. Solo las siguientes operaciones afectan al estado sucio de una textura:

Las regiones sucias se establecen en el nivel superior de una textura mipmapped y IDirect3DDevice9::UpdateTexture puede expandir la región sucia hacia abajo de la cadena mip para minimizar el número de bytes copiados para cada subnivel. Tenga en cuenta que las coordenadas de la región sucia de subnivel se redondean hacia fuera, es decir, sus partes fraccionales se redondean hacia el borde más cercano de la textura.

Dado que cada tipo de textura tiene diferentes tipos de regiones sucias, hay métodos en cada tipo de textura. Las texturas 2D usan rectángulo sucio y las texturas de volumen usan cuadros.

Pasar NULL para los parámetros pDirtyRect o pDirtyBox de los métodos anteriores expande la región desfasada para cubrir toda la textura.

Cada método de bloqueo puede tomar D3DLOCK_NO_DIRTY_UPDATE, lo que impide cualquier cambio en el estado sucio de la textura. Para obtener más información, vea bloquear recursos (Direct3D 9).

Cuando hay más información sobre el conjunto verdadero de regiones que se cambian durante una operación de bloqueo, las aplicaciones deben usar D3DLOCK_NO_DIRTY_UPDATE. Tenga en cuenta que un bloqueo o una copia en un subvel de textura solo (es decir, sin bloquear ni copiar en el nivel superior) no actualiza las regiones desfasadas de esa textura. Las aplicaciones asumen la misma responsabilidad de actualizar las regiones desfasadas cuando bloquean niveles inferiores sin bloquear el nivel superior.

conceptos básicos de texturización de