JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=c76d6f6739631a0f7cbd74bdafd45177Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

[3d-raum] er fliegt in die tiefe, nur wie?

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
DirectXer
Dark JLI'ler



Anmeldedatum: 05.02.2005
Beiträge: 1201
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 24.07.2005, 11:09    Titel: [3d-raum] er fliegt in die tiefe, nur wie? Antworten mit Zitat

hi leutz,

mich quält da gerade so ne frage, die lösung will mir einfach net einfallen. Im IRC is eh net viel los, deswegen poste ichs hier:

Ich hab ein Fadenkreuz im 3d-raum, das ich mit der Maus bewegen. bei einem Klick wird ein Plasma-ball in der mitte des kreuzes abgefeuert. Dieser Ball sollte seinen Weg streng verfolgen und stets immer tiefer in das Bild hinein fliegen. Wenn ich aber nur die z-komponente der Pos. erhöhe, wirkt es zwar, dass der Schuss immer weiter in den Bildschirm hinein fliegt, aber er geht auch immer weiter zum Mittelpunkt(da der abstend in der ferne natücrlich kleiner wirkt). Wie kann ich es erreichen, dass der ball zwar in die tiefe fliegt, aber in Blidschirmkoordinaten immer die gleiche Position behält?

mir kan schon ma die idee, dass ich den Schuss von seinen lok. Koordsys. in die z-Richtung transliere, aber is ja klar, dass das net geht, da das ja immer im Mittelpunkt des Schusses stehen muss. Und nochwas: es genügt nicht, den schuss einfach nur zu skalieren, da er ja im 3d-Raum fliegt und auch auf Kollision überprüft werden muss. Falls es trotzdem nur diese möglichkeit gibt, muss ich eben ein lokalen Vektor definieren und den auf kolision überprüfen...

thx im Vorraus

Gruß DirectXer
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
GreveN
JLI Master


Alter: 38
Anmeldedatum: 08.01.2004
Beiträge: 901
Wohnort: Sachsen - Dresden
Medaillen: Keine

BeitragVerfasst am: 24.07.2005, 11:24    Titel: Antworten mit Zitat

Die Bewegung solltest du vlt. nicht einfach an der z-Achse festmachen, du übergibst dem Projektil beim Abfeuern einen Richtungsvektor und berechnest dann mit Hilfe dieses Vektors immer die neue Postition.

Im ZFX-Board stand jetzt mal ein ähnlicher Thread:
http://zfx.info/DisplayThread.php?TID=19994
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Yahoo Messenger MSN Messenger
DirectXer
Dark JLI'ler



Anmeldedatum: 05.02.2005
Beiträge: 1201
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 24.07.2005, 11:29    Titel: Antworten mit Zitat

hmm, jo, aber wie sollte der Richtungsvektor dann sein? (0.0f, 0.0f, 0.3f) oder so?

dann die alte Fadenkreuz-position + den richtungs vektor wäre ja dasselbe, was ich schon haben würde. oder meinst du den schuss von dem Modellkoordinatansystem des kreuzes aus in z-Richtung translieren?

Gruß DirectXer
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 24.07.2005, 12:37    Titel: Antworten mit Zitat

du brauchst irgendwie n Richtungsvektor, den den aus der Bildshcirmkoordinate des Fadenkreuzes berechnen musst. also, der Vektor muss von der Kameraposition aus durch den Bildschirm in die Scene gehen. Wenn du ja in der Projektionsmatrix so ne Art NearClipping plane hast ist die ja im Prinzip ein Rechteck. Also musst du versuchen anhand der Bildschirmkoordinate die 3D Pos auf der Near-Clipping-Plane berechnen und dann den Vektor durch diesen Punkt und den Kameramittelpunkt zu bilden. Nur wie du die relative Position auf der Plane bekommst, musste nochmal nachdenken Wink
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
KI
JLI Master


Alter: 39
Anmeldedatum: 04.07.2003
Beiträge: 965
Wohnort: Aachen
Medaillen: Keine

BeitragVerfasst am: 24.07.2005, 13:14    Titel: Antworten mit Zitat

So wie ich das sehe, kann das garnicht gehen.
Wie bei diesen Eisenbahnschienen, müssen bei einer perspektivischen Ansicht die Objekte zur Mitte laufen.


Bei einer orthogonalen Ansicht, bleiben die Eisenbahnschienen parallel.

edit: Ich meine, die Schienen sind natürlich immer parallel (auch bei der perspektivischen Ansicht). Aber bei einer orthogonalen Ansicht verschmelzen sie nicht zu einem Punkte, je weiter der Blick in die Ferne schweift...


Zuletzt bearbeitet von KI am 24.07.2005, 14:28, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Dr. Best
Senior JLI'ler


Alter: 35
Anmeldedatum: 17.06.2004
Beiträge: 269
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 24.07.2005, 13:41    Titel: Antworten mit Zitat

So wie ich das sehe ist das ganz einfach:
Es sollte wohl allgemein bekannt sein, dass alle punkte die auf einer geraden liegen die durch die Kameraposition geht die gleiche Bildschirmposition haben (natürlich nur bei perspektivischer Projektionsmatrix).
Also musst du den Schuss einfach am Anfang ein kleines Stück vor der Kamera erzeugen (und mit entsprechenden x und y koordinaten versehen) und dann den Richtungsvektor z.B. folgendermaßen festlegen:
Code:
shoot.movement=(shoot.pos-camera.pos)*0.1f;

Das sollte dann klappen.
_________________

Ich bin da, wer noch?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name MSN Messenger
DirectXer
Dark JLI'ler



Anmeldedatum: 05.02.2005
Beiträge: 1201
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 24.07.2005, 21:11    Titel: Antworten mit Zitat

hi, ich hab grad besuch, ich les mir das morgen nochma genau durch, habs grad nur so überflogen... Bis dann Wink

Gruß DirectXer
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
DirectXer
Dark JLI'ler



Anmeldedatum: 05.02.2005
Beiträge: 1201
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 25.07.2005, 17:31    Titel: Antworten mit Zitat

jo, thx an alle Wink

Habs jetzt so gemacht, wie die meisten von euch vorgeschlagen haben, also durch die Kamera usw. Klappt wunderbar, danke

Hättich auch selber draufkommen können... Rambo aber naja, schön dasses jetzt funktioniert.

Gruß DirectXer
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum