AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

DelphiGL LocalMatrix

Ein Thema von mael · begonnen am 5. Nov 2020
Antwort Antwort
Benutzerbild von mael
mael

Registriert seit: 13. Jan 2005
391 Beiträge
 
Delphi XE3 Professional
 
#1

DelphiGL LocalMatrix

  Alt 5. Nov 2020, 22:06
Hallo,

DelphiGL transformiert ja Punkte vom Objekt-Koordinaten zu Weltkoordinaten mit Hilfe der LocalMatrix.
Diese wird in TGLBaseSceneObject.RebuildMatrix erstellt.

Delphi-Quellcode:
procedure TGLBaseSceneObject.RebuildMatrix;
begin
  if ocTransformation in Changes then
  begin
    VectorScale(LeftVector, Scale.X, FLocalMatrix^.X);
    VectorScale(FUp.AsVector, Scale.Y, FLocalMatrix^.Y);
    VectorScale(FDirection.AsVector, Scale.Z, FLocalMatrix^.Z);
    SetVector(FLocalMatrix^.W, FPosition.AsVector);
    Exclude(FChanges, ocTransformation);
    Include(FChanges, ocAbsoluteMatrix);
    Include(FChanges, ocInvAbsoluteMatrix);
  end;
end;
Da laut DelphiGL OpenGL ein rechtshändiges Koordinatensystem verwendet (was auch auf anderen Seiten bestätigt wird), wundere ich mich dass der erste Vektor im obigen Code LeftVector, und nicht RightVector ist.

Schaut man sich den Code von LeftVector an:
Delphi-Quellcode:
function TGLBaseSceneObject.LeftVector: TVector;
begin
  Result := VectorCrossProduct(FUp.AsVector, FDirection.AsVector);
end;
tut er was man erwarten würde, um eine korrekte Transformationsmatrix zu erstellen (von Objektkoordinaten zu Eltern/Weltkoordinaten).

Allerdings berechnet LeftVector die positive X-Achse die in Richtung rechts zeigt, also warum wird er LeftVector genannt? Namensfehler?
HxD, schneller Hexeditor:
http://mh-nexus.de/hxd
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz