Rascher Einstieg in 3D-Programmierung



  • XP^ schrieb:

    DirectX vs. OpenGL:

    90% der 3D-Spiele wurden mit DirectX geschrieben(&c++)
    10% der Programme/Spiele wurden mit OpenGL geschrieben(&c++).

    OpenGL bietet mehr funktionen, ist plattformunabhängig aber hat nen schwierigeren Grad.
    AutoCAD wurde als Beispiel mit OpenGL geschrieben.

    DirectX hingegen ist glaube ich nur für Windows(keine Ahnung, hab ich in einem anderem Forum gelesen), ist aber dafür einfacher zu erlernen.

    P.S.: ich weiß,dass OpenGL keine Programmiersprache ist, ich sag es nur immer 😕
    P.S.: OpenGL = Grafikbibliothek xD

    Sowohl deine Prozentangaben als auch deine Aussage bezüglich des Schwierigkeitsgrades sind völlig aus der Luft gegriffen. Eigentlich ist die gängige Meinung die, dass in Direct3D der Einstieg schwieriger ist (vereinfacht gesagt der Code bis zum 1. drehenden Dreieck), viele fortgeschrittene Dinge dann jedoch leichter fallen.
    Aber da die Konzepte in beiden identisch sind, ist die Wahl im Grunde nur noch geschmackssache.



  • Blue-Tiger schrieb:

    XP^ schrieb:

    DirectX vs. OpenGL:

    90% der 3D-Spiele wurden mit DirectX geschrieben(&c++)
    10% der Programme/Spiele wurden mit OpenGL geschrieben(&c++).

    Darum gehts hier nicht. Es geht drum was man in 1 Jahr leichter erlernen kann.

    Die API ist doch ziemlich egal. Es geht ja nicht darum, das man 1 Jahr lang die API lernt. Man lernt 1 Jahr lang welche Theorien und Dinge hinter diesen 3D-Geschichten stecken. Ob man dafür OpenGL oder Direct3D nimmt ist doch furz egal. Man legt sich einfach auf etwas fest, da mag man noch so extrem dämliche Argumente ranziehen wie, welche API wie viele Spiele nutzen (was soll das überhaupt aussagen?). Aber die API ist doch wirklich scheiß egal und die API zu meistern dauert wohl höchstens 2 Wochen. Schwierig ist das sinnvolle zusammen bringen und zu verstehen.



  • @rüdiger: Tendentiell unterschreib ich deine Aussage, aber eine Frage hab ich gerade dennoch: wie viel hast DU schon mit DX und OGL gemacht?



  • OpenGL war für mich einfacher. Und wenn John Carmack OpenGL nimmt, dann nehm ich das auch. Warum sollen die Spiele nur unter Windows laufen?


  • Mod

    xBlackKnightx schrieb:

    OpenGL war für mich einfacher. Und wenn John Carmack OpenGL nimmt, dann nehm ich das auch. Warum sollen die Spiele nur unter Windows laufen?

    JC nimmt nun aber d3d und er ist damit zufrieden und behauptet selbst kein verfechter von ogl/d3d zu sein, sondern dass er nimmt was gerade praktisch ist.



  • Mr_Funstick schrieb:

    inp schrieb:

    die d3d api ist eher objektorientiert gehalten,
    und opengl eher prozedural.

    Ja aber ist denn nicht der modernere Ansatz die Objektorientiertheit? Sogar die neue PHP-Version hat auf OOP umgestellt. Warum ist dann OGL im akademischen bereich beliebter! Hat es irgendwelche Vorteile?

    MFG Mr_Funstick

    opengl ist eine freie schnittstelle, d3d microsoft lastig.
    wobei beide das selbe machen (eines in grün, eins in blau).

    eins sag ich dir gleich, wennst was gscheites coden willst musst sowieso eine abstraktionsschicht schaffen, um opengl und d3d als renderer zu verwenden (austauschbar zur laufzeit zb).

    aber so zum einlernen kannst dir eins von beiden aussuchen ( wie gesagt, das selbe in grün/blau)



  • this->that schrieb:

    @rüdiger: Tendentiell unterschreib ich deine Aussage, aber eine Frage hab ich gerade dennoch: wie viel hast DU schon mit DX und OGL gemacht?

    Ich hab nur ab und an mal mit OGL gespielt. Habe keinen Rechner der DX kann :p (Ich habe mir einfach mal die Freiheit rausgenommen und bin davon ausgegangen, das man mit DX auch bunte bildchen erstellen kann, wenn du darauf hinaus willst)



  • rüdiger schrieb:

    this->that schrieb:

    @rüdiger: Tendentiell unterschreib ich deine Aussage, aber eine Frage hab ich gerade dennoch: wie viel hast DU schon mit DX und OGL gemacht?

    Ich hab nur ab und an mal mit OGL gespielt. Habe keinen Rechner der DX kann :p (Ich habe mir einfach mal die Freiheit rausgenommen und bin davon ausgegangen, das man mit DX auch bunte bildchen erstellen kann, wenn du darauf hinaus willst)

    Anhand deiner Wortwahl und der Tatsache das du etwas idealisiert hast konnte ich schließen, dass du wenig bis garkeine praktische Erfahrung mit 3D-Programmierung hast. Ich kann dir versichern: Selbst wenn du alle Konzepte theoretisch beherrscht, wirst du immernoch ein bißchen länger als 2 Wochen brauchen um solche komplexen APIs zu meistern.
    Sollte jetzt kein Flame sein... naja, du weißt schon wie ichs gemeint hab. 🙂



  • @this->that
    Muss man die komplette API meistern?

    Selbst wenn macht das meistern der API wohl eher den kleineren Teil aus.


  • Mod

    rüdiger schrieb:

    @this->that
    Muss man die komplette API meistern?

    nen grossteil muss man koennen, weil es nunmal komplexe zusammenhaenge gibt die du ueberblicken musst, ansonsten wirst du ziemlichen misst produzieren, auch falls du es schaffen solltest irgendwie ne graphik auf den bildschirm zu bringen.

    Selbst wenn macht das meistern der API wohl eher den kleineren Teil aus.

    das stimmt, aber die api ist immer ein teil des groesseren und so wie du c++ koennen musst, so gut musst du die API verstehen/koennen (und oft noch die hardware die dahinter haengt).



  • naja einen Vorteil hat DX schon, es gibt die *.x files für 3D Objekte, in Open GL muss man sich selbst ein Format basteln. Und wie man sich einen Exporter für ein 3D Modeller bastelt, muss man dann auch erst lernen. Und DX läuft nicht nur auf Windows, sondern auch auf der X-Box (is ja auch von Microsoft). Aber ich bin kein verfechter von DX, meine meinung ist, dass man möglicht unabhähngig (und das von Microsoft) bleiben soll, ich will nicht, dass irgendjemand, der meine Software gut findete auch gezwungen ist irgendetwas von Microsoft zu besitzen,



  • rapso schrieb:

    xBlackKnightx schrieb:

    OpenGL war für mich einfacher. Und wenn John Carmack OpenGL nimmt, dann nehm ich das auch. Warum sollen die Spiele nur unter Windows laufen?

    JC nimmt nun aber d3d und er ist damit zufrieden und behauptet selbst kein verfechter von ogl/d3d zu sein, sondern dass er nimmt was gerade praktisch ist.

    Quelle? Bisher ist schließlich noch jede id-Software-Engine OpenGL gewesen.



  • Und bisher hat er sich auch immer gegen DirectX 10 ausgesprochen. 🕶


  • Mod

    .filmor schrieb:

    rapso schrieb:

    xBlackKnightx schrieb:

    OpenGL war für mich einfacher. Und wenn John Carmack OpenGL nimmt, dann nehm ich das auch. Warum sollen die Spiele nur unter Windows laufen?

    JC nimmt nun aber d3d und er ist damit zufrieden und behauptet selbst kein verfechter von ogl/d3d zu sein, sondern dass er nimmt was gerade praktisch ist.

    Quelle? Bisher ist schließlich noch jede id-Software-Engine OpenGL gewesen.

    wie glaubst du kann es sonst sein dass deren aktuelle engine die vorgestern gezeigt wurde auf mac,pac,ps3,xbox360 laufen wird, wenn er kein d3d9 benutzen wuerde?

    sich auf eine api festzuschreiben ist wie nur auf einen arm und falls man die andere api ausschliesst, dann kann man sich ja auch ein arm abhacken.

    zum lernen muss man sich mal von beiden apis mal ein tutorial anschauen und sehen was einem besser liegt und damit dann zuerst lernen und danach lernt man die zweite api. wenn man beides supergut kennen will, schreibt man sich nen wrapper.



  • Naja, völlig unabhängig davon, ob id-Software auch DirectX verwendet oder nicht. Auch auf der Xbox360 wird es wohl OpenGL geben, z.B. von einem 3rd-Party. OpenGL gibts auf jeder Konsole... selbst auf der Dreamcast konnte man eine OpenGL-Implementierung bei 3rd-Parties einkaufen, wenn einem Katana von SEGA oder Direct3D von WindowsCE nicht gepasst hat.

    Aber zurück zu id-Software: ich bin der Meinung, mal in einem Interview gelesen zu haben, das id zukünftig auch auf DX setzen wird.



  • Nicht, dass mich dieser Thread sonst interessieren würde, aber da id tech 5 - wie bereits gesagt - auch Macs unterstützen wird, kann es auf keinen Fall DX-only sein.


  • Mod

    Artchi schrieb:

    Naja, völlig unabhängig davon, ob id-Software auch DirectX verwendet oder nicht. Auch auf der Xbox360 wird es wohl OpenGL geben, z.B. von einem 3rd-Party.

    ganz sicher nicht, MS wird das wohl nicht zulassen und ohne deren lizens bekommst du dein SDK um das zu schreiben.

    OpenGL gibts auf jeder Konsole... selbst auf der Dreamcast konnte man eine OpenGL-Implementierung bei 3rd-Parties einkaufen, wenn einem Katana von SEGA oder Direct3D von WindowsCE nicht gepasst hat.

    jo, nur ist opengl meist die quick&dirty api die man mal fuer nen schnellen port nutzt, ansonsten benutzt man meist die lowlevel api (gibt es auch auf jeder konsole ausser xbox360), weil man sich die arbeit machen will die konsole perfekt auszunutzen.

    Aber zurück zu id-Software: ich bin der Meinung, mal in einem Interview gelesen zu haben, das id zukünftig auch auf DX setzen wird.

    fuer die die zu lame sind google zu nutzen

    Carmack schrieb:

    No, because the DX9 stuff—actually, DX9 is really quite a good API [application programming interface] level. Even with the D3D [Direct3D] side of things, where I know I have a long history of people thinking I’m antagonistic against it. Microsoft has done a very, very good job of sensibly evolving it at each step--they’re not worried about breaking backwards compatibility--and it’s a pretty clean API. I especially like the work I’m doing on the 360, and it’s probably the best graphics API as far as a sensibly designed thing that I’ve worked with.



  • Auf dieser Apple Konferenz hat JC eine Demo des neuen id-Projektes vorgeführt, das lief auf einem Mac. Also wird er wohl zumindest beides parallel machen. Wobei ich mich frage ob so ein Speed-Freak wie er überhaupt einen Abstraktionslayer nehmen würde oder alles von Hand portiert.

    Krux schrieb:

    Und DX läuft nicht nur auf Windows, sondern auch auf der X-Box (is ja auch von Microsoft).

    Wow, das ist natürlich hyperportabel :p (Ok, auch wenn man sich für die X-Box für einige 10.000$ eine Lizenz und die Tools kaufen muss..) Aber auf der XBox läuft doch auch ein Windows-Kernel, wenn auch abgespeckt! :p


  • Mod

    rüdiger schrieb:

    Auf dieser Apple Konferenz hat JC eine Demo des neuen id-Projektes vorgeführt, das lief auf einem Mac. Also wird er wohl zumindest beides parallel machen. Wobei ich mich frage ob so ein Speed-Freak wie er überhaupt einen Abstraktionslayer nehmen würde oder alles von Hand portiert.

    da muss man JC zurechnen dass er nicht so ein idiot ist der einfach drauf los optimiert, sondern an den stellen an denen es noetig ist, sieht man sehr gut z.b. im quake3 source, die kritischen stellen sind gut geloest waehrend die unkritischen stellen oft einfach nur die stumpfversion sind. das ist wohl eine wichtige qualitaet eines ein-mann-teams. so wird er wohl auch den renderteil weder in assembler noch unnoetig doppelt schreiben, sondern konzentriert seine arbeit wohl auf die kritischen stellen.



  • Also gut, um wieder zum Thema zurückzukommen: Ich habe mich nun für DirectX und C++ entschieden. Jetzt gehts ans lernen. Ansi C beherrsche ich ja an und für sich also sollte C++ kein allzu großes Problem werden, besonders darum weil ich andere objektorientierte Sprachen beherrsche.

    Mein Problem ist jetzt DirectX: Wie kann ich am besten einsteigen? Um gute Lektüre werd ich wohl nicht rumkommen, aber welche? Es gibt viele Bücher, nur welches ist auch gut und für Einsteiger geeignet? Eventuelle Tutorials aus dem Net??

    Wäre toll wenn ihr mich auch hierbei wieder beraten könnt!

    MFG Mr_Funstick


Anmelden zum Antworten