Hallo, ich habe schon die nächste Frage bzgl. VBO.
In meinem "Würfel-Projekt" habe ich anfangs display Listen verwendet um 24 * 840 Würfel zu gruppieren.
Die MouseOver Funktion soll jeweils den Würfel erkennen, der sich momentan unter dem Cursor befindet.
Hierfür habe ich den Name Stack bemüht und die entsprechenden Würfel im Render-Mode ermittelt.
Da ich nun aber keine Display-Listen mehr verwende - sondern VBO - kann ich den einzelnen Würfeln keine Namen mehr zuteilen.
Muss ich jetzt etwa alles doppelt erstellen, nur damit ich das Picking implementieren kann?
Es ist nicht empfehlenswert das picking von OpenGL zu verwenden. Es war noch nie Hardwarebeschleunigt und meist nur so schnell, das es gerade für alte anwendungen noch ausreicht.
EIne BEssere Möglichkeit ist es im VBO eine zusätzliche Farbe für jedes Objekt zu vergeben und diese nach dem rendern mit glReadPixel auszulesen. Beim rendern sollte man nach Möglichkeit ein eigenes FBO benutzen, es reicht aus wenn es nur wenige pixel groß ist. DIe transformationen entsprechen dabei dem Picking.
Du kannst auch den Strahl der vom Cursor in den Bildschirm hineinzeigt berechnen und diesen dann mit den einzelnen Würfeln schneiden. Die CPU ist zwar vom Prinzip langsamer als die Grafikkarte, dafür kannst du aber eine räumliche Datenstruktur (Octtree, etc...) verwenden und so die Suche extrem beschleunigen.
Den Code um den Strahl zu berechnen hatte ich hier bereits einmal vor einigen Wochen irgendwo gepostet. Einfach mal nach Picking suchen.
Mitglieder in diesem Forum: 0 Mitglieder und 2 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.