Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: So Jul 20, 2025 20:27

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 14 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: Mo Jul 21, 2003 16:20 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Hi,

ich bin grad dabei einen Loader für *.x dateien zu schreibe...
Die VertexDaten etc werden auch schon korrekt angezeigt etc, nur... ich blicke nich durch wie diese Animation dadrin gespeichert wird...

Da sind zwar ne menge "AnimationKey" bereiche, aber ich hab keinen blassen schimmer wie die aufgebaut sind :(

Hat evtl jemand ne Hilfe dazu oder so??? Auf www.wotsit.org sind leider nur ziemlich knappe Datei beschreibungen :(

Au'revoir,
Aya~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jul 21, 2003 16:37 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Ah.. ich glaub ich bin grad dahinter gekommen :)

Es werden immer Faces zu gruppen zusammengefügt und die Gruppen werden mit ner Matrix verschoben etc.. :)

Hat sich also erledigt ;)

Au'revoir,
Aya~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jul 21, 2003 16:38 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
In der C++ Hilfe zum DX SDK ist eine Beschreibung des binären und Text Formates von *.X Dateien. Damit du dir nicht das ganze SDK laden mußt, dabe ich die entsprechenden Seiten als PDF angehängt.

Nachtrag:
Da scheinen sich die Beiträge zeitlich wohl überschnitten zu haben.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jul 21, 2003 17:53 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Hi,

kann es sein das sich die WorldMatrix von Direct3D und OpenGL unterscheiden???

Bei DX sind die Textur Koordinaten z.B. ja auch andersrum als bei OpenGL (also Direct3D-Y = 1 ist in OpenGL Y=0)

Au'revoir,
Aya~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jul 21, 2003 17:56 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Ja.OpenGL nutzt ein linkshändiges Koordinatensystem, während D3D ein rechtshändiges Koordinatensystem nutzt.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jul 21, 2003 17:58 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
und was heißt das genau? *g*

Wenn ich ne D3D Matrix hab, wie wandel ich die in ne OpenGL Matrix um???


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jul 21, 2003 18:07 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Linkshändiges Koordinatensystem (OpenGL) : Die Z-Achse zeigt nach hinten.(Vom Betrachter weg)
Rechtshändiges Koordinatensystem (D3D) : Die Z-Achse zeigt nach vorne.(Zum Betrachter hin)

P.S. : Wenn du zwei Hände mit jeweils fünf Fingern hast, dann hättest du das auch selbst rausfinden können ;)

Edit : Bilder (Gefunden über google's Bildsuche) :
Bild Bild
Linkshändig / Resthändig

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jul 21, 2003 18:10 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
*guckt verwirrt auf ihre Finger* *knot* wääh... :wacko:

Also.. äh... nehmen wir mal an ich hab diese Matrix hier aus D3D:
<!--pas--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>Delphi-Source </td></tr><tr><td id='CODE'><!--pas1--><pre> -<span class='integer'>1.000000</span> <span class='integer'>0.000000</span> -<span class='integer'>0.000000</span> <span class='integer'>0.000000</span>
-<span class='integer'>0.000000</span> <span class='integer'>0.000000</span> <span class='integer'>1.000000</span> <span class='integer'>0.000000</span>
<span class='integer'>0.000000</span> <span class='integer'>1.000000</span> <span class='integer'>0.000000</span> <span class='integer'>0.000000</span>
-<span class='integer'>88.696747</span> -<span class='integer'>245.951797</span> <span class='integer'>351.625824</span> <span class='integer'>1.000000</span></pre><!--pas2--></td></tr></table><span class='postcolor'><!--pas3-->

Wie schaut die denn dann in OpenGL aus??? :wub:

Au'revoir,
Aya~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jul 21, 2003 18:12 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Schau dir doch einfach mal oben die beiden Bilder an...wenn du's dann nicht hinkriegst, würd ich mir ernsthafte Gedanken machen.Schliesslich musst du ja nur eine Achse verändern.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jul 22, 2003 01:18 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
mh... in der Datei (*.x) steht die Matrix so drin:

<!--pas--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>Delphi-Source </td></tr><tr><td id='CODE'><!--pas1--><pre>-<span class='integer'>1.000000</span>,<span class='integer'>0.000000</span>,-<span class='integer'>0.000000</span>,<span class='integer'>0.000000</span>,-<span class='integer'>0.000000</span>,<span class='integer'>0.000000</span>,<span class='integer'>1.000000</span>,<span class='integer'>0.000000</span>,<span class='integer'>0.000000</span>,<span class='integer'>1.000000</span>,<span class='integer'>0.000000</span>,<span class='integer'>0.000000</span>,-<span class='integer'>88.696747</span>,-<span class='integer'>245.964798</span>,<span class='integer'>368.532135</span>,<span class='integer'>1.000000</span></pre><!--pas2--></td></tr></table><span class='postcolor'><!--pas3-->

Wie würdet ihr die jetzt in OpenGL darstellen???

so? ->
<!--pas--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>Delphi-Source </td></tr><tr><td id='CODE'><!--pas1--><pre>-<span class='integer'>1.000000</span>,-<span class='integer'>0.000000</span>,<span class='integer'>0.000000</span>,-<span class='integer'>88.696747</span>,
<span class='integer'>0.000000</span>,<span class='integer'>0.000000</span>,<span class='integer'>1.000000</span>,-<span class='integer'>245.964798</span>,
-<span class='integer'>0.000000</span>,<span class='integer'>1.000000</span>,<span class='integer'>0.000000</span>,<span class='integer'>368.532135</span>,
<span class='integer'>0.000000</span>,<span class='integer'>0.000000</span>,<span class='integer'>0.000000</span>,<span class='integer'>1.000000</span></pre><!--pas2--></td></tr></table><span class='postcolor'><!--pas3-->

und dann aus dem 368.532135 nen -368.532135 machen?

Irgendwas muß da noch falsch dran sein.. (die 1en in der 2ten und 3ten Zeile sind auch komisch..), denn es wird total falsch dargestellt wenn ich die Matrix anwende.. :(

Au'revoir,
Aya~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jul 22, 2003 10:29 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Multiplizier die Matrix aus DX mit folgenden Matrix:
Code:
  1.  
  2. 1 &nbsp;0 &nbsp; 0 &nbsp;0
  3. 0 &nbsp;1 &nbsp; 0 &nbsp;0
  4. 0 &nbsp;0 -1 &nbsp;0
  5. 0 &nbsp;0 &nbsp; 0 &nbsp; 1
  6.  


Dadurch wird dann an der Z Ebene gespiegelt.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jul 22, 2003 15:16 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Hi,

mh.. so hatte ich es schon... dann scheint das problem doch noch woanders zu liegen.. :(

Hat sich schonmal jemand mit den X-Dateien ausseinander gesetzt???
Alle Frames mit ChildFrames etc eingelesen.. wenn ich alles ohne irgendwelche Matritzen zeichne, klappt es auch...

Nur, wenn die Datei z.B. so aufgebaut ist:

<!--pas--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>Delphi-Source </td></tr><tr><td id='CODE'><!--pas1--><pre>Frame A
- Frame B
- Frame C
- Frame D
- Frame E
- Frame G</pre><!--pas2--></td></tr></table><span class='postcolor'><!--pas3-->

Also Frame A hat 3 Childs, Frame C auch nochmal 2...
Wenn ich nun also Frame D verschieben würde, würde das alle anderen Frames unverändert lassen... aber wenn ich Frame A verändere, würden alle ChildFrames mit verändert werden + da Frame C verändert wird auch die Childs von dem etc bla bla...

Jetzt hat ja jedes Frame seine eigene Matrix... Wenn jetzt Frame E gerendert wird, multipliziere ich die FrameC-Matrix zu der aktuellen WorldMatrix, dann auf die entstandene Matrix multiplizier ich die FrameC-Matrix und darauf dann noch die FrameA-Matrix... ja??

oder geh ich da an die logik grad falsch ran?? *guckt unsicher*

Au'revoir,
Aya~

PS: Die Animations Matrizen erstmal ausser acht gelassen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jul 22, 2003 15:19 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Vielleicht hast du die Matrizen in der falschen Reihenfolge multipliziert. Probier mal die Reihenfolge umzudrehen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jul 22, 2003 15:29 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Hi,

mh.. hab's grad versucht, hat nix geholfen :(

Ob ich die in dieser Reihenfolge mache:

Frame A -> Frame C -> Frame E

oder

Frame E -> Frame C -> Frame A

das ergebniss sieht "gleich" aus.. (halt totales durcheinander beides)

Au'revoir,
Aya~


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 14 Beiträge ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 11 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.019s | 16 Queries | GZIP : On ]