.| Autor | Beitrag |
|---|---|
|
000 17.06.2003, 20:18 the_viking |
Tach liebe TheWall-User ;) Also ich hab da ein kleines Problem mit OpenGL: Ich möchte gerne die 3D-Position eines Mausklicks auf die Geometry berechnen, allerdings möchte ich das gerne OpenGL überlassen :) Laut div. Tutorials gibt es die Möglichkeit, mit dem glSelectBuffer den zuletzt gerenderten glName auszumachen. Nun gibt es da afaik noch den glFeedbackBuffer, der detailliertere Informationen zum "Angeklickten" Polygon liefert. Allerdings hab ich keine Ahnung, wie man den Feedback buffer bedient!! Vielleicht können mir da ein paar nette Leute Helfen! Das wäre wirklich nett von euch!! Mfg the_viking --thx, cu, MfG the_viking (( My =]=H=O=M=E=> Page! )) |
|
Profil || Suche |
|
001 17.06.2003, 21:35 shoo. |
-- |
|
Profil || Suche |
|
002 17.06.2003, 22:20 the_viking |
hrhr ;) Da gibts noch gluUnProject()... aber da hab ich keine Ahnung wie ich an die Z-Value kommen sollte (z-buffer? wie kann ich einen pixel aus dem z-buffer lesen??) bei google findet man afaik net gescheites :( --thx, cu, MfG the_viking (( My =]=H=O=M=E=> Page! )) Dieser Beitrag wurde am 17.06.2003 um 22:25 von the_viking bearbeitet. |
|
Profil || Suche |
|
003 18.06.2003, 12:34 Prefect |
Meh... es ist immer gut, mit dem OpenGL-Standard vertraut zu sein - oder ihn einfach nur zu lesen. Im Inhaltsverzeichnis findet sich Sektion 4.3: Drawing, Reading and Copying Pixels. Wenn man etwas weiter liest steht da Zeug über ReadPixels(), und dann "If the format is DEPTH_COMPONENT, then values are obtained from the depth buffer.". Wenn man nun den Z-Wert an der Mausposition ermittelt kann man sich daraus natürlich die 3D-Position errechnen. Was den Feedback- und Select-Mode von OpenGL angeht solltest du am besten auch einfach den OpenGL-Standard konsultieren und dann ausprobieren, was passiert. Übrigens ist ein anderer Ansatz zur "Auswahl" von Polygonen über OpenGL folgender: Du renderst die Szene ganz normal, jedoch soll jedes Polygon eine einheitliche und eindeutige Farbe haben (keinerlei Schattierungen oder so). Wenn du dann die Farben aus dem Framebuffer ausliest weißt du, welches Polygon an welchem Pixel liegt. cu, Widelands - Gemütliche Aufbaustrategie, Free Software |
|
Profil || Suche |
|
004 18.06.2003, 13:44 Onkel Dittmeyer |
Naja, ich nehme mal an dass das was für einen Engine Editor werden soll und deshalb hat man wahrscheinlich auch texturierte Polygone... -- |
|
Profil || Suche |
|
005 18.06.2003, 19:45 the_viking |
@ Prefect: Den ansatz mit den farbigen polys hatte ich auch schonmal ;) aber damals wusste ich nicht, wie ich das realisieren sollte... Danke für den vermerk auf ReadPixels! Ist mir zuerst gar nicht eingefallen!! @Dittmeyer: Man rendert die Scene ein 2. Mal in den Backbuffer :) dann sieht man das auch nicht... Es muss ja nur gemacht werden, wenn geklickt wird! --thx, cu, MfG the_viking (( My =]=H=O=M=E=> Page! )) |
|
Profil || Suche |
|
006 19.06.2003, 12:36 Prefect |
Wow, ist das mit SelectBuffer tatsächlich schneller? Ich wäre jetzt ehrlich gesagt davon ausgegangen, dass der SelectBuffer in einen unoptimierten Treiberbereich fällt und extremst langsam ist. Immerhin verwendet Quake meines Wissens keinen SelectBuffer. Aber anscheinend bin ich doch etwas zu pessimistisch, was die Treiberautoren angeht ;) cu, Widelands - Gemütliche Aufbaustrategie, Free Software Dieser Beitrag wurde am 19.06.2003 um 12:37 von Prefect bearbeitet. |
|
Profil || Suche |
|
007 20.06.2003, 18:00 the_viking |
Wofür sollte quake den select-buffer nutzen O_o ? Also ich hab jetzt das Problem, das das mit gluUnProject zwar klappt, aber irgendwie erzeugt der falsche Werte! Also ich hab in der funktion, die den Mausklick auswertet, erstmal alle Matrices sowie color&depthbufferr geNULLt und danach neu eingestellt, so wie ich es auch in meiner Render-Funktion mache! thx, cu, MfG the_viking (( My =]=H=O=M=E=> Page! )) |
|
Profil || Suche |
|
008 22.06.2003, 21:04 Kriz |
Sag mal Kollege, bist du blind? Er hat geschrieben, daß er bereits in diversen Tutorials nachgeschaut hat! Watt soll datt? -- K:R-I)Z++ |
|
Profil || Suche |
|
009 24.06.2003, 22:20 blair |
das is leet kriz, es soll leute geben, die kriegen keinen hoch, wenn sie pro tag nich mindstens 5 google links posten... --because our freedom sits at the end of a gun |
|
Profil || Suche |

