Einzelnen Beitrag anzeigen

Benutzerbild von TOC
TOC

Registriert seit: 5. Jan 2005
Ort: Trier
248 Beiträge
 
Delphi 7 Personal
 
#3

Re: Mit DirectX->DrawPrimitive umrandete Flächen zeichnen

  Alt 14. Nov 2009, 16:46
Hi!

Vielen Dank für Deine Antwort und Deine Vorschläge.

Zitat von Medium:
Zwei Dinge fallen mir ein:
1) Über eine Textur, die eben einen blauen Rand und rotes Inneres hat. Nachteile: Die Texcoords könnten evtl. gräßlich werden, und der Rand wächst mit der Fläche eines Dreiecks - ist also u.U. verschieden Dick in ein und dem selben Patch.
Also, die Idee hatte ich im Prinzip auch schon. Aber, mit ner Texture geht es leider nicht. Die Texture-Koords zu berechnen ist nicht das große Problem. Ich habe eine Funktion die ein Rechteck zeichnet, und in dem Rechteck ist ein kleineres Rechteck mit drehbarem Winkel ausgespart, also durchsichtig. Dazu setze ich das große Rechteck aus 4 Rechtecken und, wennn der innere Drehwinkel ungleich 0 ist, zusätzlich 4 Dreiecken zusammen.In dem aktuellen Programm verwende ich diese Funktion und zeichne 6 Quadrate so räumlich versetzt dass ein Würfel entsteht, ja, und die kleineren durchsichtigen Quadrate drehen sich um ihre Mittelachse, und der ganze Würfel dreht sich noch dazu im Raum. Also ich könnte ja eine Texture erzeugen mit einem beispielsweise blauem Rand und einer roten Füllung, nur, ich muss ja auch das kleine ausgesparte Quadrat im inneren Umranden, und das dreht sich um sich selbt- also geht es nicht mit einer Texture...

Zitat von Medium:
2) Mache den Wireframe-Pass mit einem gaaanz leicht "gewachsenem" Patch. Die Normalenvektoren für jeden Vertex hast du ja wahrscheinlich schon, also dann einfach die Vertices um einen Bruchteil ihres Norm. verrücken. Da es ja wirklich nur um ein "Titsch" geht und es ein Wireframe wird ist, ist das sonst dabei teilweise auftretende Problem der Selbstschneidung kaum vorhanden bzw. von Bedeutung. (Nämlich hochstens dort, wo sich das Objekt selbst berührt.)
Ja, habe ich auch schon versucht. Klappt leider ebenfalls nit. Ich habe alle Z-Koordinaten von der Umrandung einfach mal eiskalt um einen Betrag nach vorne geschoben, weil ich hoffte dass sie dann in Z-Richtung über der Grafik zu liegen kommen. Klappt aber nicht, weil: Wenn ich den Z-Unterschied so groß mache, dass die Linien nicht mehr unterbrochen werden, dann sind die Linien dafür aber in der X- und Y-Position versetzt und auch in der Länge vergrößert und decken sich nicht mehr mit der darunterliegenden Grafik...

Echt blöd. Fällt Dir, oder sonst irgend jemandem da draußen, vielleicht noch etwas anderes zur Lösung dieses Problems ein?
Ich freue mich über jeden weiteren Vorschlag und jede weitere Idee!

Grüße von TOC!
Lars Uwe Hohmann
"Wäre die Erde eine Bank, ihr hättet sie längst gerettet!"
(Zitat GreenPeace)
  Mit Zitat antworten Zitat