"3D-Engine"
-
hallo leute!
ich mal ne frage: Was ist am bequemsten zu programmieren, OpenGL oder DirectX???
Gibt es Vor- und Nachteile der Grafikmodi?Kann man sich mal irgendwo eine Engine anschauen? -> code (so quake 1 mäßig)
Ach noch ne frage: Wie kann ich denn eigentlich die Formate festlegen? (modeldateien, sound, level, usw...)
-
für mich ist directx momentan die bessere wahl, weil es ein moderneres, geupdateteres und vollkomeneres system ist als opengl. ich kenne opengl nicht gut, habe aber den eindruck, das es etwas zusammengeschustert ist und, so irgendwie, mit verschiedenen extensions "versucht" alles zu unterstützen. directx 9 ist einfach ein schönes gesamtsystem, das alles (mit nur einem einzigen dl) bereitstellt.
directx ist auch nicht schwer zu handhaben, um nicht zu sagen einfach. nur eine einzige sache ist meiner meinung nach sehr sehr wichtig (bei opengl ist das aber wahrscheinlich genauso):
man muss jemanden kennen, der einem eine einführung gibt, und zeigt, wie man mit dem sdk umzugehen hat. selbst erfahrene programmierer, die genau wissen was es heisst "zu programmieren" fällt es nicht immer leicht den einstieg SELBST zu finden. wenn man ihnen aber zeigt worauf es ankommt, dann ist es ein kinderspiel und wirklich keine zauberrei (das ist auch der grund, warum ich es für übertrieben halt, jemanden der ein buch über directx rausbringt gleich als programmiermeister zu preisen,
die sdk doku ist das beste "buch" das es über directx gibt; wenn man es ausdruckt)
den rest deiner fragen verstehe ich leider nicht.
was meinst du mit vorteile und welche grafikmodi auf was bezogen? grafikmodus ist grafikmodus und eine höhere auflösung verbessert die darstellungsqualität.
das mit den formaten ist auch nicht klar, was meinst du damit?
-
Hi !
Für mich ist OpenGL die bessere Wahl. Es ist ein wesentlich vollkommeneres System als Diect3D, es ist sogar so vollkommen dass sich die Spezifikationen seit Jahren nicht geändert haben. Neuere Funktionen werden einfach per Extension hinzugefügt. Praktisch !
Wer mit Direct3D (vorsicht : DirectX ist die gesamte API, also auch DirectPlay, DirectInput uvm) arbeitet, muss sich alle zwei Jahre beim Update auf die jeweils neuere Version neuen Code schreiben. Viele Sachen ändern sich im Detail, und wenn es nur eine Nummer nach den Interfacenamen ist.OpenGL ist ebenso wie Direct3D schwer zu handhaben - am Anfang. Wenn man sich mit beiden System aber mal auseinandergesetzt hat, sollten beide gleich leicht zu bedienen sein. Subjektiv (!) würde ich jedoch sagen OpenGL ist ein Stück einfach zu bedienen - und sei es nur aufgrund der verschiedenen Wrapperlibraries (clanlib, allegro, sdl um nur ein paar zu nennen), die, neben Input, Netzwerk und -teilweise- auch Soundfunktionen, auch Plattformunabhängigkeit bieten - ein nicht zu unterschätzender Vorteil in meinen Augen.
Das DirectX SDK ist spitze, auf jeden Fall ! Jedoch zum lernen imo nicht sehr gut geeignet. Gerade am Anfang, wenn man überhaupt keinen Plan von den 3D Basics hat (die nicht API abhängig sind) ist das SDK absoluter Müll, da es sich nicht an den absoluten Newbie richtet.
Schau dir einfach mal auf nehe.gamedev.net die Tutorials zu OpenGL an, für DirectX Tutorials müsstest du mal in der FAQ schauen
-
Original erstellt von KXII:
**den rest deiner fragen verstehe ich leider nicht.
was meinst du mit vorteile und welche grafikmodi auf was bezogen? grafikmodus ist grafikmodus und eine höhere auflösung verbessert die darstellungsqualität.
das mit den formaten ist auch nicht klar, was meinst du damit?**
Ich denk mal er meint mit Grafikmodi DX und OGL
-
Original erstellt von Headhunter:
Wer mit Direct3D (vorsicht : DirectX ist die gesamte API, also auch DirectPlay, DirectInput uvm) arbeitet, muss sich alle zwei Jahre beim Update auf die jeweils neuere Version neuen Code schreiben.??????????????????
Häh? Offene Socken?? Ziehen Nebenluft?!?
Wieso muß ich mir dann neuen Kot schreiben?!?
Mein in DX5 gecodetes Total Annihilation läuft auch unter DX9 wunderbar!
Selbst Baphomet's Fluch für Windows, das DX2 (!) benutzt läuft sauber!
Dat is' ja dat geile am COM.Klar, wenn ich erst seit DX9 unterstützte Effekte einbauen will, daß ich dann von DX8 auf DX9 portieren muß, z.B., aber das mußt Du mit Deinen ARB_extensions genauso!!
Allerdings darfst Du Dich dafür erstmal durch die ARB_extensions registry wühlen, und gucken, welcher Treiber für welche Karte das schon implementiert...! Und je nachdem laden oder auch nicht.
DXler gehen immer einheitlich über die DeviceCaps - checken - benutzen den neuen Effekt - oder auch nicht...
-
Original erstellt von mettwurzt:
**hallo leute!ich mal ne frage: Was ist am bequemsten zu programmieren, OpenGL oder DirectX???
Gibt es Vor- und Nachteile der Grafikmodi?Kann man sich mal irgendwo eine Engine anschauen? -> code (so quake 1 mäßig)
Ach noch ne frage: Wie kann ich denn eigentlich die Formate festlegen? (modeldateien, sound, level, usw...)**
Ach, zu Dir:
Für Deine "Frage" gibt es schon Drölfzig Trilliarden Einträge in der FAQ, außerdem startest Du so leicht'n Flamewar (was Du auch sicher wolltest).Klar gibt es Vor- und Nachteile dieser beiden Grafik-APIs! Jede hat von beidem 'n Haufen!
Klar kannst'e Dir 'ne Engine anschauen:
C:\QUAKE> quake.exe [RETURN]
:p
Der Quellcode von Quake und Quake II is' schon lange freigegeben, und entweder von id software's FTP zu saugen oder auch so sicher irgendwo im Netz zu finden.
-
zwei sachen finde ich nicht ganz richtig.
es stimmt zwar, das opengl mit extensions sehr flexibel ist. fragt sich aber nur, wie dieses hinzufügen von funktionen in das gesamtsystem "opengl" sich auf die ausführungsgeschwindigkeit auswirkt. denn wenn es wirklich so einfach wäre funktionalität immer wieder nur hinzuzufügen, und das dann mit maximaler ausführungsgeschwindigkeit, dann frage ich mich wieso das microsoft bei directx nicht genasuo macht. ich glaube kaum das microsoft spass daran findet immer wieder die architektur von directx komplett zu ändern, was dadurch natürlich inkompatibel zur letzten version ist, nur weil es ein paar neue grafikkarten mit neuer funktionalität gibt. das wird schon seine gründe haben! (zugegebenermaßen muss ich sagen, das es natürlich übertrieben ist gleich alle zwei jahre oder so eine neue version rauszubringen...)
deshalb ist opengl für mich "zusammengeschustert". es kann zwar alles, aber wie!
das man alle zwei jahre seine eingine neuschreiben kann, weil sich directx geändert hat, ist für die vergangenheit richtig. ich glaube aber sagen zu können, das microsoft mit directx 8 und 9 (bzw. SEIT directx 8 und 9) eine sehr gute plattform bereitstellt, die es mindestens für die nächsten fünf jahre überflüssig macht auf etwas neues umzusteigen, ausser (!!!) es entwickeln sich neue in hardwareimplementierte techniken, wie z.b. raytraycing/radiosity grafikarten. dann ist es wahrscheinlich wieder sinnvoll eine neue api rauszubringen. sollte das aber nicht sein, dann kann man selbst in fünf jahren mit directx 9 alles an grafik realisieren was man möchte. das potenzial/funktionalität der heutigen grafikarten ist enorm angestiegen, im vergleich zu den karten vor 3 jahren (->TNT,TNT2,VOODOO).
schau dir die neuen demos von nvidia mit der elfe oder dem wolf an. die karten sind heute in der lage sowas "einzeln" zu rendern. zukünfige karten werden aber die power haben ALLES was in einem spiel vorkommt mit so hoher genauigkeit zu rendern. und es ist sinnvoller das dann auch in einem spiel wirklich umzusetzen, als einfach ein schlechteres spiel rauszubringen, nur weil es dann wieder kompatibel zur neuesten grafikartengeneration ist. es bringt ja nichts immer wieder zumzusteigen, wenn man keine resultate mit den alten standards erziehlt. und der heutige standard directx 9 hat genug power für die zukunft.
... und wenn ein neuling heute fragt was besser ist, opengl oder directx, dann finde ich, sollte man in die zukunft blicken und ihm sagen womit er momentan und in zukunft am besten liegt, auch wenn directx eine miserable geschichte hat, und im vergleich dazu (den alten versionen von directx) opengl ein vorbildhaftes und nahezu perfektes grafiksystem ist. das gleiche gilt doch auch (fast) für linux. windows 3.11 und windows 95 im vergleich zu windows xp, naja da muss man nicht mehr viel sagen. linux ist auf jedenfall besser als windows 3.11 und windows 95; aber seit windows 2000 und windows xp ist das nicht mehr der fall (ich glaube sagen zu können, das windows xp besser ist als linux, auch wenn linux bestimmte, unanfechtbare vorteile hat.)
-
Original erstellt von KXII:
ich glaube sagen zu können, das windows xp besser ist als linux, auch wenn linux bestimmte, unanfechtbare vorteile hat."Besser" ist ja sowieso Quatsch!! Worauf soll sich das denn beziehen!???
Es kommt immer auf das Einsatzgebiet an!
Was bitte ist denn z.B. das BESTE oder WICHTIGSTE Teil an einem Auto???
Gar keins! Jede Schraube hat seine Berechtigung!
Klar, ohne Motor würde es nicht fahren. Aber ohne Reifen auch nicht! Ohne die Popels-Zündkerzen auch net! Und ohne die kleinen süßen Kabel auch net! Ohne Scheibenwischer würde es zwar fahren, aber WIE! Wer schonmal versucht hat, mit kaputten Scheibenwischergummis durch strömenden Regen zu fahren weiß wovon ich spreche...
Und im Scheibe-Vom-Wasser-Befreien verrichten moderne Wischer nunmal die beste Arbeit! GANZ KLAR! Selbst Profi-Zündkerzen von Bosch und scheiß-teure Porsche-Bremsen können das nicht so gut...!! :p
-
du hast vollkommen recht! normalerweise ganz meine rede. es kommt auf das einsatzgebiet an.
"das beste" bezog sich auf das gesamterscheinungsbild welches die bestriebssysteme haben, wenn man "davor" sitzt und standardanwendungsmöglichkeiten normalsterblicher humanoiden in anspruch nimmt. wenn man natürlich ein programm benötigt, das die steuerung eines satelliten für eine marserkundung umsetzen soll, dann sind die kriterien, für "das beste", andere.
[ Dieser Beitrag wurde am 21.06.2003 um 15:31 Uhr von KXII editiert. ]
-
Microsoft selbst meinte das für die nächsten Jahre keine neue Version von DirectX zu erwarten ist. Auch die Grafikkartenhersteller haben keine Lust mehr in immer kürzer werdenden Zeitabständen neue Grafikkarten auf den Markt zu werfen. Weil die Entwicklungskosten nicht gedeckt werden.
Ich kann nur sagen "Ist doch egal mit was du programmierst". Ergebnisse zählen
-
Also ich finde OpenGL besser, da es eben auch auf Linux funktioniert, ich meine die meisten werden diese "Feature" von OpenGl sowieso nicht nützten und "nur" für Windows programmieren.
Außerdem bin ich mit dem Extension System von OpenGL sehr zufrieden mal abgesehen davon, dass man (ZB für Vertex Programs) sehr viele Funktionen registrieren muss.Ich würde nicht sagen, dass Direct3D unbedingt mehr Zukunft hat als OpenGL, schließlich wird ja auch noch dieses Jahr OpenGL 2, sie Vorversion von OpenGL 2 Pure (oder umgekehrt) rauskommen, das mit der einheitlichen "Shader-Sprache" nicht zu übersehen ist (oder hat Direct3D das schon?!)
Das war mein Beitrag zum ewigen OpenGL vs. Direct3D Kampf. Mich wundert eh, dass bis jetzt nur vernünftige Antworten geposted wurden.cu trooper
-
Original erstellt von <trooper>:
Ich würde nicht sagen, dass Direct3D unbedingt mehr Zukunft hat als OpenGL,Ich denke auch, daß beides genau wie jetzt auch nebeneinander weiterexistieren wird. Und OpenAL wird so langsam mit DirectAudio gleichziehen.
Schließlich wird ja auch noch dieses Jahr OpenGL 2, sie Vorversion von OpenGL 2 Pure (oder umgekehrt) rauskommen, das mit der einheitlichen "Shader-Sprache" nicht zu übersehen ist (oder hat Direct3D das schon?!)
Klar, mit DX8 eingeführt. Nennt sich HLSL (High-Level Shader Language).
Das war mein Beitrag zum ewigen OpenGL vs. Direct3D Kampf. Mich wundert eh, dass bis jetzt nur vernünftige Antworten geposted wurden.
Mich auch!
:p
-
__ __ / | / / / ( | ___ ___ ___ ( __ ( ___ ___ ( ___ | )| )|___)| )| )| ) |___ | )| |___) __/ |__/ |__/ |__ | / |__/ |__/ __/ |__/ |__ | \ /__ | __ __ __ |/ | / / ||/ | / | | ___ ___ ___ (___ ___|| | ___ ( ___ ___ | )| | )|___)| | )| ) | )| )| |___) __/ |__/ | | |__ |__ |__ __/ |__/ | |__/ | |__ /__
-
ASCII rul0rt!!
-
Ich weiss nicht ob es wichtigist ob es auf einem Linux-System läuft. Die Spieleplattform ist Windows. Und der Untergang von LOGI war auch kein gutes Zeichen für die Linux-User.
Die Bedienung von Linux ist immer noch zu umständlich als das es in absehbarer Zeit auch von "normalen" User benutzt werden wird.
-
Original erstellt von KXII:
**... und wenn ein neuling heute fragt was besser ist, opengl oder directx, dann finde ich, sollte man in die zukunft blicken und ihm sagen womit er momentan und in zukunft am besten liegt,
**
Eben und deswegen sollte man gleich auf OpenGL setzen.
Zwar ist das noch nicht so ganz an die Öffentlichkeit durchgedrungen,
aber Windows ist ein sinkendes Schiff. (insbesondere im Hinblick auf Windows Longhorn, TCPA und der steigenden Nachfrage nach Linux und anderen Windows Alternativen)Heutzutage sind Mischlösungen gefragter denn je zuvor und
deswegen kommt man nicht um Crossplattform fähige Apis herum
womit dann wiederum OpenGL die erste Wahl bei den 3d Apis wäre.Man sollte sich im klaren sein, das Linux und andere offnene Systeme immer weiter an Boden gewinnen, insbesondere auch im professionellen Bereich (also @work).
Und im professionellen Bereich (also nicht der Spielebereich) wird auch heute noch nahezu ausschließlich auf OpenGL gesetzt
und wer einmal Informatik studiert, der weiß, das hier IMMER OpenGL
gelehrt wird und nicht DirectX.Und die paar Vorteile die DirectX 9 im moment im Vergleich zu OpenGL hat,
sind mit OpenGL 2.0 sowiso demnächst passe.
Die Nachteile die DirectX im Vergleich zu OpenGL hat werden aber weiterhin
noch eine ganze weile bestehen bleiben (z.b. kein Crossplattform Support).Das richtige Pferd ist heutzutage also definitiv OpenGL.
Und im Spielebereich ist die Doom 3 Engine das führende Paradebeispiel
welches für OpenGL spricht.
-
Original erstellt von <Gast>:
Ich weiss nicht ob es wichtigist ob es auf einem Linux-System läuft. Die Spieleplattform ist Windows. Und der Untergang von LOGI war auch kein gutes Zeichen für die Linux-User.
Die Bedienung von Linux ist immer noch zu umständlich als das es in absehbarer Zeit auch von "normalen" User benutzt werden wird.Im Gegenteil, zwar ist Loki untergegangen,
aber der Spielebereich unter Linux hat sich dennoch ganz anders enwickelt als man kurz nach dem Untergang von Loki gedacht hatte und zwar zum besseren.Der Linux Spiele Markt war noch nie so im Aufwind wie heute.
Und für Loki gibt es inzwischen ebenfalls einen Ersatz names Linux Game Publishing.
Genauere Infos gibts dazu auf www.holarse.net
-
@Guest: Das heißt LOKI - und die haben nur Portiert! Wer kauft sich ein Spiel, das er auf seinem 2. System, oder unter WineX schon am laufen hat?
Richtig - Keiner! Auch wenn ich den Untergang von Loki bedauerEine brauchbare Engine zum Ankucken: www.radonlabs.com - zumindest Nomads wurde mit dieser Engine entwickelt!
Ich tendiere auch mehr zu OpenGL, aber mit einem guten Abstrakten IFace ist es doch eh Wurst - man kann beides einbauen. Einmal ein Framework gestrickt, dann braucht man keine der API´s mehr direkt.
Wenn man rein für Win Programmiert, dann ist DX auch nicht zu verachten, auch wenn ich es selbst nicht mehr nutze.
Ach ja -
@Mettwurst: Nach deinen Letzten Posts und Fragen würde ich doch erst mal C/C++ richtig lernen! Außer du bist so ein Irrer wie ich, und lernst mehreres gleichzeitig. Ist aber nicht zu empfehlen!Erst C oder C++,
Dann Grundlagen OS ( WinAPI oder ähnliches )
Dann Grafikstuff[ Dieser Beitrag wurde am 22.06.2003 um 04:58 Uhr von SnorreDev editiert. ]
-
Original erstellt von <Changelog>:
**
... Zwar ist das noch nicht so ganz an die Öffentlichkeit durchgedrungen,
aber Windows ist ein sinkendes Schiff. (insbesondere im Hinblick auf Windows Longhorn, TCPA und der steigenden Nachfrage nach Linux und anderen Windows Alternativen)
**also ehrlich, das glaubst du ja wohl selber nicht. windows ist der inbegriff für unsinkbarkeit. oder kann man was noch schlechteres als windows 95 rausbringen und sich trotzdem eine goldene nase damit verdiehnen? das will ich erst mal sehen, daß das geht!
Original erstellt von <Changelog>:
**
... und wer einmal Informatik studiert, der weiß, das hier IMMER OpenGL
gelehrt wird und nicht DirectX.
**JA, ich weiss... jammerschade dass das so ist.
Original erstellt von <Changelog>:
**
... Und die paar Vorteile die DirectX 9 im moment im Vergleich zu OpenGL hat,
sind mit OpenGL 2.0 sowiso demnächst passe.
Die Nachteile die DirectX im Vergleich zu OpenGL hat werden aber weiterhin
noch eine ganze weile bestehen bleiben (z.b. kein Crossplattform Support).
**du redest so als ob du der entwickler von opengl 2 persönlich wärst! directx hat im moment ein paar vorteile gegenüber opengl, ja das stimmt, aber opengl 2 wird auf gar keinen fall so übertrieben viel besser sein, das dann directx vollkommen unbrauchbar erscheint. ausserdem entsteht mit softwaredesign alleine noch keine gute grafilib. die hardware macht 98% der arbeit, und ich glaube NICHT das micrsosoft mit directx eine SOOOO extrem miserabel schlechte api entwickelt hat, das opengl 2 ein SOOOO großes potential hat directx vollkommen zu verdrängen, weils einfach unendlch viel schneller ist. das ist doch totaler quatsch was du da sagst! vielleicht ist es möglich auf bestimmten systemen mit opengl 2 eine nennenswert bessere performance zu erziehlen als auf einer windowsplattform, aber unter windows wird es keine nennswerte unterschiede in der performance zu directx gebeben, da bin ich mir sicher, denn directx 8 und 9 wurde in zussamenarbeit mit nvidia und ati entwickelt. wenn directx so schlecht ist wie du sagst, dann müssen die entwickler von nvidia und ati entweder selbst keine ahnung von ihrere hardware haben oder sie wollen nicht das ihre hardware unter directx maximal schnell unterstützt wird. letzteres halte ich aber für paranoid...
welche vorteile von opengl ausser der plattformumunabhängigkeit gibt es denn noch? soweit ich weiss sind beide systeme in der lage alles was es heute an hardwareumsetzung von grafikalgorithemen gibt zu unterstützen.
Original erstellt von <Changelog>:
**
... Und im Spielebereich ist die Doom 3 Engine das führende Paradebeispiel
welches für OpenGL spricht
**kennst du nur doom 3 oder was? es gibt viele gute spiele, manche mit schlechtem spielsystem aber dafür mit genialer grafik, die mit directx programmiert wurden. und ich glaube sogar das es mehr spiele für directx gibt, als für opengl. doom 3 ist doch nur so gut weils von id software ist. für spiele ist DirectX auf jeden fall die bessere alternative. (alleine schon wegen den vielen tollen devicecaps...
)
[ Dieser Beitrag wurde am 22.06.2003 um 07:22 Uhr von KXII editiert. ]
-
Hi,
und wer einmal Informatik studiert, der weiß, das hier IMMER OpenGL
gelehrt wird und nicht DirectXDas ist höchstens indirekt so. An der TU-Braunschweig benutzt jedes Institut seinen eigenen Mist, von OpenInventor (OGL), über Java3D (früher noch ohne OGL) und GKS bis hin zu eigenen Voxel-Implementierungen. Alles was industriel einsetzbar ist, das ist nicht akademisch genug. Und was die Unis für ihre theoretische Wissenschaft verwenden wird meistens durch Konservatiismus (wie ist das Substantiv?) geprägt und durch keine Überlegungen bezüglich der Praktikabilität
Zur Diskussion um D3D vs OGL gilt das, was SnorreDev gesagt hat. Ein vernünftig abstrahiertes Interface für den Renderer und es ist egal ob man OGL oder D3D verwendet.
Ciao,
Stefan