Laden...

farbliche Höhenkarte

12 Antworten
2,101 Aufrufe
Letzter Beitrag: vor 17 Jahren
farbliche Höhenkarte

Hallo,

Weiß jemand, wie ich aufgrund von Höhenpunkte eine echte "ColorMap" erzeuge. Leider versteht C# unter colormap sowas wie eine umrechnung von existierenden werte in neue, aber ich würde gerne eine neue erzeugen

Das problem ist, dass 5 verschiedene Farbverläufe (siehe Grafik) berücksichtigt werden müssten.

D.h. jeder "pixel" der karte entspricht einer gemessenen Höhe, und diese Höhe "indiziert" eine spezielle Farbe, die aber aufgrund des Farbverlaufs nicht vorher definierbar ist (ausser man rechnet sich alle farben und deren höhenindexe vorher aus -> uff)

Hoffe das Problem hab ich einigermaßen verständlich erklärt.

Hab schon im forum nach ähnlichen themen gesucht, aber ausser auf meine alte heightmap, die jedoch nicht das aktuelle Problem behandelt, bin ich auf nix gestoßen

danke für jede Hilfe

lg
Philipp

Hallo PhilHol,

hm, also ich habe noch nicht genau verstanden, wo das Problem liegt.

die aber aufgrund des Farbverlaufs nicht vorher definierbar ist

Warum denn das nicht?

herbivore

mhm ..

Also das Farbverlauf zeichnen ist ja nicht das problem

Aber ich will jetzt diesen Farbverlauf hernehmen und sozusagen "indizieren" ..

Nehmen wir an ich hab z.b. Höhe 4.21 .. d.h. die Farbe ist daher fast gelb, aber bischen richtung rot

dann bekomm ich eine höhe -6.23 .. d.h die Farbe ist grad noch ein bischen hell, aber doch schon fast dunkelblau

Sozusagen diesen Farbverlauf "indizieren"

Hallo PhilHol,

aber das lässt sich doch leicht berechnen.

herbivore

dann zeichne doch ein bild mit dem brush und erstell ein dictionary. dann gehst du der länge nach durch und holst dir mit getpixel die farbe und als key nimmst du die entsprechende höhe.

ach ich bin ein depp ..

ich nehm einfach das bild andsich als Wert"karte" und dann über koord die farbe wie du sagst .. ..

Danke .. (manchmal denk ich einfach zu verkrampft kompliziert -> dachte an eine große funktion um den wert auszurechnen)

lg

jupp, wobei ich dir das dictionary hier ans herz legen kann. das ist ein enormer performance schub da getpixel recht lahm ist.

Mhm ..

Wie meinst du das mit dictionary ?

Sozusagen im Vorfeld alle möglichen Indizes aus dem Bild auslesen und in einem Dict speichern ?

Ist das nicht auch bissl ein performance verlust vorher ein bild komplett auszulesen stück für stück ?

eigentlich nimmt man ja für heightmap's Graustufenbilder 8)

edith sagt: warum Perfomanceverlust?Es ist doch statisch warum sollte man vorher nicht die Werte einlesen?zB bei Spielen kannst du nicht jedes Frame die Map einlesen. Das wird vorher alles in den Index/Vertexbuffer gehaun. Also vorher auslesen ganz klar...

Ist das nicht auch bissl ein performance verlust vorher ein bild komplett auszulesen stück für stück ?

richtig. das kostet zeit aber dafür kostet es nur einmal zeit.
wenn du jetzt ein größeres bild zeichnen willst, dann ist das auf jedenfall perfomanter vorher alles in ein dictionary zu lesen.
im prinzip ist es so:
wenn du erwartest das du mehr höhenpunkte hast als das dictionary an einträgen hätte, dann ist das dictionary in jedem fall vorzuziehen.

dictionary<höhenpunkt,farbe>

aha,

alles klar

Danke für die Tipps 🙂