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

1

08.03.2008, 19:45

ArcBall Rotation auf Kamera

Hallo,

man kann mit einem ArcBall ja das Modell per Maus drehen, wie kriege ich aber auf dieselbe Weise die Kamera um das Modell herum gedreht?

Grüße

TrommlBomml

Community-Fossil

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

2

08.03.2008, 20:08

indem du die kamera drehst, und dann mit hilfe einer gebildeteten rotationsmatrix einen vektor mit dem abstand zum koordinatenursprung des weltkoordinatensystem transformierst. ma pseudocode:

C-/C++-Quelltext

1
2
3
4
5
6
7
vector3 pos = (0,0,-50); //abstand kamera


drehekamera(x,y,z);

matrix = Rotationsmatrix(x,y,z);

pos = transformiereVektor3(matrix,pos);

3

08.03.2008, 20:51

Zitat von »"TrommlBomml"«

indem du die kamera drehst, und dann mit hilfe einer gebildeteten rotationsmatrix einen vektor mit dem abstand zum koordinatenursprung des weltkoordinatensystem transformierst. ma pseudocode:

C-/C++-Quelltext

1
2
3
4
5
6
7
vector3 pos = (0,0,-50); //abstand kamera


drehekamera(x,y,z);

matrix = Rotationsmatrix(x,y,z);

pos = transformiereVektor3(matrix,pos);


Verstehe den Pseudocode nicht. Woher kommen x, y und z? Was macht drehekamera()?

TrommlBomml

Community-Fossil

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

4

09.03.2008, 14:49

x y z und z sind die drehungen jeder achse um die du rotierst. die drehung der kamera kannst du mit D3DXMatrixLookAtLH realisiern. da übergibst du ja unter anderem zwei richtungsvektoren, die die drehung der kamera beschreiben können. einmal der UpVector und der LookAt. damit kannst du mit ein wenig nachdenken alle drehungen um die 3 achsen realisiern ;)

und der gesamte pseudocode soll dir die letztendliche position + drehung für deine kamera liefern.

wenn du immer noch nicht ganz verstanden hast, was ich will, dann schreib ich dir halt mal den gesamten code mit d3dx-methoden auf.

aber würde es schöner finden wenn du selber probierst^^

Werbeanzeige