9.2. Creant textures (Blank Texture)

Per a crear una textura blanca (cap imatge ni color associat) en DirectX11 s’usa la funció CreateTexture2D la qual demana dos variables i en retorna una, el primer valor és una variable tipus D3D11_TEXTURE2D_DESC la qual té la següent estructura:

On:

Width és l’amplada de la textura, els valors de la qual oscil·len entre 1 i 16384 (el valor ha de ser una potència de 2).

Height és l’alçada de la textura, els seus valors també oscil·len entre 1 i 16384.

MipLevels és el nombre de nivells de la textura. Aquest valor serà 1 si la textura és multisampled (http://en.wikipedia.org/wiki/Multisample_anti-aliasing) o valdrà 0 si es vol generar un conjunt complet de subtextures.

ArraySize és el nombre de textures que volem al nostre array, els seus valor van des del 1 fins el 2048.

Format és el format de la textura (Veure per a més informació: http://msdn.microsoft.com/en-us/library/windows/desktop/bb173059(v=vs.85).aspx ). Si no volem cap format en especial usarem el DXGI_FORMAT_R8G8B8A8_UNORM.

SampleDesc és una estructura que especifica els paràmetres del mostreig múltiple de la textura (aquesta estructura està formada per dos enters (Count i Quality), és tracta d’un camp OPCIONAL, per a més informació sobre aquesta estructura: http://msdn.microsoft.com/en-us/library/windows/desktop/bb173072(v=vs.85).aspx ).
Usage és un valor que especifica com s’escriurà i llegirà la l’estructura a memòria, normalment el seu valor és D3D11_USAGE_DEFAULT, (per a més informació visitar: http://msdn.microsoft.com/en-us/library/windows/desktop/ff476259(v=vs.85).aspx ).

BindFlags són canvis d’estat per a unir-se amb el pipeline de DirectX11, si no en volem cap en especial, per defecte usarem el D3D11_BIND_SHADER_RESOURCE. Tots els seus valors es poden trobar a la següent direcció: http://msdn.microsoft.com/en-us/library/windows/desktop/ff476085(v=vs.85).aspx .

CPUAccessFlags són canvis d’estat per especificar els tipus d’accés a la CPU (Usar el valor 0 si no es requereix la CPU) , si no en volem cap en especial, per defecte usarem el D3D11_CPU_ACCESS_WRITE. Tots els seus valors es poden trobar en la següent direcció http://msdn.microsoft.com/en-us/library/windows/desktop/ff476106(v=vs.85).aspx .

MiscFlags són canvis d’estat que permeten activar els recursos menys comuns. Normalment aquest valor valdrà 0. Per a més informació visitar: http://msdn.microsoft.com/en-us/library/windows/desktop/ff476203(v=vs.85).aspx

La segona variable que demana la funció CreateTexture2D és de tipus D3D11_SUBRESOURCE_DATA, la qual ens ajuda a afegir informació extra a l’hora d’inicialitzar un sub-recurs (en aquest cas la creació d’una textura). Normalment aquesta variable valdrà NULL. Finalment, la tercera variable serà un punter a un buffer de memòria que conté la textura creada. A continuació es mostrà l’estructura de la funció CreateTexture2D que crea la textura:


Finalment veiem un petit exemple on es mostra la creació d’una textura de mida 256x256 texels:

No hay comentarios:

Publicar un comentario