DirectX???



  • Gruß,
    Ich fang zur Zeit mit Grafikprogrammierung in C++ (allegro) an.
    Jetzt würde mich mal interessieren was eigentlich DirectX ist und was es bewirkt.

    THX



  • The Microsoft DirectX software development kit (SDK) is your backstage pass to multimedia applications that sizzle. DirectX is a set of low-level application programming interfaces (APIs) for creating games and other high-performance multimedia applications. It includes support for high-performance 2-D and 3-D graphics, sound, and input.





  • Kann man auch selbst "DirectX" programmieren???
    Praktisch das man für seine eigenen Games auch ein eigenes DirectX verwendet.



  • DrakoXP schrieb:

    Kann man auch selbst "DirectX" programmieren???
    Praktisch das man für seine eigenen Games auch ein eigenes DirectX verwendet.

    Sicher, kannst ja mal nach software-rasterizer suchen, wenn du wissen willst, wie man von nem 3D-Objekt auf die Pixel die dir der Bildschirm zeigt kommt.

    Aber auf DirectX oder OpenGL zu verzichten bei der Spieleentwicklung ist unsinnig, da die Grafikkartenhersteller Treiber für diese beiden Standards entwickeln und du sonst hunderte verschiedener Versionen bräuchtest um möglichst viele Grafikkarten abzudecken.



  • Tricks of the 3D Game Programming Gurus | ISBN: 0672318350

    Hier bastelt der 'nen SW-Rasterizer. 💡



  • wenn du weniger seiten lesen willst - hol dir Cutting Edge 3D Game Development von John De Goes



  • Wobei LaMothe deutlich günstiger und 7 Jahre aktueller ist.
    Aber ich kenn' das andere Buch nicht, daher kein Kommentar. 🕶



  • DrakoXP schrieb:

    Kann man auch selbst "DirectX" programmieren???
    Praktisch das man für seine eigenen Games auch ein eigenes DirectX verwendet.

    Du bist heut echt lustig drauf ^^ lol



  • Hab ein Buch vor einer Weile gekauft , und ich muss sagen: DirectX ist SCHROTT!!!!! (liegt wohl Microsoft); Wenn man da eine Funktion aufruft , dann hat diese Funktion:
    1 : eine richtig besch*ssenen Namen , den sich sowieso keiner merken kann
    (zB: IDirect3DCreate9 oder so)
    2 : dann muss man _VIELE_ Argumente übergeben , von denen die Meisten einen sowieso nicht interessieren
    3 : DirectX ist _nicht_ Plattformübergreifend

    SO! Und OpenGL gibt es auf vielen Plattformen (Windwos , Linux , etc)

    Aber wenn jemand auf unnötige Kompliziertheit steht , dann ...



  • alex89ru schrieb:

    1 : eine richtig besch*ssenen Namen , den sich sowieso keiner merken kann
    (zB: IDirect3DCreate9 oder so)

    Diese Funktion gibt es gar nicht.
    'I' steht nämlich für (COM-)Interface. 🤡 👍

    Direct3DCreate9 kreiert ein COM-Objekt des Direct3D-Interfaces in der Version 9, und liefert es als Zeiger zurück.
    Keine Ahnung was daran kompliziert sein soll? 😕

    ID3DXRenderToEnvMap,
    ID3DXFont,
    ist doch alles einleuchtend vom Namen her?!? 😕


  • Mod

    ach kommt, über namen und styleguid von fremdapis muss man sich nun wirklich nicht aufregen...

    btw. hab beide bücher und beide sind eigentlich ziemlich gut, aber man merkt schon dass in beiden die schreiber leicht eigensinnig sind. de goes hat ein ein bissl besseres software design, dafür ist sein rasterizer nicht so featurereich.

    rapso->greets();



  • Sorry , hattest Recht mit Direct3DCreate9...(naja hab ja auch "IDirect3DCreate9 ODER SO" geschrieben ...sollte nur ein bsp sein , aber egal)...
    An rapso: stimmt schon dass man sich über Namen/styles nicht aufregen sollte , (ist ja auch Geschmackssache)aber etw einfachere Namen wären nicht schlecht..naja ist ja auch egal



  • Ich finds lustig, dass ihr APIs verwendet/nicht verwendet weil euch die Namen nicht passen hrhr

    @rapso: Ist es den lehrreich sowas mal gelesen zu haben? Oder eher sinnlos wenn man nicht gerade DirectX-Core-Developer werden will?

    MfG SideWinder


  • Mod

    es ist auf jedenfall interresant sowas zu lesen, die bücher geben einem grundlagen in manchen dingen, sind aber auf anderen gebieten, gerade wegen der eigensinnigkeit, nicht so gehalten, dass man weiß wie es z.b. in hardware apis abläuft. ich glaube la monthe war es, der projektionsmatrizen mit irgendeinem fragwürdigen argument ablehnt und stattdessen "per hand" und seiner meinung nach schneller polygone bearbeitet (könnte sein dass ich das auch mit nem anderen buch verwechsel,hier stapeln sich bücher über sowas 😉 ).

    meine persönlich meinung ist: an sich sollte jeder der selbst irgendwelche graphikfeatures implementiert, schonmal nen rasterizer schreiben/geschrieben haben der zu oGL bzw d3d kompatibel ist, egal wie langsam der ist, einfach nur um genau zu wissen was nach der projektionsmatrix vor sich geht. um das clipping, die interpolationen und damit entstehende artefakte zu verstehen, und auch um genug hintergrundwissen zu haben, um optimaler zu arbeiten und sachen besser abschätzen zu können. zudem versteht man dann automatisch den ganzen vorherigen teil der pipeline 😃

    rapso->greets();



  • alex89ru schrieb:

    Sorry , hattest Recht mit Direct3DCreate9...(naja hab ja auch "IDirect3DCreate9 ODER SO" geschrieben ...sollte nur ein bsp sein , aber egal)...
    An rapso: stimmt schon dass man sich über Namen/styles nicht aufregen sollte , (ist ja auch Geschmackssache)aber etw einfachere Namen wären nicht schlecht..naja ist ja auch egal

    Du meinst einfacher als

    void glGetTexLevelParameterfv(GLenum target,
                                  GLint level,
                                  GLenum pname,
                                  GLfloat *params)
    

    😕

    😉 :p



  • Das einzige was mich stört an OpenGL, das da keine Enums verwendet werden und diese Postfixe, zB fv.



  • ...zugegeben: der Name ist auch nicht ganz einfach zu merken 🙂 🙂 🙂


Anmelden zum Antworten