Seite 1 von 1
3D Anwisieren
Verfasst: 22.12.2004 00:16
von Swappy
Also, ich hab da mal eine Frage zur 3D-Engine. wie kann ich überprüfen, ob z.B. ein bestimmter punkt auf dem Bildschirm (z.B. ein Fadenkreuz) auf eine 3D objekt zeig bzw. es anwisiert??? hat da irgentwer eine sinnvolle methode oder so?
Verfasst: 22.12.2004 15:08
von Robert Wünsche
Also ich würde das mit sowas wie einer Raytracingmethode machen:
Von der Kameraposition zum Kamerablickwinkel einen Strahl berechnen, der die zu treffende fläche treffen soll. Wenn er die fläche trifft, kollidiert er, wenn nicht, dann nicht.
Verfasst: 22.12.2004 16:30
von Swappy
Hmm.. jo oki danke Ich versuch das mal, ist aber ein bissel kompliziert oda?! wenn wer noch ne andere mEthode kennt dann meldet euch mal!
Verfasst: 22.12.2004 20:33
von Zaphod
über die winkel ginge auch... einfach winkel zwischen kamera und objekt überprüfen und zwar in xz und yz richtung. ist der winkel kleiner als ein gewisser toleranzwert, dann ist das ziel vor der flinte. ist aber auch nicht optimal.
wenn du irgendwie an die projezierten eckpunkte des objektes rannkommst, dann ist es natürlich richtig einfach, dann ist es ein 2d problem.
Verfasst: 23.12.2004 11:21
von Kaeru Gaman
wie es diese engine macht weiss ich nicht, bei anderen engines gibt es
routinen für die umrechnung auf bildschirmkoordinaten.
aber der vergleich von kamera-vektor mit ziel-vektor ist auch nur
'simple' lineare algebra.
die kamera hat nen orts-vektor und nen richtungs-vektor,
beim zielobjekt ist nur der orts-vektor relevant (in diesem fall)
objekt-orts-vec - kamera-orts-vec = richtungsvektor des objektes von der kamera aus.
wenn der (mit kleinen abweichungen) ein vielfaches des kamera-richtungs-vec ist,
dann ziehlt die kamera auf das objekt.
vielleicht in polar-darstellung umrechnen und die winkel vergleichen.
das wäre dann ungefähr das was zaphod meinte...
Verfasst: 29.12.2004 12:24
von Swappy
oki habs jetzt hingekriegt mit dem Avisieren!! Danke für eure Hilfe!
MfG
Swappy