2011-01-02 16 views
0

Ich verwende Direct3D, um 2D-Elemente in einer C++ - Anwendung von mir zu zeichnen, und es wäre nett, wenn ich GUI-Elemente mit abgerundetem Rechteck erstellen könnte, die in der Größe variieren Ich bin mir nicht sicher, wie ich das auf möglichst effiziente Art und Weise machen soll.Zeichnen abgerundetes Rechteck in DirectX/3D für 2D

Ich dachte an den "einfachen" Weg, Bilder von den vier Ecken zu haben und sie dann einfach in die richtigen Positionen zu bringen und den Rest auszufüllen, aber unterschiedliche Radien für die Rechteckecken wären ein definitives Plus und dieses Verfahren eignet sich nicht gut für dieses Feature.

Durch meine Suchen bin ich auf die Begriffe Pixel Shader, Stencil Buffering und HLSL gestoßen, aber ich bin mir nicht sicher, ob diese Begriffe relevant sind und in welche man springen sollte.

Vielen Dank im Voraus,
Jengerer

Antwort

1

Idealerweise erstellen Sie eine 9 Polygone, durch ein Quadrat bis zu teilen. Die 9 Bilder zeichnen dann die Ecken/Seiten/Mitte und Sie können es beliebig skalieren.

Sie müssen wissen, wie man Kartenpolygone zeichnet und texturiert, um dies zu tun, können Sie die Ecken und die Box bei Bedarf skalieren.

+0

Ich möchte den Radius der Ecken variieren können, was mit der vorgeschlagenen Methode nicht möglich ist, es sei denn, ich habe ein separates Eckbild für verschiedene Radien. – Jengerer

+0

können Sie die Ecken und Seiten skalieren, was den Radius ändern würde. Größere Eckenbilder == größere Radien – HaMMeReD

Verwandte Themen