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

FSA

Community-Fossil

  • »FSA« ist der Autor dieses Themas
  • Private Nachricht senden

1

05.04.2012, 15:23

Position für Sprite rechnen

Ich wollte gerne ein Sprite rendern, was sich nicht zur Kamera bewegt! Das Sprite soll Position und XYZ-Rotation berücksichtigen. Also ein Bild was im Raum hängt ^^ Position ist kein Problem, aber wie rechne ich die zwei Richtungsvektoren? Also entlang der X und Y Achse? Wenn ich einfach ein Sprite rendern will wären die Vektoren so:
X (1|0|0) Y (0|1|0) Nur wenn ich es jetzt um PI/2 um die Z Achse drehen will, wie mache ich das? Sinus und Kosinus ist mein Ansatz. Leider weiß ich nicht, wie die Formel aussehen soll. Wie kombiniere ich am Schluss die Postion mit der Rotation und erstelle die finale Postion?
Danke im Voraus.

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

2

05.04.2012, 15:35

Willst du das Sprite immer zur Kamera ausrichten? Dann schau hier: Billboards
@D13_Dreinig

FSA

Community-Fossil

  • »FSA« ist der Autor dieses Themas
  • Private Nachricht senden

3

05.04.2012, 16:08

Zitat

Willst du das Sprite immer zur Kamera ausrichten? Dann schau hier: Billboards

Nein, das meinte ich mit nicht zur Kamera bewegt ;) Es soll einfach ein Bild sein, was im Raum ist mit vorgegebener Position und Rotation. Sonst soll es sich nicht bewegen.
Danke

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

4

05.04.2012, 16:36

Ich verstehe dein Problem nicht. öo

MfG
Cehck

Sp3iky

Treue Seele

Beiträge: 232

Beruf: Entwicklungsingenieur

  • Private Nachricht senden

5

05.04.2012, 17:16

Was du machen musst, ist ein Quad bzw. allgemein ein Polygon rendern und das Bild als Textur für das Polygon verwenden. Dann kannst du die Position ganz normal im 3D-Raum angeben und über Transformationsmatrizen die Orientierung und Position verändern.

DeKugelschieber

Community-Fossil

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

6

05.04.2012, 17:41

Du willst also eine 2D Fläche rotiert verschieben?
Dann rotierst du erst und verschiebst dann, wo ist das Problem?

Und das was du da mit sin und cos ansprichst: Wikipedia (vermute ich mal).

FSA

Community-Fossil

  • »FSA« ist der Autor dieses Themas
  • Private Nachricht senden

7

05.04.2012, 21:02

So meinte ich das nicht :) Sagen wir ich habe einen Vektor(45,0,0) (45° X-Achse Drehung) Wie kann ich den Vektor in einen Richtungsvektor umwandeln? Der Up-Vektor ist 0|1|0.
Der Richtungsvektor solle dann ungefähr so aussehen: (0|1|1) (wenn ich mich nicht vertan habe ^^) Nur wie berechne ich den?
Danke

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

DeKugelschieber

Community-Fossil

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

8

05.04.2012, 22:58

(sin(45)|0|cos(45)) vielleicht sin und cos vertauscht, bin ich mir gerade nicht so sicher ^^
Der Vektor ist dann halt normalisiert.

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

9

05.04.2012, 23:05

sin(45°) = cos(45°), also ist das hier egal :)
Ansonsten hängt es davon ab, was man als 0° definiert und in welche Richtung gedreht werden soll.

FSA

Community-Fossil

  • »FSA« ist der Autor dieses Themas
  • Private Nachricht senden

10

05.04.2012, 23:41

Das hatte ich mir auch schon gedacht :) Aber wenn ich 45° X und 37° Y und 12° Z drehen will dann geht das ja so nicht :)

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

Werbeanzeige