dann waere da noch die maus

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

grafbon

Betreff: dann waere da noch die maus

BeitragSa, Jul 23, 2005 7:02
Antworten mit Zitat
Benutzer-Profile anzeigen
ich hab da nix gefunden ueber maus abfrage in opengl, bzw. umrechnung der entity- oder mauskoordinaten in das jeweilige system unter berücksichtigung der kameraeinstellung.

also weiss jemand, wie ich rausfinden kann, ueber welchem 3d-objekt
die maus gerade ist? z (zOrder) kann ich ja selbst rausfinden, aber x und y?

Beispiel:
vertex3f(1.0,1.0,-0.1) ---> wie bekomme ich die maus position fuer diesen
vertex?

kann mir da jemand helfen?
 

trooper

BeitragSo, Jul 24, 2005 12:10
Antworten mit Zitat
Benutzer-Profile anzeigen
das liegt daran, dass OpenGL eine reine Grafikbibliothek ist. Für die Umrechnung musst du im Prinzip nur Matrizen multiplizieren können. Mausabfrage sollte bei glu dabei sein so weit ich weiß (ich persönlich hasse glu allerdings) ansonsten kannst du die Maus immer noch über die Winapi abfragen, oder Blitz Max Funktionen verwenden.
Die wirst wahrscheinlich keine Mausposition für einen Vertex finden, vielmehr musst du an der Mausposition einen Strahl richtung z-Achse schicken und überprüfen mit welchem Vertex dieser Strahl kollidiert.
-- imtane.de.vu --
a cherring ping

grafbon

BeitragDi, Jul 26, 2005 15:54
Antworten mit Zitat
Benutzer-Profile anzeigen
das mit dem strahl erscheint mir eine gute idee, thanx.

nur wie bringe ich DEN nun an die mausposition? naja, wird wohl
recht komplex...

btw. von kollision hab ich keine ahnung. (in 3d)
 

Dreamora

BeitragDi, Jul 26, 2005 20:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit kollision meinte er die Positionsberechnung also schauen ob sie gleich ist.

Kollisionen in 3D funktionieren über mathematische Gleichungen.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

grafbon

Betreff: kollision

BeitragMi, Jul 27, 2005 21:02
Antworten mit Zitat
Benutzer-Profile anzeigen
naja, ich hab mal ein pseudo kollisions system gemacht:
jedes entity hat eine groesse (range, als radius zu verstehen.) und wenn distanz<range1+range2 dann kollision...nur kann ich da nur einzelne vertexes nehmen...

aber bei den flaechen zwischen den vertexen...also wenn das teil nur in die flaeche reinhaut, aber jedoch an keinem vertex der flaeche ankommt...naja, das kommt mir recht komplex rein.
 

trooper

BeitragDo, Jul 28, 2005 17:58
Antworten mit Zitat
Benutzer-Profile anzeigen
bei der kollision würde ich zuerst einen ray - sphere intersectiontest machen, einfach über die abstandsformel punkt-gerade und wenn die boundingsphere mit dem strahl kollidiert die vertices noch durchprüfen (in geradengleichung einsetzen)

das ganze nennt sich übrigens picking, einfach mal googln, zB. http://www.toymaker.info/Games/html/picking.html ist zwar directx aber dürfte nicht so schwer sein das auf opengl zu portieren, bzw. findest du sicher auch schnell ein bsp für opengl...

edit: für die flächen kannst du ja einfach einen dreieck-geraden test machen. sollte nicht so schwierig sein. ein ebene geraden kollisionstest ist ja relativ leicht, am besten erzeugst du bei den 3 seiten einens dreiecks jeweils eine ebene (normale ergibt sich aus der seitensymetrale und D bekommst du in dem du die 2 punkte einsetzt ...)

tut mir leid, kann das jetzt nicht ausfürhrlicher beschreiben, weil ich mir heute versehentlich die fingerkuppe weggeschnitten habe -> schreiben tut weh Wink aber auch ein solcher kollisionstest sollte schnell durch google zu finden sein; diese funktionen muss meiner meinung nach sowieso nicht jeder selber schreiben *ggg* *fg*
-- imtane.de.vu --
a cherring ping

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group