Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Sluggy

Frischling

  • »Sluggy« ist der Autor dieses Themas

Beiträge: 30

Wohnort: Spardorf

Beruf: Schüler

  • Private Nachricht senden

1

20.08.2006, 12:46

Kameraführung

hi leute,

ich versuch grad einen kleinen flugsimulator zu proggn und will, dass die Kamera immer genau hinter dem Flugzeugmodell bleibt (sich also mit rotiert) und auf das Flugzeug schaut.

Ich habe dazu die Vektor und Matrixfunktionen der TriBase Engine zur verfügung, Position, Blickrichtung (Winkel nicht Vektor), Blickhöhe der Kamera, relative X,Y und Z achsen des Modells und natürlich Positionen von Kamera zur verfügung.

Nur bekomm ich das nicht so ganz auf die reihe :)

Mein bisheriger Ansatz war erst mal die Position der Kamera etwas hinter die Position des Modells zu setzen (auf absoluter z achse) und dann die position der Kamera um die Achsen des Modells zu rotieren. Ich weiß nicht genau mit welchem Faktor (ich hab den Blickwinkel der Kamera dazu benutzt...)

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
CCamera FollowObject(CCamera CameraOld, CModel *Object)
{
    CCamera Camera;

    Camera = CameraOld;


    Camera.Position = Object->Position + tbVector3(0.0f, 30.0f, -30.0f);

    if(Object->Position.z > 0)
        Camera.Angle    = tbVector3Angle(tbVector3(0.0f, 0.0f, 1.0f), tbVector3(0.0f, 0.0f, Object->Position.z)); 
    else 
        Camera.Angle    = tbVector3Angle(tbVector3(0.0f, 0.0f, -1.0f), tbVector3(0.0f, 0.0f, Object->Position.z)); 

    tbMatrix mRotation;
    tbMatrixRotationAxis(Object->YAxis, Camera.Angle);
    Camera.Position = tbVector3TransformCoords(Camera.Position, mRotation);

    return Camera;
}


Fenster bleibt allerdings schwarz :lol:

Was is an meinem Codel alles Falsch?^^
LIFE SUCKS!!!

big_muff

Alter Hase

Beiträge: 460

Wohnort: Schweiz

Beruf: Informatikstudent (4. Semester)

  • Private Nachricht senden

2

20.08.2006, 14:51

Re: Kameraführung

Zitat von »"Sluggy"«

Mein bisheriger Ansatz war erst mal die Position der Kamera etwas hinter die Position des Modells zu setzen (auf absoluter z achse) und dann die position der Kamera um die Achsen des Modells zu rotieren. Ich weiß nicht genau mit welchem Faktor (ich hab den Blickwinkel der Kamera dazu benutzt...)


Viel zu umständlich! Nimm als Kameraposition einfach die Position des Flugzeugs minus die Blickrichtung des Flugzeugs (Die müsstest du ja irgendwo in der Flugzeugklasse gespeichert haben, sonst machst du irgendwas falsch...) mal der gewünschte Abstand der Kamera vom Flugzeug.
Nur Idioten halten Ordnung, ein Genie beherrscht das Chaos.[size=7]

[/size]HardFate - Ein Start, Ein Ziel, Viele Wege[size=7]

[/size]Ein Mitglied der VEGeiCoUndGraSonMaWiGeS Bewegung.

Sluggy

Frischling

  • »Sluggy« ist der Autor dieses Themas

Beiträge: 30

Wohnort: Spardorf

Beruf: Schüler

  • Private Nachricht senden

3

20.08.2006, 16:57

Gut, Position stimmt jetzt, aber ich schaffe es nicht, die Kamera auf das Model blicken zu lassen.

Keine Ahnung, wie ich das machen soll...^^
LIFE SUCKS!!!

big_muff

Alter Hase

Beiträge: 460

Wohnort: Schweiz

Beruf: Informatikstudent (4. Semester)

  • Private Nachricht senden

4

20.08.2006, 17:13

Du beutzt doch die TriBase. Also wirst du wohl tbCameraMatrix oder sowas benützen. Schau dir mal die Parameter an. Da kannst du sicher angeben auf welche Position die Kamera blicken soll oder in welche Richtung sie blicken soll. Falls ersteres gibts du die Position des Flugzeugs an, falls zweiteres gibst du die Blickrichtung des Flugzeugs an.
Nur Idioten halten Ordnung, ein Genie beherrscht das Chaos.[size=7]

[/size]HardFate - Ein Start, Ein Ziel, Viele Wege[size=7]

[/size]Ein Mitglied der VEGeiCoUndGraSonMaWiGeS Bewegung.

Werbeanzeige