Teil-Sourcecode von der Blitz3D-Engine

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

PacMani

Betreff: Teil-Sourcecode von der Blitz3D-Engine

BeitragDo, Apr 24, 2014 14:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich erinnere mich daran, wie jemand auf diesem Forum auf einen Thread auf blitzbasic.com verlinkt hat, in dem Mark Sibly Sourcecode irgendeines Entity-Teils von Blitz3D gepostet hat. Ich meine, der ging sogar über RotateEntity etc..
Weiß jemand welchen Thread ich meine und kann mir den Link geben?

Hab nämlich grad'n Problem in meiner 3D-Engine (http://stackoverflow.com/quest...l-rotation) und erhoffe mir etwas mathematisches Studentenfutter daraus lesen zu können Very Happy

PacMani

BeitragDo, Apr 24, 2014 22:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Habs: http://blitzbasic.com/Communit...opic=42657

Nähe Ende sieht man den Quaternion-Qram ;P

DAK

BeitragDo, Apr 24, 2014 22:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Sehr interessant, dass er dafür wirklich Quaternionen verwendet, und nicht nur einfach Rotationsmatrizen.
Gewinner der 6. und der 68. BlitzCodeCompo
  • Zuletzt bearbeitet von DAK am Do, Apr 24, 2014 22:36, insgesamt einmal bearbeitet

PacMani

BeitragDo, Apr 24, 2014 22:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Jap, der Quaternion-Code am Ende ist sehr sehenswert, da man schließlich Pitch / Yaw / Roll manuell setzen und auslesen kann - das hab ich in meiner Engine bisher nicht richtig hinbekommen :s

DAK

BeitragDo, Apr 24, 2014 22:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Was ich in meiner Engine (muss eine für die Uni machen) mach ist wohl etwas unsauberer, funktioniert aber auch. Ich erstelle mir Rotationsmatrizen aus den Drehwinkeln (verwende dafür das fertige GLM, kann man aber auch so relativ einfach machen). Zum Auslesen speicher ich mir dazu Pitch, Yaw und Roll einfach als einzelne Werte ab. Die hol ich mir also gar nicht mehr aus der Matrix (bei Transformationsmatrizen ist das ja nicht mehr ganz so trivial).
Dazu habe ich auch die drei Teilmatrizen (Rotation, Transfromation, Skalierung) einzeln abgespeichert, um so Sachen wie Move oder alles was z.B. nur die Drehung braucht leicht hin zu kriegen.
Damit lassen sich auch alle Befehle die man aus B3D kennt (Rotate, Turn, Move, Translate, Position, Scale) recht einfach verwirklichen.

Aber mit den Quaternionen wäre es wahrscheinlich schon deutlich sauberer.
Gewinner der 6. und der 68. BlitzCodeCompo

PacMani

BeitragDo, Apr 24, 2014 22:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Jap, die Befehle an sich gibt es bei mir auch schon und funktionieren. Hatte bisher nur die Konvertierung zurück in Vector3 nicht richtig hinbekommen (und auch schon dran gedacht diese Werte zwischenzuspeichern, aber das war auch nicht das Gelbe vom Ei) Very Happy

PacMani

BeitragFr, Apr 25, 2014 20:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Trotzdem bekomm ich die Konvertierung nich hin...

Jolinah

BeitragFr, Apr 25, 2014 22:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn die Multiplikation mit einem Vektor funktioniert, dann müsstest du den normalisierten Richtungsvektor des Quaternion kriegen indem du folgendes rechnest:

Normalisierter Richtungsvektor = Quaternion * Vector3(0,0,1)

Vorausgesetzt, dass die Z-Achse die Vorwärts- bzw. Tiefen-Achse ist. So mach ich es zumindest immer wenn ich in Unity3D mit Quaternions was berechne.

Laut dem Blitz3D Code wäre das dann:

Code: [AUSKLAPPEN]
(*this * Quat(0,q) * -*this).v


Also das Quaternion multipliziert mit einem zweiten Quaternion(0, Vector3(0,0,1)) multipliziert mit dem inversen/negativen Quaternion und vom Ergebnis was ja wieder ein Quaternion ist, dann einfach den Vektor nehmen. Vielleicht könnte man das ganze dann noch umformen, aber da kenn ich mich auch nicht aus Very Happy

Naja, vielleicht hilfts dir ja weiter.

PacMani

BeitragSa, Apr 26, 2014 11:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Ermitteln der Winkel Yaw Pitch und Roll aus dem Quaternion habe ich mittlerweile schon hinbekommen, nur andersrum will es einfach nicht, und ich gebe jetzt auf, wenn niemand mehr eine Idee hat... (auf http://blitzbasic.com/Communit...pic=102458 habe ich mal einigen Code gepostet) Very Happy

PacMani

BeitragMo, Apr 28, 2014 9:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey wenn es interessiert, "wir" (oder mehr Kryzon) hat in dem Thread den einwandfrei funktionierenden Code zur Umwandlung Blitz-Quaternion -> Vector3 und zurück gepostet Wink

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group