dann waere da noch die maus
Übersicht

![]() |
grafbonBetreff: dann waere da noch die maus |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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. |
![]() |
grafbonBetreff: kollision |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 ![]() |
||
-- imtane.de.vu --
a cherring ping |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group