Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi DirectX, Mehrfarbiges Vertex-Coloring (https://www.delphipraxis.net/37172-directx-mehrfarbiges-vertex-coloring.html)

wolfgangK 1. Jan 2005 21:09


DirectX, Mehrfarbiges Vertex-Coloring
 
Hallo *,

wie kann ich unter Direct3D mehrfarbiges Vertex-Coloring erzeugen?
Ich habe ein Gebirge (mash). Kein Licht. Nur Vertex-Coloring.
Der Boden ist Schwarz, die Gipfel rot. Die Flanken der Berge werden von schwarz bis rot schattiert (Gourot).
Wie kann ich es erreichen, dass die Flanken der Berge von schwarz über blau - grün - gelb - orange bis rot (streifig) schattiert werden? Dabei überziegen diese Farbstreifen das Gebirge wie mit Höhenlinien.

MFG
Wolfgang

Oxmyx 1. Jan 2005 21:18

Re: DirectX, Mehrfarbiges Vertex-Coloring
 
Du weist den Vertizes abhängig von ihrer Höhe eine Farbe zu.

Ein Farbverlauf von blau über türkis, grün, gelb, orange zu rot machst du, mit folgenden Richtwerten:

Blau: r:0 g:0 b:255
Türkis: r:0 g:255 b:255
Grün: r:0 g:255: b:0
Gelb: r:255 g:255: b:0
Rot: r:255 g:0 b:0

Schreib dir einfach eine Funktion, die dir für einen beliebigen Höhenwert die richtige Farbe raussucht.


PS:
Mash = Mesh
Gourot = Gouraud

maximov 2. Jan 2005 14:54

Re: DirectX, Mehrfarbiges Vertex-Coloring
 
Es wäre sinnvoller ein anderes farbsystem zu wählen, zB. HSL. Die höhe des berges wäre dann zB. der Hue wert (oder Heu und Luminance). Das würde automatisch zu einem regenbogen-verlauf führen. Einfach eine kleine delphi unit suchen, die das HSL nach RGB konvertieren kann und fertig ist die laube!

wolfgangK 10. Jan 2005 07:14

Re: DirectX, Mehrfarbiges Vertex-Coloring
 
Vielen Dank für die Tipps.
Ich habe noch eine einfachere Möglichkeit gefunden, die mehr Spielraum für die Farbvariation läßt:
Ich erstelle eine Textur mit dem gewünschten Farbverlauf.
Diese Textur lege ich nicht (wie sonst üblich) flach auf das Gebirge, sondern senkrecht. Also so wie in Euren Tipps geschrieben, weise ich dem jeweiligen Dreieck entsprechend seiner Höhe ein Teil der Textur zu.

Danke für Eure Tipps.

Wolfgang


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:09 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz