Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   
Forentreff 2012     
Bücher-Shop mit Amazon (Buchkategorien)C++ : Referenzen zu C++ : C++ Builder : Visual C++ : C# : Java : Spieleprogrammierung : Systemprogrammierung Linux : Software-Entwicklung : .NET : Compilertechnik : Algorithmen & Datenstrukturen : Objektorientierung : Entwurfsmuster : UML : eXtreme Programming : Scrum : Projektmanagement : Software-Testing : Datenbanken : Tom DeMarco : Dilbert : User Friendly
C/C++ Forum :: FAQ - Grafik-/Spieleprogrammierung ::  Fenster in Weltkoordinaten umwandeln  
Gehen Sie zu Seite 1, 2  Weiter
  Zeige alle Beiträge auf einer Seite
Auf Beitrag antworten
Autor Nachricht
Ulli
Unregistrierter




Beitrag Ulli Unregistrierter 22:52:00 16.07.2002   Titel:   Fenster in Weltkoordinaten umwandeln            Zitieren

Ich habs schon n paar mal probiert aber komme einfach nicht weiter: Wie wandle ich die 2D Koordinaten der maus auf einem Fenster in 3D Koordinaten in meinem "Raum" um? :?: Das ganze in OpenGL also bitte keine DX8 Funktionen posten :D
Werbeunterbrechung
TGGC
Mitglied

Benutzerprofil
Anmeldungsdatum: 01.02.2001
Beiträge: 1895
Beitrag TGGC Mitglied 10:32:00 17.07.2002   Titel:              Zitieren

Kurz gesagt: es geht nicht

Der Mauszeiger hat keine Koordinaten im 3D-Raum, da er nur zweidimensional ist. Du kannst nur einen Strahl vom Kamerapunkt zur Mausposition ziehen, und schauen, was alles draufliegt.


Bye, TGGC

_________________
Was wirklich zählt, ist klar.
http://www.fh-merseburg.de/~roesch | ICQ#: 109019884
Ulli
Unregistrierter




Beitrag Ulli Unregistrierter 11:30:00 17.07.2002   Titel:              Zitieren

"Du kannst nur einen Strahl vom Kamerapunkt zur Mausposition ziehen, und schauen, was alles draufliegt."

Genau das meinte ich ja aber wie mach ich das?
Headhunter
Moderator

Benutzerprofil
Anmeldungsdatum: 20.08.2000
Beiträge: 3567
Beitrag Headhunter Moderator 11:49:00 17.07.2002   Titel:              Zitieren

Hi !

Gibts da nicht was im FAQ ??
Naja, in der DX8 SDK gibts ein tolles Sample dazu.
Wenn du möchtest kann ich dir aber auch etwas Code
zuschicken... Mail mir einfach / poste hier

_________________
(Mod im Spiele&Grafikforum)

Viele Grüße, headhunter
Ulli
Unregistrierter




Beitrag Ulli Unregistrierter 13:10:00 17.07.2002   Titel:              Zitieren

Ich hab jetz extra nochmal in der FAQ nachgeschut aber wieder nix gefunden, wäre nett wenn du mir das angebotene Beispiel zusenden könntest (Jakob-Lang@gmx.de) vieleicht wäre es aber besser es zu posten und den Thread dann ins FAQ zu verschieben.
µ
Mitglied

Benutzerprofil
Anmeldungsdatum: 14.06.2001
Beiträge: 1552
Beitrag µ Mitglied 13:14:00 17.07.2002   Titel:              Zitieren

gluUnProject heißt die Funktion.

Siehe hier: http://www.eecs.tulane.edu/www/graphics/doc/OpenGL-Man-Pages/gluUnProject.html

Die erwartet aber neben winx und winy Koordinaten noch einen winz Parameter. Den kannst du mit glReadPixels bestimmen (Depth-Buffer auslesen)
TGGC
Mitglied

Benutzerprofil
Anmeldungsdatum: 01.02.2001
Beiträge: 1895
Beitrag TGGC Mitglied 13:22:00 17.07.2002   Titel:              Zitieren

Zitat:
Original erstellt von <Ulli>:
"Du kannst nur einen Strahl vom Kamerapunkt zur Mausposition ziehen, und schauen, was alles draufliegt."

Genau das meinte ich ja aber wie mach ich das?


Also das würd ich so machen:
Du bestimmst das Rechteck, das von der near clipping Plane sichtbar ist (bzw. wenigsten 3 seiner Eckpunkte). Dazu brauchst du ja einfach nur die planes des view frustrums entsprechend schneiden oder du machst eine Rücktransformation der entsprechenden Eckpunkte des view frustrums. Ich seh, schon, das kapiert keiner, Zeichnung:
http://www.fh-merseburg.de/~roesch/trash/raypick.jpg

Also du bekommst jetzt O, das ist der Punkt der near clipping Plane, der nach (0,0) auf den Monitor transformiert wurde. Ausserdem können A und B bestimmt werden, die das Rechteck aufspannen. Jetzt skalierst du A und B, so wie die Mausposition auf den Bildschirm ist (z.B. in der Mitte mal 0.5) und bestimmst so den Durchstosspunkt. Den Punkt mit V (die Kameraposition) verbinden, fertig!

P.S.: spätenstens jetzt sollte es was im FAQ geben ;)


Bye, TGGC

_________________
Was wirklich zählt, ist klar.
http://www.fh-merseburg.de/~roesch | ICQ#: 109019884
Rumex
Mitglied

Benutzerprofil
Anmeldungsdatum: 19.12.2001
Beiträge: 24
Beitrag Rumex Mitglied 13:22:00 17.07.2002   Titel:              Zitieren

Hi Headhunter,

kannste es mir auch zuschicken falls du es net postest?
sowelu@gmx.de

_________________
mfg Rumex

Wer aufgibt verliert, wer nicht aufgibt, kann verlieren.
TGGC
Mitglied

Benutzerprofil
Anmeldungsdatum: 01.02.2001
Beiträge: 1895
Beitrag TGGC Mitglied 18:26:00 21.07.2002   Titel:              Zitieren

@Headhunter: Vorschlag, poste dein Code noch hier her und verschieb das Teil mal in die FAQ, oder isses das nich wert?

_________________
Was wirklich zählt, ist klar.
http://www.fh-merseburg.de/~roesch | ICQ#: 109019884
RPD
Mitglied

Benutzerprofil
Anmeldungsdatum: 03.05.2001
Beiträge: 1344
Beitrag RPD Mitglied 19:04:00 21.07.2002   Titel:              Zitieren

da braucht er nicht den ganzen code posten, dass sample ist beim sdk dabei und zwar hier:

(SDK root)\Samples\Multimedia\Direct3D\Pick
:)

_________________
Gruß
RPD
C/C++ Forum :: FAQ - Grafik-/Spieleprogrammierung ::  Fenster in Weltkoordinaten umwandeln  
Gehen Sie zu Seite 1, 2  Weiter
Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können keine Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum nicht antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info, www.c-sar.de, www.c-plusplus.net und www.baeckmann.de enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.