ich fange gerade an mich mit opengl zu beschäftigen und möchte die temperaturen einer wand anzeigen.
zur verfügung habe ich fuenf messungen die vom boden zur decke verlaufen. die werte sollen von blau (kalt) über rot (warm) nach gelb (heiss)
verlaufen. wie kann ich das machen ?
Ich würde die Wand auf Quads zusammenbauen und für jeden messpunkt einen vertex setzen.
Die einfachste Lösung ist nun jedem Messpunkt die seiner Temperatur entsprechende Farbe zu geben. Das ist jedoch bei schnellen temperaturänderungen nicht so schön.
Die zweit Lösung wäre eine ID textur zu erstellen die die temperatur<->farb zuordnung erledigt und die texturkoordinate bei jedem Vertex entsprechend der Temperatur setzen. Dann interpoliert opengl besser. Wrapmodus solltest du auf clamp setzen.
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
@The Winner: Ich glaube jemand der gerade mit OpenGL anfängt, versteht bei deinem zweiten Vorschlag nur die Bindewörter.
@hecke2000: Du hast nur 5 Messungen? Ich frage, weil es ja sein kann, dass nur die linke obere Ecke der Wand kalt ist, und sonst der Rest warm. Wie willst du denn das darstellen? So wie das jetzt klingt, besteht die Darstellung aus 5 horizontalen Streifen, die je nach Temperatur unterschiedlich gefärbt sind.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
genau bekomme ich von 5 messköpfen die an der wand entlang fahren 20000 messwerte. ich habe nur keine vorstellung wie ich das realisieren soll.
deshalb habe ich die wand aus 5 * 36 quads zusammen gebaut und diese dann anhand der temperatur eingefärbt.
kannst du mir eine möglichkeiten nennen wie das besser zu lösen ist.
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Na das klingt doch schon viel besser.
Somit hast du also 5 Messköpfe x 4000 Messungen.
Sind die 4000 Messungen in einer Spur, oder wird die Wand mehrfach nebeneinander abgefahren?
Ich würde das vermutlich so machen, dass jeder Messwert ein Vertex wird mit der entsprechenden Farbe. Aus den Vertices würde ich dann Quads bauen. Die Farbverläufe macht OpenGL ja durch Smooth Shading von alleine. (Siehe Bild im Quickstart Tutorial)
Da aus 4 Vertices jeweils ein Quad wird, sind das nur 5000 Stück = 10.000 Triangles = kein Problem für deine Grafikkarte.
Das ganze machst du am besten in 5 glBegin-End Blöcken, also pro messkopf. glBegin(GL_QUAD_STRIP) kann dir da weiter helfen.
Eine alternative wären hier noch VBOs, wobei das für einen Anfänger vermutlich gleich ein größerer Sprung wäre. Falls die Performance aber grottig sein sollte, kann man es so noch mal probieren.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
allerdings habe ich zur zeit nur simulierte werte und muss mal bis morgen warten bis ich die echten bekomme.
vielen dank nochmal für die hilfe und die super guten anleitungen.
ich komme doch nicht so richtig zurecht
also ich habe jetzt die quad_strips gezeichnet. und zwar 36 stück nebeneinander. wie bekomme ich denn nun den farbverlauf von einem zum anderen hin ?
Indem du einfach die Farbe bzw. das Material für den Vertex einzeln setzt. OpenGL interpoliert die Farbe / das Material zwischen den einzelnen Vertices eh.
Sprich Vertex 1 ist Blau, Vertex 2 Rot. Zwischen den beiden entsteht dann ein Farbverlauf von Blau nach Rot.
Mitglieder in diesem Forum: 0 Mitglieder und 12 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.