OpenGL ColorPicking
-
Hallo Leute brauche mal nen Rat.
Ich arbeite gerade am Colorpicking.Momentan sieht es so aus das ich jedem Objekt was ich zeichne eine Farbe verpasse und wenn ich dann Doppelklicke wird jedes Objekt in dieser Farbe 1 mal gezeichnet.
darauf hin lese ich dann aus dem Framebuffer den angeklickten pixel aus und finde soo raus was ich angeklickt habe.
Das umschalten auf die anere Farbe sieht man allerdings.1. Kann ich mir irgendwie nen Buffer anlegen in den ich rendern kann und aus diesem dann die Pixel lesen. Dieser Buffer sollte dann aber nicht angezeigt werden.
2. Die Pixel frage ich Über glReadPixels() ab. Diese Funktion liest ja aus dem Framebuffer. Kann ich OGL sagen das er aus einem anderen buffer lesen soll? Zb dem Backbuffer?
-
Schau dir mal Framebuffer Objects an. Allerdings solltest du dich auch fragen ob du das Picking nicht einfach ohne diesen Farbhack machen kannst...
-
Das umschalten auf die anere Farbe sieht man allerdings.
glReadPixels bezieht sich auf den Back-Buffer (vorausgesetzt dass Du Double-Buffering verwendest) - es waere also hinreichend, einfach nicht SwapBuffers aufzurufen damit Dein ID-Buffer nicht angezeigt wird.
-
Hab das problem gelöst! Allerdings kann ich nicht auf swap buffers zzugreifen da ich mit einem Control für C# arbeite und das Swapen intern vom Control geschieht.