Einzelnen Beitrag anzeigen

Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#7

AW: OpenGL - Prüfen ob Textur angeklickt

  Alt 6. Nov 2011, 15:05
Du gestehst OpenGL zu viel "Intelligenz" zu. Es gitb keine "Objekte" in OGL, OGL ist quasi nur ein Pinsel, und der Pinsel für sich ist erstmal doof. Der weiss nicht was er zeichnet, was davon zu einem "Objekt" gehört, nix. Du brauchst also eine ganz und gar eigene Datenstruktur im Hintergrund, die mit OGL überhaupt nichts zu tun hat (zunächst), in der du all deine Logik unterbringst. OGL ist nur zum Zeichnen da. NUR!

Eine Textur ist auch nicht, so wie du es ausdrückst, anklickbar. Das Fenster, in dem OGL was rendert, ist es. Dann bekomst du Fensterkoordinaten, die du (du!) erstmal in Weltkoordinaten deiner grade dargestellten Szene umrechnest. Zunächst mal in der Eye-Plane. Von dort aus musst du (du!) unter Zuhilfenahme von etwas linearer Algebra einen Strahl in deine Szene "schicken", und mit Geraden/Flächen-Schnitt gucken, ob und welches deiner(!) logischen Objekte getroffen wurde, die du idealerweise in einer Liste irgendwo im Sppeicher hast (OGL hat die nämlich nicht, bzw. nicht in auf diese Weise verwertbarer Form). Dann weisst du, welches deiner logischen "Objekte" geklickt wurde, und da du hoffentlich in den Klassen zu deinen Objekten auch die Referenz auf die zu verwendende Textur hast, darüber auch die Textur, des Objektes, das gerade dort zuvorderst dargestellt wird, wo der User auf das Fenster geklickt hat. Verglichen mit einem rosa plüschigen VCL-OnClick() Handler geht dabei natürlich eine ganze Ecke mehr ab, aber so ist das in der "echten" Welt
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat