![]() |
[DirectX] Flip Y Axis
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
da ich mit meinem ![]() Ich setze die VIEW und die PROJECTION Matrix am anfang meines Programmes mit folgenden Zeilen:
Delphi-Quellcode:
Problem ist nun, dass der Koordinatenursprung nun links unten und nicht links oben liegt.
procedure SetupScene(Appl:TAndorraApplication;AWidth,AHeight:integer);
var centerx,centery:single; pos, dir, up : TD3DXVector3; matView, matProj: TD3DXMatrix; begin if Appl <> nil then begin with TAndorraApplicationItem(Appl) do begin pos := D3DXVector3 (Awidth/2,AHeight/2,-10); dir := D3DXVector3 (Awidth/2,AHeight/2,0); up := D3DXVector3 (0,1,0); D3DXMatrixLookAtLH( matView, pos, dir, up); Direct3d9Device.SetTransform(D3DTS_VIEW, matView); D3DXMatrixOrthoLH( matProj, Awidth, Aheight, 0,100); Direct3d9Device.SetTransform(D3DTS_PROJECTION, matProj); end; end; end; Wie kann ich die Y Achse umdrehen? Ich habe schon stundenlang gesucht aber nichts (brauchbares) gefunden (Mal abgesehen von einigen Leuten, die das selbe Problem, aber keine Lösung hatten. Das einzige war das folgende... http://209.85.135.104/search?q=cache:aI4kwcynbfUJ:discuss.microsoft.com/SCRIPTS/WA-MSD.EXE%3FA2%3Dind0303c%26L%3Ddirectxdev%26D%3D1%2 6P%3D14229%26F%3DP+D3DXMatrixOrthoLH+origin&hl=de& amp;gl=de&ct=clnk&cd=10&lr=lang_de|lan g_en doch ich bekomme den Code nicht so richtig zum Funktionieren... Im Anhang befindet sich mal noch ein Bild, wie es aussieht und wie es eigentlich aussehen sollte. Schon mal Danke, Igel457 PS: Ich möchte ID3DXSprite nicht verwenden. |
Re: [DirectX] Flip Y Axis
Hm...
Ich glaube ich Rechne halt einfach ResY-SpriteHeight-Y... Damit gehe ich allen Problemen aus dem Weg. Wenn trotzdem jemand eine Idee hat, wie man das Problem von oben anders lösen könnte bin ich immer dafür offen... |
Re: [DirectX] Flip Y Axis
AFAIK sollte es reichen, den Y-Wert des Up-Vektors zu negieren. ;)
greetz Mike |
Re: [DirectX] Flip Y Axis
Du hast doch die drei Vektoren, nun musst du nur noch überlegen ;) ...
Das Leichteste wäre es wohl, die Kamera genau von der anderen Seite (positive Z-Achse) auf die XY-Plane schauen (-> X+ nach links, Y+ oben) und sie dann 180° um ihre eigene Achse drehen zu lassen, also den Up-Vektor einfach umzudrehen (-> X+ nach rechts, Y+ nach unten, wie du es gewünscht hast). [edit]Hee, wo kommst du denn her :stupid: . Negieren allein reicht aber wie gesagt nicht, damit würdest du die X-Achse mit umkehren. [/edit] [edit id="1"] Eine andere Möglichkeit wäre die Up-Negation + die RightHand-Funktionen. Kommt aber ziemlich aufs Gleiche hinaus; auch vom Schreibaufwand wäre es nur Negieren des Kamera-Z-Wertes vs. Ersetzen von LH durch RH. [/edit] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:03 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz