DirectX vs OpenGL



  • Ach Leute,

    dieses Gezänke bringt doch nichts.
    Letztendlich nimmt doch sowieso jeder die API, die ihm am sympathischsten ist.

    Gearscht sind nur die Leute, die durch eine Projektarbeit zur Arbeit mit OGl genötigt werden, wo sie doch DX sooo lieeben. 😡

    Naja, und für die Eintagsfliegen ist es erst recht egal.

    PS: Noch jemand Hunger auf Pasta gekriegt? 😉



  • Wieso Pasta?



  • Krieg ich immer Hunger drauf, wenn ich irgendwo was von reinpasten lese.
    http://de.wikipedia.org/wiki/Appetenzverhalten



  • ChockoCookie schrieb:

    Alle richtigen spiele haben sowieso eigene Modelformate.

    Du hast keine Ahnung.

    ChockoCookie schrieb:

    wiegt der Code für nen kleinen Modelloader eigentlich den DX initcode auf

    Du hast keine Ahnung.

    ChockoCookie schrieb:

    Wieso nur für ein BS schreiben, wenn man mit OpenGL gleich ein zweites, ach sorry, unsinn, so ziemlich jedes Betriebssystem mit Graphikmöglichkeit dazubekommt?

    Du hast keine Ahnung.

    xBlackKnightx schrieb:

    aber solche *.x einfach reinladen wären dann "Ghost" also nicht anfassbar.

    Du hast keine Ahnung.

    Bye, TGGC (Wähle deine Helden)



  • TGGC schrieb:

    ChockoCookie schrieb:

    Wieso nur für ein BS schreiben, wenn man mit OpenGL gleich ein zweites, ach sorry, unsinn, so ziemlich jedes Betriebssystem mit Graphikmöglichkeit dazubekommt?

    Du hast keine Ahnung.

    *lol*
    Du hast keine Ahnung.

    Ist schon lustig wie dieser sinnlose Thread jede Woche erneut von 0 weg ausgefochten wird 🙂

    Übrigens, ATI ist blöd, nvidia ist cool. :p



  • durito schrieb:

    Übrigens, ATI ist blöd, nvidia ist cool. :p

    Du hast keine Ahnung.



  • ChockoCookie schrieb:

    1. Also Fazit:
      Das erste Mesh ist in DX einfacher (wiegt der Code für nen kleinen Modelloader eigentlich den DX initcode auf).

    Keine Ahnung was für ein DX Du so benutzt... 😕

    Unter Windows mach' ich (ohne Fehlerbehandlung):

    m_lpD3D = Direct3DCreate9(D3D_SDK_VERSION);
    
    D3DPRESENT_PARAMETERS PParams;
    ZeroMemory(&PParams, sizeof(PParams));
    
    PParams.SwapEffect	= D3DSWAPEFFECT_DISCARD;
    PParams.hDeviceWindow	= hWnd;
    PParams.Windowed	= true;
    
    PParams.BackBufferWidth		= 800;
    PParams.BackBufferHeight	= 600;
    PParams.BackBufferFormat	= D3DFMT_A8R8G8B8;
    
    m_lpD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &PParams, &m_lpD3DDevice);
    

    und kann dann rendern.

    Für OpenGL mach' ich:

    PIXELFORMATDESCRIPTOR pfd;
    int iFormat;
    
    *hDC = GetDC(hWnd);
    
    ZeroMemory(&pfd, sizeof (pfd));
    pfd.nSize = sizeof(pfd);
    pfd.nVersion = 1;
    pfd.dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER;
    pfd.iPixelType = PFD_TYPE_RGBA;
    pfd.cColorBits = 24;
    pfd.cDepthBits = 16;
    pfd.iLayerType = PFD_MAIN_PLANE;
    
    iFormat = ChoosePixelFormat(*hDC, &pfd);
    SetPixelFormat(*hDC, iFormat, &pfd);
    
    *hRC = wglCreateContext(*hDC);
    wglMakeCurrent(*hDC, *hRC);
    

    Ich kann da jetzt nicht _SOOO_ den Unterschied sehen (ausser daß die GL-Initialisierung noch 4 Zeilen länger ist 😉 )... ➡ 🙄



  • DX9 hat aber lange Wörter!



  • ROFL - DirectX hat generell den längeren... 🤡



  • Sgt. Nukem schrieb:

    ROFL - DirectX hat generell den längeren... 🤡

    😃



  • ROFL 😃

    Killerargument gefunden. Ich geb auf. 🤡



  • durito schrieb:

    Übrigens, ATI ist blöd, nvidia ist cool. :p

    Stimmt. nVidia bringt funktionierende Treiber für Linux raus.



  • TGGC schrieb:

    ...
    *heisse Luft*
    ...

    LOL, du bist doof 😃
    Du tust ja nicht mal so, als würdest du stichhaltige Argumente bringen und verdirbst damit das Flamewar - Erlebnis für alle anderen. *pfui pfui*
    und du hast keine Ahnung 🙂

    Sgt. Nukem schrieb:

    Keine Ahnung was für ein DX Du so benutzt... 😕

    Normalerweise gar keines ...

    Und mit dem Code den du gepostet hast, initialisierst du nicht OpenGL, sondern das Windowing-System, in diesem Fall WGL.
    Aber die Länge des typischen init-Codes ist sowieso nur für Kinder interessant.
    zB solche, die sich freuen, dass man bei DX ein Mesh mit einem Functioncall laden kann ...



  • ChockoCookie schrieb:

    Und mit dem Code den du gepostet hast, initialisierst du nicht OpenGL, sondern das Windowing-System, in diesem Fall WGL.

    Hahaha... sehr witzig! 😃

    Klar, ich kann ein paar ganz abstrakte multiplattformfähige Schinken wie OpenGL proggen, und dann alles an Anwendungscode, den ich brauche, um diese "abstrakte Blackbox" an ein real existierendes Windowing-System zu binden (Windows-API) nach dem Motto "Hat ja mit OpenGL nix zu tun! Ist der Init-Code für was ganz anderes!" abhaken... 😃 👍

    ChockoCookie schrieb:

    Aber die Länge des typischen init-Codes ist sowieso nur für Kinder interessant.

    Mhhhh... lass mich überlegen... Wer interessierte sich als Einziger für den Init-Code?!?
    Achja... das war ChockoCookie!! 🤡 👍

    ChockoCookie schrieb:

    zB solche, die sich freuen, dass man bei DX ein Mesh mit einem Functioncall laden kann ...

    Du solltest wirklich auf Embedded-System in Assembler (oder direkt in HEX-Code) ein paar Grafik-Sachen machen.

    Diese Function-Calls die einem die ganze Arbeit abnehmen, wie z.B. glVertex3f(1.0f, 5.6f, -0.5f); sind ja nun wirklich für Kinder! 🕶 👍



  • Aufpassen, er bastelt grade seine eigenen graphics API - NOCH LÄNGER 😮 😮
    PIMP

    cya
    liquid



  • Sgt. Nukem schrieb:

    Klar, ich kann ein paar ganz abstrakte multiplattformfähige Schinken wie OpenGL proggen, und dann alles an Anwendungscode, den ich brauche, um diese "abstrakte Blackbox" an ein real existierendes Windowing-System zu binden (Windows-API) nach dem Motto "Hat ja mit OpenGL nix zu tun! Ist der Init-Code für was ganz anderes!" abhaken...

    Genau 😃
    Man beurteilt C++ ja auch nicht nach der Bedienbarkeit der Compiler

    Sgt. Nukem schrieb:

    Mhhhh... lass mich überlegen... Wer interessierte sich als Einziger für den Init-Code?!?
    Achja... das war ChockoCookie!!

    Ach Unsinn!
    Alle haben es gedacht, ich habe es nur ausgesprochen. 🙂

    Sgt. Nukem schrieb:

    Du solltest wirklich auf Embedded-System in Assembler (oder direkt in HEX-Code) ein paar Grafik-Sachen machen.

    In so einer beschissenen Lage nützt einem eine Funktion für ein Mesh auch nichts mehr .. 🤡

    Sgt. Nukem schrieb:

    Diese Function-Calls die einem die ganze Arbeit abnehmen, wie z.B. glVertex3f(1.0f, 5.6f, -0.5f); sind ja nun wirklich für Kinder!

    Böte die OpenGL API Mittel sie nachzuprogrammieren, weinte ich ihnen keine Träne nach. 😃 :p

    "Wir brauchen keine eigenen Funktionen zu schreiben. DX hat sooooo viele Funktionen dabei, da macht man ein ganzes Spiel mit < 70 Zeilen" ROFL

    @ LiquidAcid: wow, der Typ ist mein neuer Held. EIn Fall für ➡ TEEEE GEEE GEEE CEEEEEHEEEE !!!!!

    PS: Wow, ich bin grad auf die Smiley-begrenzung gestossen. LOL
    Nukem, wie gehst du eigentlich mit dieser Beschneidung deines Freiraums um?



  • Sgt. Nukem schrieb:

    ChockoCookie schrieb:

    1. Also Fazit:
      Das erste Mesh ist in DX einfacher (wiegt der Code für nen kleinen Modelloader eigentlich den DX initcode auf).

    Keine Ahnung was für ein DX Du so benutzt... 😕

    Unter Windows mach' ich (ohne Fehlerbehandlung):

    m_lpD3D = Direct3DCreate9(D3D_SDK_VERSION);
    
    D3DPRESENT_PARAMETERS PParams;
    ZeroMemory(&PParams, sizeof(PParams));
    
    PParams.SwapEffect	= D3DSWAPEFFECT_DISCARD;
    PParams.hDeviceWindow	= hWnd;
    PParams.Windowed	= true;
    
    PParams.BackBufferWidth		= 800;
    PParams.BackBufferHeight	= 600;
    PParams.BackBufferFormat	= D3DFMT_A8R8G8B8;
    
    m_lpD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &PParams, &m_lpD3DDevice);
    

    und kann dann rendern.

    Daaaaaaaaanke für den Code, mein Buch erklärt das nicht so richtig und nutzt solche scheiß mitgelieferten Hilfsfunktionen, die saueng mit der WinAPI, also leider für mich unlesbar, verknüpft sind.
    ENDLICH hab ich meine Device-Schnittstelle erstellt: ➡ 👍 😃 🙂 😃 👍



  • //EDIT: Doppelt?



  • LiquidAcid schrieb:

    Aufpassen, er bastelt grade seine eigenen graphics API - NOCH LÄNGER 😮 😮
    PIMP

    cya
    liquid

    wie klein die welt doch ist



  • ChockoCookie schrieb:

    Genau 😃
    Man beurteilt C++ ja auch nicht nach der Bedienbarkeit der Compiler

    Ach nein?!?

    Gut, genau genommen musst Du DirectX auch nicht initialisieren.
    Sobald Du Dein Render-Device hast, kann es direkt los gehen... 🤡 👍

    ChockoCookie schrieb:

    PS: Wow, ich bin grad auf die Smiley-begrenzung gestossen. LOL
    Nukem, wie gehst du eigentlich mit dieser Beschneidung deines Freiraums um?

    Tja... ich werde dann immer manisch depressiv und schließe mich so lange im Keller ein, bis meine Freundin voller Sorge an die Türe klopft, wo ich denn wär'... 😞


Anmelden zum Antworten