Autor Thema: DirectX  (Gelesen 14376 mal)

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« am: 30. June 2005, 16:17 »
Ein Vorweg, es braucht keiner sagen "Nimm OpenGL, das ist besser weil kostenlos etc"
Ich progge nur für Win, und da kann ich mir sparen auf Multiplattformzeug zu schauen, ausserdem hab ich mich mit OGL eh schon beschäftigt, jetzt ist DX dran.
Ich hoffe irgendjemand hat sich mal mit DX befasst hier.
Problem: Äusserst seltsame Arbeitsvergeigerung bei den Matrizen (D3DX-Funktionen)
Code: void InitMatrices()
{
    D3DXMATRIXA16 matWorld;   
    D3DXMatrixRotationY(&matWorld,(timeGetTime()%400)/400.f);
    D3DDevice->SetTransform(D3DTS_WORLD,&matWorld);
}

Wenn ich D3DXMatrixRotationY... auskommentiere erscheint zumindest ein Fenster (leer) so wie es sein soll, nicht auskommentiert passiert genau garnichts. Das seltsame dabei ist, ich rufe die Funktion noch nichtmal auf...
Ich benutze Dev-C++ 4.9.9.0 mit MingW, wenn ich die Fehlersuchenfunktionen nutze zeigt er mir was von Segementation Fault an, hab nur keine Ahnung wieso.
Vielleicht hat ja jemand nen Schimmer, danke im Vorraus.
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

TeeJay

  • Beiträge: 630
    • Profil anzeigen
    • http://www.jay-code.de
Gespeichert
« Antwort #1 am: 30. June 2005, 17:47 »
Was meinst du denn damit es passiert "garnichts"?
Kein Fenster oder wie?
----------------------
Redakteur bei LowLevel

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #2 am: 30. June 2005, 17:49 »
Genau, weder Fenster noch Fehlermeldung, gar nichts eben.
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

GhostCoder

  • Beiträge: 187
    • Profil anzeigen
Gespeichert
« Antwort #3 am: 30. June 2005, 17:57 »
Hab zwar keine große Ahnung von D3D, aber musst du nicht erst die Einheitsmatrix laden?
Gut, wird wohl kaum was mit nem Segfault zutun haben,aber naja :)

Gruß GhostCoder
A man, a legend!

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #4 am: 30. June 2005, 18:02 »
Ich dachte eigentlich, dass diese Rotationsfunktion eine Rotationsmatrix erstellt, mit der dann alle Vertices Multipliziert werden um den Transformierten Vertex zu erhalten.
Aber selbst wenn...ich muss die InitMatrices-Funktion ja nichtmal aufrufen damit er "abstürzt" also dürfte das doch egal sein.
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #5 am: 30. June 2005, 19:57 »
Also ich habs jetzt zum Funktionieren gebracht. Statt D3DXMATRIX16A vervwende ich jetzt D3DXMATRIX, da macht er keine Probleme mehr, weiss der Teufel warum.
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

Zoddy

  • Beiträge: 2
    • Profil anzeigen
Gespeichert
« Antwort #6 am: 01. July 2005, 16:38 »
http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/directx9_c_dec_2004/directx/graphics/reference/d3dx/structures/d3dxmatrixa16.asp


probier's mal damit, da stehen eine menge probleme warum es bei dir nicht funktionieren könnte. auch wenn ich microsoft nicht besonders mag, aber die msdn ist was tolles =D...

Dingsi

  • Beiträge: 29
    • Profil anzeigen
Gespeichert
« Antwort #7 am: 01. July 2005, 17:17 »
Nimm OpenGL, das ist besser.

stultus

  • Beiträge: 486
    • Profil anzeigen
Gespeichert
« Antwort #8 am: 01. July 2005, 17:33 »
Dingsi, schau dir mal die Erste Zeile von Roshl's erstem Posting dieser Thread an, ich glaube da steht
Zitat
Ein Vorweg, es braucht keiner sagen "Nimm OpenGL, das ist besser weil kostenlos etc"
MSN: planetconquestdm@hotmail.de
ICQ: 190-084-185

... Wayne?

Legend

  • Beiträge: 635
    • Profil anzeigen
    • http://os.joachimnock.de
Gespeichert
« Antwort #9 am: 01. July 2005, 20:18 »
Zitat von: Dingsi
Nimm OpenGL, das ist besser.

Ganz abgesehen davon, das das eine sehr relative Aussage ist.
Wenn man nur unter Windows programmieren (wie es oben auch Stand) will, ist es schnell gar nicht mehr besser. (Meiner Meinung nach)
*post*

Golum

  • Beiträge: 96
    • Profil anzeigen
Gespeichert
« Antwort #10 am: 01. July 2005, 23:07 »
Die Frage ist ob du nur weil du Windows benutzt es den anderen schwer machen willst es für Linux-User zugänglich zu machen  :D

Wenn das Programm nur für dich ist ist es wohl geschmackssache ob DX oder OGL  8)

Dingsi

  • Beiträge: 29
    • Profil anzeigen
Gespeichert
« Antwort #11 am: 01. July 2005, 23:54 »
Mein Post sollte übrigens ganz doll witzig sein, aber das haben wohl ein paar Leute verplant..

TeeJay

  • Beiträge: 630
    • Profil anzeigen
    • http://www.jay-code.de
Gespeichert
« Antwort #12 am: 02. July 2005, 01:16 »
Warum zum Teufel muss eigentlich JEDER scheiß Post mit OT zugespammt werden? Man sollte Foren abschaffen. Ich finds ganz ehrlich zum kotzen, das man sich durch Posts immer durch zig tausend zeilen nutzlosen Spam wühlen muss, um an die vernünftigen Posts ranzukommen.....

Kann man das denn nicht einfach mal abstellen?
----------------------
Redakteur bei LowLevel

joachim_neu

  • Beiträge: 1 228
    • Profil anzeigen
    • http://www.joachim-neu.de
Gespeichert
« Antwort #13 am: 02. July 2005, 09:25 »
Doch, Profil und dann das Häckchen bei "Spamming" weg. ;)

Ich finde, man sollte hier nicht jedes Nutzen von nicht-Linux-kompatiblem gleich als "Angriff" gegen die Linuxgemeinde sehen. DirectX ist für Windows konzepiert und von Microsoft gebaut. Die werden Ihr Betriebssystem wohl am besten kennen, weshalb ich mal so sagen würde, dass DirectX das beste für Windows ist von der Performance her.
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de

System: 256 RAM, GeForce 2 MX 400, AMD Athlon XP 1600+, Windows XP, 1x Diskette, 1x DVD-ROM, 1x CD-R(W) Brenner,...

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #14 am: 02. July 2005, 10:12 »
Und genau wie bei TJ mit seiner Bomberman-Geschichte, dient bei mir das ganze dem Erlernen der Windows-Programmierung und der von DX. Also meiner Meinung nach ost OGL sinnlos um die DX Programmierung zu erlernen...
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

Another Stupid Coder

  • Beiträge: 749
    • Profil anzeigen
Gespeichert
« Antwort #15 am: 02. July 2005, 18:40 »
1. Jeder soll benutzen, was er braucht und was er will.

2. Linuxuser sind um nichts besser als Windowsuser (ich bin selbst 3/4 Linuxuser, 1/4 BSDler) denn für die gibt es nur "Windows = Schlecht, Linux = Gut" für Appler gilt in der Regel das Selbe...hey, es ist immer noch die inviduelle Entscheidung eines jeden was er benutzt...Linux ist ein Kernel der nicht mal schlecht ist, aber SuSE finde ich z.B. grottenschlecht. es gibt auch noch sehr viele andere brauchbare systeme -_-

Tut mir leid, dass auch ich jetzt spammte aber Topic is ja wohl geklärt oder? ansonsten könnt ihr den Post löschen.

Zoddy

  • Beiträge: 2
    • Profil anzeigen
Gespeichert
« Antwort #16 am: 04. July 2005, 11:58 »
wobei ich auch sagen muss, das dx wesentlich weniger kompliziert als ogl ist. klar, wunderschön unter c++ ist es nicht damit zu proggen, aber in meinen augen bei weitem nicht so schlimm wie in ogl.

ich bin für dx unter linux, aber das wird wohl ein traum bleiben ;)...

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #17 am: 04. July 2005, 20:02 »
Ich find OGL übersichtlicher, man kann direkt Dreiecke Zeichnen ohne erst alles in Arrays sammeln zu müssen etc, geht bei OGL auch mit Displaylists, sieht dort aber einfacher aus. DX bietet allerdings bessere Hardwarebeschleunigung, bei OGL hab ich das nie hinbekommen da liefs immer Software.
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

Legend

  • Beiträge: 635
    • Profil anzeigen
    • http://os.joachimnock.de
Gespeichert
« Antwort #18 am: 04. July 2005, 22:36 »
Es stellt sich mir die Frage, wie gut Displaylisten noch beschleunigt werden.
Sinnvoll anwenden kann man die ja sowieso nur fuer statische Sachen, im Gegensatz zu den Arrays, die man auch fuer dynamische Sachen schnell halten kann. Aber auch fuer statische Geometrie stellt sich die Frage wo die hingepackt werden (GPU RAM, AGP RAM, System Memory?)
Und "neuere Techniken" wie Point Sprites sind wohl auch so eine Sache.
Ich habe das Gefuehl auch mit Display Listen kann man nicht mehr ganz die richtige Effizienz ueber die immediate Funktionen erreichen.
Weiss dazu jemand was genaues?
Vertex Arrays unter OpenGL sind leider grausig geworden, soviele Extensions die miteinander agieren ...
*post*

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #19 am: 05. July 2005, 15:34 »
Meiner Meinung nach ist dieser Rendermethode eh überholt.
Raytracing wird kommen, auch mit Hardwareunterstützung, ein Deutscher hat dafür schon eine gebaut die Realtime-Raytracing hinbekommen hat. Hab da Screenies gesehen, echt top wenn das wirklich Realtime war.
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

 

Einloggen