Registriert: Di Jun 27, 2006 11:43 Beiträge: 22 Wohnort: Berlin
Hi, Leute,
wahrscheinlich bin ich mal wieder betriebsblind und seh' den Wald vor lauter Bäumen nicht mehr.
Ich habe ein Mesh, das mit einer eindimensionalen Textur gerendert wird (Höhendarstellung wie bei einer Landkarte). Zur Darstellung von Schnitten, die ich aus bestimmten Gründen nicht ebenfalls mit Meshs implementieren möchte, will ich einen Linienzug darstellen, der mit den der Renderung entsprechenden Farben sichtbar sein soll.
Wie krieg' ich denn aber nun zu einem gegebenen Vertex die aktuell gerenderte Farbe raus?
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Obs die beste Lösung sit, weiß ich nicht (und bezweifle es auch) aber so könnte es gehen:
Du kannst die aktuelle Rasterposition (glRasterPos) auf den Vertex setzen und dann mit glGet und GL_CURRENT_RASTER_TEXTURE_COORDS die Texturcoordinaten abfragen.
Man kann auch die Position des Vertices in Fensterkoordinaten umrechnen (glu(Un)Project) und dann den Farbwert direkt mit glReadPixels auslesen.
(Solltest du nur ausversehen "Vertex" geschrieben haben, und eigentlich ein beliebiges Pixel meinen, dann ist diese Lösung wohl das richtige. Das Umrechnen kann gegebenen Falls entfallen.)
beide Verfahren sind nicht besonders schnell.
Wenn du die Höhe deines Vertex kennst ist es vielleicht besser in genauso zu texturieren wie die Karte. Das geht vermutlich schneller.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Mitglieder in diesem Forum: 0 Mitglieder und 10 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.