2016-06-21 1 views
0

Je veux ajouter une simple boîte noire (comme ceci: effect) sur une texture (ID3D11ShaderResourceView), y at-il un moyen simple de le faire en DX11? Je ne veux pas écrire une ombre pour le faire.DX11 ajouter une simple boîte noire sur une texture

+0

Si vous souhaitez une bordure d'un pixel, tracez simplement 4 lignes sur l'image. Voir [DirectX Tool Kit] (https://github.com/Microsoft/DirectXTK/wiki/Simple-rendering) '' PrimitiveBatch'' –

Répondre

0

Eh bien, ce que vous essayez de faire, c'est "initialiser la texture par programme". Les textures de D3D POV ne sont rien de plus que des morceaux de mémoire avec une mise en page clairement définie. Normalement, vous créez une ressource de texture, lisez des données à partir d'un fichier de texture (comme * .BMP par exemple), placez les données dans la texture et ensuite l'alimentez dans le pipeline pour l'échantillonnage.

Dans votre cas, si, vous avez besoin d'une étape supplémentaire:

  1. Créer des ressources de texture utilisant D3D11_USAGE_DEFAULT ou drapeau D3D11_USAGE_DYNAMIC - donc vous pouvez y accéder à partir de la CPU
  2. Lire la carte de la couleur à votre texture
  3. en fonction du type choisi, soit ajouter vos données aux données initiales ou Carte/Unmap et ajoutez vos données (par vos données, je veux dire écraser chaque bord de l'image avec la couleur noire)

Cela peut également être fait pour générer des textures, comme par exemple des damiers ou des nuages.

Toutes les informations dont vous pouvez avoir besoin peuvent être trouvées here.