moin,
ich möchte zwei Programme schreiben, die sich etwas ähnllich sind. Ersteres wird in 3D arbeiten, müsste es aber nicht. Da das zweite Programm dem ersten in der grafischen Ausgabe ähnlich ist, wollte ich es zum Anlass nehmen, mich da gleich reinzuarbeiten in 3D. Schade ist, das Direct3D nur 3D macht und den Entwickler nicht oder nicht sehr gut/einfach unterstützt, wenns darum geht zwischen x,y,z float-Vektoren und x,y Pixelkoordinaten(Screen) hin und her zu rechnen. Habe schon mehrfach gelesen, dass es möglich ist und auch neue Methoden/Funktionen kennengelernt. Im Grunde müssten es Befehle sein, die sowohl float als auch DWORD beinhalten. Zum hin und herrechnen eben. D3DXVec3Project nutzt das wohl andersrum (2D in ein bestimmtes 3D-Objekt reinprojezieren). Nur dieser Befehl und Viewport nutzen beide Datentypen? Im Endeffekt wird das Projezieren sowieso immer gemacht, sonst könnten wir keine 3D-Objekte auf dem Bildschirm sehen. Nur das Auslesen der Bildschirmkoordinaten dieser Projektion scheint nicht so eindeutig bzw auch nicht so einfach zu sein. Oder doch?
Manche hier beschreiben zwei Wege, die wohl nicht so einfach sind. Ich hatte und habe so meine Probleme damit. Matrix Viewing und eben D3DXVec3Project.
Ein Teil des Bildschirms beinhaltet quasi das Panel(2D würde reichen) und ein anderer Teil die Grafikausgabe von Informationen (3D). Beim zweiten Programm ist es das selbe, nur das dort die Grafikausgabe bewusst in 3D genutzt wird. <- Dort Objekte über den Mauszeiger zu identifizieren und evtl zu markieren ist vermutlich nur eine erweiterung für meine aktuelles Problem. Ich möchte dadurch, dass ich zwischen Vektoren (floats) und Koordinaten (DWORD) abfrage, meine 3D-Objekte mit dem Mauspfeil kontrollieren. Gelungen ist mir das schon, aber die Berechnungen sind etwas ungenau/fehleranfällig. Ich nutze sicher nicht den offiziell Richtigen weg. Darum schätze ich, ist mein Weg limitiert und es werden vielleicht irgendwann neue Probleme auftauchen.
Das erste Programm (optisch nur in 2D gehalten) hat immer z=0; das zweite scrollt im z (und auch im x). Es soll (Grafik scrollt leicht schräg nach unten weg) so umgerechnet werden ,dass ich es in 2D (mit der Maus) kontrollieren kann.
Ich weiss, dass jede Änderung mit der Kamera vieles, wenn nicht alles über den Haufen wirft. Darum suche ich nach dem "offiziellen weg".
boah, bisschen viel Text. Ich hoffe, das ist so verständlich. Mille grazie. Bin echt neugierig, wie lange mich das noch aufhalten wird. Besiegen wird es mich nicht!!
Ach ja:Bitte erschlagt mich nicht einfach mit geläufigen Begriffen, besser ist es Begriffe gleich mit einem vielleicht kleinen Zweizeiler an Quelltext mit ersichtlichen Anschauungsmaterial (sprich notwendigen Befehlen) zu verbinden
. In DirectX bin ich vielleicht fortgeschrittener Anfänger und C/C++ kann ich, und zwar unterschiedlich gut. Ein Spiel habe ich in DirectX noch nicht programmiert - kommt vielleicht noch. Mit der Windows-Api habe ich ein kleines Spiel programmiert und bin dabei schon Mal auf grafische Grenzen für nächste Ideen gestoßen. Darum entschied ich mich, mich mit der GPU zu beschäftigen. Und im 3D-Dschungel bin ich hier gelandet :lol: . Aber auch in der Welt der floats und damit ist manchmal nicht gut Kirschenessen
.