Selektion

Aus DGL Wiki
Wechseln zu: Navigation, Suche

Was ist das?

Die Selektion ist ein bestimmter Rendermodus von OpenGL. Im Selektionsmodus (der durch glRenderMode gesetzt wird) werden keine Fragmente erzeugt und auch keine Änderungen am Framebuffer durchgeführt. Anstelle dessen werden 4 Werte pro Primitiven in einen Selektions Puffer geschrieben. Dieser Puffer muss schon vor dem Aufruf dieser Funktion erstellt worden sein.

Die vier Werte die man pro Primitiven erhält sind:

  1. Anzahl der Namen auf dem Stack
  2. Kleinster Z-Wert des getroffenen Objektes
  3. Größter Z-Wert des getroffenen Objektes
  4. Name des Objektes

Wozu brauch ich das?

Für die Interaktion des Nutzers mit der Szene.

Wie geht das?

Durch den Selektionspuffer bekommt man die OpenGL Namen der Szenen Elemente zurückgeliefert die im Rendermodus GL_RENDER gerendert worden wären. Dies ermöglicht es unter zuhilfenahme von gluPickMatrix den Bereich um einen Mausklick auszuwerten. Wie das genau funktioniert könnt ihr im Selektionstutorial (siehe Links) nachlesen.

OpenGL Funktionen

Folgende Funktionen haben mit der Selektion zu tun:

glRenderMode, glSelectBuffer, glLoadName, gluPickMatrix, Picking

Links

Selektionstutorial bei DelphiGL.com