2016-06-21 3 views
0

Ich möchte eine einfache schwarze Box (wie folgt: effect) auf eine Textur (ID3D11ShaderResourceView) hinzufügen, gibt es eine einfache Möglichkeit, es in DX11 zu tun? Ich möchte keinen Schatten schreiben, um es zu tun.DX11 fügen Sie eine einfache schwarze Box auf eine Textur

+0

Wenn Sie einen Rahmen mit einem Pixel wünschen, zeichnen Sie einfach 4 Linien über das Bild. Siehe [DirectX Tool Kit] (https://github.com/Microsoft/DirectXTK/wiki/Simple-rendering) '' PrimitiveBatch'' –

Antwort

0

Nun, was Sie versuchen, ist eigentlich "Textur programmgesteuert initialisieren". Texturen aus D3D POV sind nichts anderes als Erinnerungsstücke mit klar definiertem Layout. Normalerweise erstellt man eine Texturressource, liest Daten aus einer Texturdatei (wie zum Beispiel * .BMP), legt die Daten in die Textur und führt sie dann der Pipeline zum Sampling zu. obwohl

In Ihrem Fall müssen Sie einen zusätzlichen Schritt:

  1. erstellen Textur Ressource entweder D3D11_USAGE_DEFAULT oder D3D11_USAGE_DYNAMIC Flag verwendet - so können Sie es von der CPU zugreifen
  2. Lesen Sie die Farbkarte auf Ihre Textur
  3. Abhängig von der gewählten Art, entweder fügen Sie Ihre Daten an den Originaldaten oder Karte/Unmap und fügen Sie Ihre Daten (durch Ihre Daten meine ich mit schwarzer Farbe jede Kante des Bildes überschreiben)

Dies kann auch getan werden, um Texturen zu erzeugen, wie zum Beispiel Schachbrettmuster oder Wolken.

Alle benötigten Informationen finden Sie unter here.