PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Dx 10 Ohne NVidia?


Alertstatus Red
2004-04-20, 10:57:43
Oder wie soll ich DAS (http://www.warp2search.net/modules.php?name=News&file=article&sid=14751) Interpretieren ?? (Achtung, viele popups und werbung, es gehts un nvidia Treiber) :(

Oder DAS (http://www.gearboxsoftware.com/forums/showflat.php?Cat=&Board=technical&Number=25356&page=0&view=collapsed&sb=5&o=&fpart=1&vc=1&PHPSESSID=) ?? :(

Exxtreme
2004-04-20, 11:04:45
Hmmm, so wie ich das sehe, hat Nvidia angeblich Teile der DX-Runtime mit der Installation der Treiber ausgetauscht, was anscheinend nicht erlaubt ist. Und es steht nicht drin, daß Nvidia keine Treiber für DX10 anbieten darf.

Gast
2004-04-20, 11:08:56
Vielleicht gibt es dann glide-Treiber von nv.

(del676)
2004-04-20, 11:11:57
das wär super doch super, dann gäbs OPENGL und alles wär einfacher zu portieren

Exxtreme
2004-04-20, 11:26:14
Original geschrieben von Ulukay
das wär super doch super, dann gäbs OPENGL und alles wär einfacher zu portieren
Zu wünschen wäre es. Aber ich glaube nicht, daß andere IHVs da auch aussteigen und sich mögliche Absatzchancen kaputtmachen.

Endorphine
2004-04-20, 11:32:58
Original geschrieben von Exxtreme
Zu wünschen wäre es. Aber ich glaube nicht, daß andere IHVs da auch aussteigen und sich mögliche Absatzchancen kaputtmachen. <träum>Am besten die Gelegenheit beim Schopfe packen, Direct3D/DirectDraw einstampfen und OpenGL zum Standard erklären. Das wäre doch im Interesse von allen =).</träum> Das Windows-Quasimonopol auf Spiele und 3D-Beschleunigung überhaupt wäre damit faktisch Geschichte.

Edit: Man kann sich auch Absatzchancen schaffen, in dem man nicht auf plattformgebundene proprietäre APIs wie DirectX setzt. Wie Ulukay schon schrieb ermöglichen offene APIs wie OpenGL ganz neue Horizonte in der Portierbarkeit. Mit DirectX ist man auf Xbox und x86 Windows-PC festgelegt.

Quasar
2004-04-20, 11:37:02
Ihr habt aber gesehen, von wann die Meldungen sind...?

Das haben wir IIRC alles schon durchgekaut.

Demirug
2004-04-20, 11:39:16
Original geschrieben von Quasar
Ihr habt aber gesehen, von wann die Meldungen sind...?

Das haben wir IIRC alles schon durchgekaut.

Ja, haben wir.

Zudem habe ich ja schonmal gesagt es wird niemand davon abgehalten eine DirectX kompatible API für ein anderes System als Windows zu schreiben.

Alertstatus Red
2004-04-20, 11:57:44
Original geschrieben von Demirug
Ja, haben wir.

Zudem habe ich ja schonmal gesagt es wird niemand davon abgehalten eine DirectX kompatible API für ein anderes System als Windows zu schreiben.


Glaub ned das sooo einfach wäre, M$ lässt sicher nicht diese vorteil entgehen, sehe lindows und wenn denn später auch lindash war auch ned gut (mindeste hier in europa in nicht englische raum)... Der einzige wahre wäre OpenGL, aber auch nicht einfach, wegen der M$ monopol in desktop bereich ...

Endorphine
2004-04-20, 12:24:28
Original geschrieben von Demirug
Zudem habe ich ja schonmal gesagt es wird niemand davon abgehalten eine DirectX kompatible API für ein anderes System als Windows zu schreiben. Warum sollte jemand eine proprietäre API portieren, wenn auch eine etablierte offene zur Verfügung steht? Statt Nachteile mühsam zu umgehen und die Marktmacht von Microsoft zu unterstützen kann man ja auch gleich die Vorteile von OpenGL nutzen.

Ist wohl eine Philosophiefrage...

Marodeur
2004-04-20, 12:28:53
Wenn man die ganzen Gamer zum umsteigen auf andere OS bewegen will müsste man das wohl mal machen... Die Rufe an die Spielehersteller verhallen ja eh meistens...

Wenn sie dann mal umgestiegen SIND kann man die API ja langsam wieder verschwinden lassen... ;)

Endorphine
2004-04-20, 12:36:02
Warum umsteigen? Muss doch gar nicht sein, jeder soll das Betriebssystem nutzen, was er möchte :) Das muss meiner Meinung nach das Ziel sein. Einen Zwang gegen einen anderen zu tauschen halte ich nicht für erstrebenswert.

Derzeit ist es aber so, dass man gar keine andere Wahl als Windows hat. Man kann weder mit MacOS, noch mit Linux oder *BSD vernünftig spielen oder 3D-beschleunigte Software nutzen.

Wenn sich Windows tatsächlich als die überlegene (OpenGL-) Spieleplattform herauskristallisieren würde wäre das ja OK. Das Problem ist nur, dass man keine Wahl hat, als unter die Decke von Microsoft zu springen, wenn man spielen möchte oder 3D-hardwarebeschleunigte Anwendungssoftware ausserhalb von CAD nutzen will. Und das sollte meiner Meinung nach geändert werden. Ich will die Wahl haben, welches OS ich einsetze. Ich möchte, dass Softwareentwickler für die Plattformen entwickeln, die sie für lohnenswert halten und nicht einfach per DirectX an Microsoft Windows und die XBox geknebelt werden. Ausser iD-Software scheint ja niemand mehr OpenGL unterstützen zu wollen :(.

deekey777
2004-04-20, 12:41:58
http://www.forum-3dcenter.org/vbulletin/showthread.php?s=&threadid=98148

Das hatten wir doch schon einmal...

Endorphine
2004-04-20, 12:42:31
Dann merged die Postings hier eben in den anderen Thread... :)

Demirug
2004-04-20, 12:44:17
Original geschrieben von Alertstatus Red
Glaub ned das sooo einfach wäre, M$ lässt sicher nicht diese vorteil entgehen, sehe lindows und wenn denn später auch lindash war auch ned gut (mindeste hier in europa in nicht englische raum)... Der einzige wahre wäre OpenGL, aber auch nicht einfach, wegen der M$ monopol in desktop bereich ...

Der Name (DirectX) ist geschützt aber nicht die API. Für den MAC gibt es eine entsprechende Produkt was die Portierung von DX Spielen entsprechend vereinfacht.

Demirug
2004-04-20, 12:45:51
Original geschrieben von Endorphine
Warum sollte jemand eine proprietäre API portieren, wenn auch eine etablierte offene zur Verfügung steht? Statt Nachteile mühsam zu umgehen und die Marktmacht von Microsoft zu unterstützen kann man ja auch gleich die Vorteile von OpenGL nutzen.

Ist wohl eine Philosophiefrage...

Die Vorteile von DX sind aber derzeit für die Entwickler grösser.

Gast
2004-04-20, 13:01:49
Original geschrieben von Demirug
Der Name (DirectX) ist geschützt aber nicht die API. Für den MAC gibt es eine entsprechende Produkt was die Portierung von DX Spielen entsprechend vereinfacht.

bezieht sich wohl nur nur direct 3d oder?

afaik gibt es für den mac überhaupt keine soundschnittstelle :(

Demirug
2004-04-20, 13:08:14
Original geschrieben von Gast
bezieht sich wohl nur nur direct 3d oder?

afaik gibt es für den mac überhaupt keine soundschnittstelle :(

D3D und DirectInput wohl auch. Ob die Musik Sound Interfaces auch dabei warn kann ich nicht sagen. Ich habe mir die Sache aber schon länger nicht mehr angeschaut. Es ging mir auch nur darum das es durchaus möglich ist.

EDIT: So nochmal nachgeschaut http://www.coderus.com DirectSound gibt es auch. Nur haben die Jungs das Teil scheinbar nicht mehr weiterentwickelt. IIRC habe ich auch irgendwo mal eine DX8-API für den Mac gesehen.

Endorphine
2004-04-20, 13:11:46
Original geschrieben von Demirug
Die Vorteile von DX sind aber derzeit für die Entwickler grösser. Ja, der Vorteil ist, dass man mit nur einer API mit einem Schlag 90+% des Marktes ansprechen kann (x86 Windows und XBox). Natürlich gibt's auch technische Vorteile, die Integration von DirectX in die MS-Betriebssysteme könnte kaum besser sein, die Entwicklung erfolgt zentral von einem Anbieter und Support gibt's auch von MS (und ein schönes SDK). Zudem ist DirectX praktischerweise ja nicht nur Direct3D, sondern auch DirectPlay, DirectSound, DirectShow usw.

Dafür ist man dann aber auf Gedeih und Verderb Microsoft ausgeliefert. Und die Lizenznehmer der Software ebenso. Friss oder stirb... Nein, das ist kein optimaler Zustand :no:.

Mir gefällt auch nicht, wie Microsoft mit den APIs über den Erfolg oder Misserfolg von IHVs entscheidet. Deshalb: DirectX so weit und oft wie nur irgend möglich meiden.

Demirug
2004-04-20, 13:25:42
Original geschrieben von Endorphine
Ja, der Vorteil ist, dass man mit nur einer API mit einem Schlag 90+% des Marktes ansprechen kann (x86 Windows und XBox). Natürlich gibt's auch technische Vorteile, die Integration von DirectX in die MS-Betriebssysteme könnte kaum besser sein, die Entwicklung erfolgt zentral von einem Anbieter und Support gibt's auch von MS (und ein schönes SDK). Zudem ist DirectX praktischerweise ja nicht nur Direct3D, sondern auch DirectPlay, DirectSound, DirectShow usw.

Dafür ist man dann aber auf Gedeih und Verderb Microsoft ausgeliefert. Und die Lizenznehmer der Software ebenso. Friss oder stirb... Nein, das ist kein optimaler Zustand :no:.

Mir gefällt auch nicht, wie Microsoft mit den APIs über den Erfolg oder Misserfolg von IHVs entscheidet. Deshalb: DirectX so weit und oft wie nur irgend möglich meiden.

Auch als 3d-API ist DX für die Spieleentwicklung derzeit besser geeignet als OpenGL. Das könnte sich mal ändern wenn nur noch glslang fähige Hardware unterstützt werden muss. Derzeit ist OpenGL aber weil es keine einheitlich Schnittstelle für das Fragementshading bei DX8 Karten gibt eher eine schlechte Wahl.

Da man sowieso immer zwischen mehreren Übeln wählen muss nimmt man das kleinste und das ist derzeit nun mal DX.

Exxtreme
2004-04-20, 13:35:50
Original geschrieben von Endorphine
Ja, der Vorteil ist, dass man mit nur einer API mit einem Schlag 90+% des Marktes ansprechen kann (x86 Windows und XBox). Natürlich gibt's auch technische Vorteile, die Integration von DirectX in die MS-Betriebssysteme könnte kaum besser sein, die Entwicklung erfolgt zentral von einem Anbieter und Support gibt's auch von MS (und ein schönes SDK). Zudem ist DirectX praktischerweise ja nicht nur Direct3D, sondern auch DirectPlay, DirectSound, DirectShow usw.

DirectX hat den "Write once, run everywhere"-Vorteil ... zumindest unter Windows. Sprich, du schreibst den Code einmal und dieser läuft mit hoher Wahrscheinlichkeit auf jeder Hardware, die mindestens den Technologie-Level erfüllt. Das senkt die Entwicklungskosten. Der Preis ist die geringere Flexibilität und manchmal auch Effizienz. Da aber Entwicklungskosten das Argument überhaupt ist beim Publisher, wiegt dieses sehr viel schwerer als alles andere.

Original geschrieben von Endorphine
Dafür ist man dann aber auf Gedeih und Verderb Microsoft ausgeliefert. Und die Lizenznehmer der Software ebenso. Friss oder stirb... Nein, das ist kein optimaler Zustand :no:.

Mir gefällt auch nicht, wie Microsoft mit den APIs über den Erfolg oder Misserfolg von IHVs entscheidet. Deshalb: DirectX so weit und oft wie nur irgend möglich meiden.
Hmmm, das juckt doch die Publisher nicht. Hauptsache ist, daß das Spiel sich gut verkauft und die Margen durch die geringeren Entwicklungskosten besser werden.

P.S. Und so zynisch es auch klingen mag ... je weniger IHVs desto besser da man beim Beta-Test sparen kann. Wieder mehr Profit.

Desti
2004-04-20, 13:38:53
Original geschrieben von Exxtreme
DirectX hat den "Write once, run everywhere"-Vorteil ... zumindest unter Windows. Sprich, du schreibst den Code einmal und dieser läuft mit hoher Wahrscheinlichkeit auf jeder Hardware, die mindestens den Technologie-Level erfüllt.[...]

Wenn selbst ein DirectX Prestigeobjekt das nichtmals schafft...

http://www.forum-3dcenter.org/vbulletin/showthread.php?s=&threadid=45577

Exxtreme
2004-04-20, 13:40:02
Original geschrieben von Desti
Wenn selbst ein DirectX Prestigeobjekt das nichtmals schafft...

http://www.forum-3dcenter.org/vbulletin/showthread.php?s=&threadid=45577
Liegt daran, daß die bei FM/MO schlicht und ergreifend Mist gebaut haben.

Desti
2004-04-20, 13:44:44
Original geschrieben von Exxtreme
Liegt daran, daß die bei FM/MO schlicht und ergreifend Mist gebaut haben.

Den Mist trifft man aber öfters.
Mechwarrior 3, aus dem Hause Microsoft, hat die selben Probleme.

Exxtreme
2004-04-20, 13:45:25
Original geschrieben von Desti
Mechwarrior 3, aus dem Hause Microsoft, hat die selben Probleme.
Auch Mist gebaut ... und bei MS ist das nichts Neues.

Gast
2004-04-20, 14:22:16
!!!!!PROTEST!!!!!
Mechwarrior 3 war von MICROPROSE und ein geniale Simulation!
Mechwarrior 4 war von Microsoft und stellt in etwa das dar, was auf der Hälfte der Strecke zwischen Mechwarrior 3 und Mechassault liegt - eine miese Simulation bzw. ein viel zu träger Shooter...

Bitte keine Blasphemie hierüber! Wo steckt denn Marodeur? Seine PPKs mögen euch läutern...

MICROPROSE schnüff was warn das noch für Zeiten

Gast
2004-04-20, 14:23:04
Eine Unternehmung wie Microsoft, die gerade nochmals dem Henker entkommen ist wegen "angeblichem" (LOL) Missbrauch seiner Monopolstellung wird wohl kaum soetwas tun.

Normalerseise missbrauchen sie ihre Monopolstellung nur dann, wenn sie damit Profit machen können. Worin sollte der Profit bestehen NVIDIA zerstören zu wollen?

betasilie
2004-04-20, 14:42:10
Original geschrieben von Quasar
Ihr habt aber gesehen, von wann die Meldungen sind...?

Das haben wir IIRC alles schon durchgekaut.
:up: Ich habe mich schon gewundert und dachte erst, jemand hätte einen alten Thread ausgegraben.

Marodeur
2004-04-20, 15:51:53
Microprose und Microsoft sollte man nicht verwechseln. Da kann man ja gleich Need for Speed Underground eine Simulation nennen. *PPK auflad*

Wobei man Mechwarrior 4 nicht schlecht machen sollte als es war, als Spiel gesehen wars schon in Ordnung. In MW3 waren Kämpfe manchmal schon etwas arg kurz, es fehlte dem Spiel die inakkurate Zielerfassung. Wo man hinzielt hat man auch genau getroffen, das war etwas schade. War im 4er zwar auch so aber da wurdens halt "künstlich" in die länge gezogen...

Aber genug OT... sorry... ;)

@Endo:
Ja hast recht. Die freie Wahl des OS wäre natürlich der optimale Zustand. Im Spielebereich hat man diese leider nicht. Alles konzentriert sich auf Windows, egal ob es die Grafikchipfirmen mit ihren Treibern oder die Spieleprogrammierer sind. Ein nicht wirklich wünschenswerter Zustand der sich so schnell aber auch nicht ändern wird... *seufz*

Tigerchen
2004-04-20, 16:14:24
Original geschrieben von Endorphine
Warum umsteigen? Muss doch gar nicht sein, jeder soll das Betriebssystem nutzen, was er möchte :) Das muss meiner Meinung nach das Ziel sein. Einen Zwang gegen einen anderen zu tauschen halte ich nicht für erstrebenswert.

Derzeit ist es aber so, dass man gar keine andere Wahl als Windows hat. Man kann weder mit MacOS, noch mit Linux oder *BSD vernünftig spielen oder 3D-beschleunigte Software nutzen.

Wenn sich Windows tatsächlich als die überlegene (OpenGL-) Spieleplattform herauskristallisieren würde wäre das ja OK. Das Problem ist nur, dass man keine Wahl hat, als unter die Decke von Microsoft zu springen, wenn man spielen möchte oder 3D-hardwarebeschleunigte Anwendungssoftware ausserhalb von CAD nutzen will. Und das sollte meiner Meinung nach geändert werden. Ich will die Wahl haben, welches OS ich einsetze. Ich möchte, dass Softwareentwickler für die Plattformen entwickeln, die sie für lohnenswert halten und nicht einfach per DirectX an Microsoft Windows und die XBox geknebelt werden. Ausser iD-Software scheint ja niemand mehr OpenGL unterstützen zu wollen :(.

Da muß ich dir uneingeschränkt zustimmen. Wär schön wenn auf jeder Spiele DVD eine freie, plattformunabhängige und vor allem komplette API wäre. OpenGL ist ja keine optimale Lösung. So viel ich weiß nutzen OpenGL Spiele ja trotzdem Teile von DirectX für Sound u.a..

Gast
2004-04-20, 16:16:35
Die ArtemisIV-Systeme waren in MW3 einfach nur herrlich...
Und die Pulser strahlten tatsächlich etwas aus, was sich wie Licht (mit dementsprechender Lichtgeschwindigkeit) verhielt und nicht wie Projektilsalven...
Ich will endlich wieder Simulationen!
/end OT

Desti
2004-04-20, 20:45:06
Original geschrieben von Gast
!!!!!PROTEST!!!!!
Mechwarrior 3 war von MICROPROSE und ein geniale Simulation!
[...]

MICROPROSE wurde von Microsoft aufgekauft, auf meiner deutschen Mech 3 Verpackung steht:

© 1999 Hasbro Interactive, Inc. All Rights Reserved. Microprose is a trademark of Hasbro. BattleTech Material © 1999 FASA Corporation. MechWarrior, BattleTech, BattleMech, and 'Mech are trademarks or registered trademarks of FASA Corporation and Microsoft Corporation.

Gast
2004-04-20, 20:56:11
Original geschrieben von Desti
MICROPROSE wurde von Microsoft aufgekauft.

© 1999 Hasbro Interactive, Inc. All Rights Reserved. Microprose is a trademark of Hasbro. BattleTech Material © 1999 FASA Corporation. MechWarrior, BattleTech, BattleMech, and 'Mech are trademarks or registered trademarks of FASA Corporation and Microsoft Corporation.

ARGH!
FASA bzw. eine ausgegliederte Abteilung von FASA mit den Battletech-Rechten wurde von Microsoft aufgekauft, um an die Rechte zu kommen. MW3 läuft unt WinXP übrigens nicht mehr, was mich natürlich nicht wundert, da MW4 von Microsoft ist...
Hätte Microprose auch die Rechte für einen weiteren Mechwarrior gehabt der mit der Microsoft-Variante auf technischer Augenhöhe streiten kann hätten die Kunden die Entscheidung gehabt aber so funktioniert Kapitalismus halt nicht...
Nicht der gewinnt, der das bessere Produkt hat, sondern der, der den anderen effektiver sabotiert...

Gast
2004-04-20, 20:58:42
Die Rechte für MW3 hatte Microprose bereits, bevor die ursprünglichen Rechteinhaber von Microsoft aufgekauft wurden.

zeckensack
2004-04-20, 22:30:41
Original geschrieben von Exxtreme
DirectX hat den "Write once, run everywhere"-Vorteil ... zumindest unter Windows.Wenn Direct X keine Caps hätte, dann würde das sogar stimmen.Sprich, du schreibst den Code einmal und dieser läuft mit hoher Wahrscheinlichkeit auf jeder Hardware, die mindestens den Technologie-Level erfüllt.Definiere "Techlevel". Die Gemeinsamkeiten zwischen R300 und NV30 beispielsweise sind so gering, dass es da schonmal zu massiven Ausfällen kommt. Auch unter DXG musst du mit "Renderpfaden" arbeiten, damit das Ergebnis portabel ist.

Einige Beispiele wurden schon genannt. Ich werfe jetzt mal zusätzlich Far Cry, Splinter Cell, Shadermark und rthdribl in die Runde.

Radeonator
2004-04-21, 00:33:16
Hat Mickirgsoft nicht sowieso mal angekündigt das in Zukunft keine DX Versionen kommen sollten nach DX10 ????

Demirug
2004-04-21, 09:24:26
Original geschrieben von zeckensack
Wenn Direct X keine Caps hätte, dann würde das sogar stimmen.

Definiere "Techlevel". Die Gemeinsamkeiten zwischen R300 und NV30 beispielsweise sind so gering, dass es da schonmal zu massiven Ausfällen kommt. Auch unter DXG musst du mit "Renderpfaden" arbeiten, damit das Ergebnis portabel ist.

Einige Beispiele wurden schon genannt. Ich werfe jetzt mal zusätzlich Far Cry, Splinter Cell, Shadermark und rthdribl in die Runde.

Es gibt aber einen grossen Unterschied zwischen einem "DX-Renderpfad" und einem "OpenGL-Renderpfad".

DX kennt für die meisten Operationen nur eine Schnittstelle lediglich beim Vertex und Pixel processing gibt es zwei. Jeweils eine für Fixed Functions für <= DX7 Karten und eine für Shader >= DX8. Mit etwas mehr Willen hätte man das aber auch auf eine Vereinheitlichen können und für die Fixed Functions nachträglich noch eine Shaderversion 0.X einfügen können. Da hat MS IMHO einfach geschlafen.

Programmtechnisch braucht man also nur einen Pfad (oder zwei wenn man Fixed Functions und Shader nicht mischen will) der pro Effekt konfiguriert wird. Die Konfiguration kommt dann aus einer Datei die ausserhalb des eigentlich programmcodes erstellt und geplegt werden kann. Für unterschiedliche Karten/Techlevel braucht man dann pro Effekt eben nur ein passendes Konfigurationsfile. In der Regel kommt man aber mit wenigen Konfigurationen pro Effekt aus. Eine für DX7 Karte, eine für DX8 und eine für DX9.

Bei OpenGL ist die Sache eben leider nicht ganz so schön. Da es für die gleiche Aufgabe oft mehr als eine Extension gibt muss man viel mehr Code schreiben um die unterschiedlichen Extensions über die Konfigurationsfiles zu nutzten. Wenn man dann nicht noch eine allgemeine Beschreibungssprache einführt muss man für jeden Effekte auch viel mehr Konfigurationen haben als bei DX weil die Vereinheitlichung fehlt. Hat meine eine allgemeine Beschreibungssprache braucht man entsprechenden Parser und Übersetzter für die Unterschiedlichen Extensions. In Summe kann man damit natürlich stärker an das Limit einer Karte gehen aber der Preis ist eben mehr Arbeit und je mehr unterschiedliche Effekte man unterstützten möchte desto aufwendiger wird es. Mit den aktuellen Karten und glslang sieht die Sache ja langsam wieder besser aus aber solange man die alten NV2X und R2XX am Hals hat ist der Mehraufwand einfach gegeben. Das Problem mit den "kleinen" IHVs jetzt mal ganz aussen vor gelasen.

Steel
2004-04-21, 09:37:04
@Topic

Das Gerücht ist falsch!

Der Typ der diesen Schwachsinn in irgend einem Forum gepostet hatte, hat auch behauptet er hätte per Software "den einen defekten Transistor" seiner R9700 lokalisiert... :crazy:

zeckensack
2004-04-21, 09:40:11
Demirug,
was ist mit MRTs, und unterschiedlichen render target-Formaten (fixed vs floating point) im speziellen, FP-Texturen, "grossen" fixed point-Texturen (R16G16 ahoi), two sided stencil, etc pp?

edit: Ah ja, Stichwort Splinter Cell: shadow buffers?

Demirug
2004-04-21, 10:00:46
Original geschrieben von zeckensack
Demirug,
was ist mit MRTs, und unterschiedlichen render target-Formaten (fixed vs floating point) im speziellen, FP-Texturen, "grossen" fixed point-Texturen (R16G16 ahoi), two sided stencil, etc pp?

edit: Ah ja, Stichwort Splinter Cell: shadow buffers?

Das Format beim Rendertarget ist ein Parameter beim erzeugen. Ein DWORD um genau zu sein. Das kann man schön in die Konfigurationsfiles verpacken. Es gibt da ja für jede Technik eine Liste mit Bedingungen und dann kann die Engine leicht die richtige Technik für einen Effekt ausuchen. Am eigentlichen Code des Rendersystems ändert man da nichts. Die Shadow buffers Unterstützung ist ja auch nur eine zusätzliche Attribut bei dem dann eben eine andere Technik aus dem Konfigfile ausgewählt wird. Natürlich muss man das einmal grundsätzlich einbauen. Wobei das eigentlich nur die 3 oder 4 Zeilen Code für das Erkennen von shadow buffers Unterstützung sind.

Two Side Stencil bekommt man im Prinzip auch über Konfigfiles hin aber in dem Fall baut man es wohl wirklich besser fest in den Code ein. Der Code ist aber sehr simple.

Es geht im wensetlichen heute darum das die Designer nicht jedesmal wenn sie eine Idee für einen neuen Effekt haben die Programmiere belästigen müssen sondern eben den Effekt einfach der Engine beschreiben und dann tut sie es.

Exxtreme
2004-04-21, 15:36:24
Original geschrieben von zeckensack
Wenn Direct X keine Caps hätte, dann würde das sogar stimmen.Definiere "Techlevel". Die Gemeinsamkeiten zwischen R300 und NV30 beispielsweise sind so gering, dass es da schonmal zu massiven Ausfällen kommt. Auch unter DXG musst du mit "Renderpfaden" arbeiten, damit das Ergebnis portabel ist.

Einige Beispiele wurden schon genannt. Ich werfe jetzt mal zusätzlich Far Cry, Splinter Cell, Shadermark und rthdribl in die Runde.
Trotzdem dürften bei DX weniger Renderpfade nötig sein als bei OpenGL. Bei DX hat man praktisch nur die "Technologielevel". Bei OpenGL sind's im krassesten Fall "Technologielevel" x IHVs. ;)

Andererseits gibt es einige Engines, die beide APIs können. So teuer kann das Schreiben eines Renderpfades gar nicht sein. :|

Demirug
2004-04-21, 15:45:30
Original geschrieben von Exxtreme
Andererseits gibt es einige Engines, die beide APIs können. So teuer kann das Schreiben eines Renderpfades gar nicht sein. :|

Als Shaderlastige fällt mir da nur die von Farcry ein. Und dort gibt es unter OpenGL wohl nur einen Cg Pfad.

Desti
2004-04-21, 18:39:18
Original geschrieben von Demirug
Als Shaderlastige fällt mir da nur die von Farcry ein. Und dort gibt es unter OpenGL wohl nur einen Cg Pfad.

FarCry ist das ideale Beispiel für Einheitlichkeit unter DirectX, mal PS 1.1, mal 2.0, je nachdem wie gut der Grafikchiphersteller zahlt. :D

Monger
2004-04-22, 17:12:39
Original geschrieben von Desti
FarCry ist das ideale Beispiel für Einheitlichkeit unter DirectX, mal PS 1.1, mal 2.0, je nachdem wie gut der Grafikchiphersteller zahlt. :D

Hat nVIDIA dafür gezahlt, dass 1.1 Shader verwendet werden? ;)

Wahrscheinlich, denn ein "It's meant to be played" Spiel sollte wohl besser nicht wegen 2.0 Shadern auf den Spitzenkarten ruckeln...

Schnitzl
2004-04-26, 07:51:40
Original geschrieben von Exxtreme
Andererseits gibt es einige Engines, die beide APIs können. So teuer kann das Schreiben eines Renderpfades gar nicht sein. :|
Original geschrieben von Demirug
Als Shaderlastige fällt mir da nur die von Farcry ein. Und dort gibt es unter OpenGL wohl nur einen Cg Pfad.
Liegt das vielleicht daran, dass es das einzige so shaderlastige Spiel ist? ;)
Mir fällt da UT und Serious Sam ein.
V.a. bei Sam ist doch recht deutlich, was für Vorteile OpenGL gg. DX hat.

MfG

tokugawa
2004-04-26, 08:29:34
Original geschrieben von Schnitzl
Original geschrieben von Demirug
Als Shaderlastige fällt mir da nur die von Farcry ein. Und dort gibt es unter OpenGL wohl nur einen Cg Pfad.
Liegt das vielleicht daran, dass es das einzige so shaderlastige Spiel ist? ;)
Mir fällt da UT und Serious Sam ein.
V.a. bei Sam ist doch recht deutlich, was für Vorteile OpenGL gg. DX hat.

MfG

Deutlich? Bitte erläutern.

Vom Software-Engineering Standpunkt hat OpenGL leider einige ziemliche Nachteile. Zur Zeit zerrauf ich mir die Haare mit Renderpfaden.

Ich mag OpenGL, keine Frage. Aber um ein Spiel/Engine zu programmieren, das

a) aktuelle Techniken unterstützt (die oft nur über Vendor-specific Extensions verfügbar sind)

b) möglichst viele auch ältere Grafikchips unterstützt (mir gehen "unifizierte" Shader-Extensions ab bei NV2x und R2xx die's in Form von ARB_fragment_program für NV3x und R3xx gibt)

c) möglichst tatsächlich platformunabhängig läuft (pbuffers etwa werden derzeit noch über den Window-System-Layer, also etwa WGL für WIndows und GLX für UNIX, exponiert. Aber da ist was in der Mache was ähnlich der vertex buffer objects funktionieren soll und dann Window-System-Layer-unabhängig ist)

ist schon eine ziemliche Oddysee.

Wenn ich alles das in der Form implementieren würde, die ich will, käme ich auf 5-6 Renderpfade.

Die Herausforderung liegt also im Software-Design (wie so oft beim Software-Engineering). Wie gut kann man die benötigten Sachen abstrahieren, dass ein allgemeiner abstrakter Renderer möglich ist, der sich durch konkrete Renderer ersetzen läßt, der dann das jeweils möglichst optimale nutzt? Das ganze ist nicht ganz trivial - zumindest wenn man wie ich nur NV1x-Klasse (GF4 Go), NV2x-Klasse (GF4 Ti), und R300-Klasse (Radeon 9500 Pro) Hardware besitzt (schenkt mir wer eine GF6800U? :D)

Corrail
2004-04-26, 11:57:53
Das große Problem bei OpenGL ist, dass eine Zeit lang einfach geschlafen wurde. Man siehe das Paradebeispiel: keine einheitliche API für DX8.X Sader.

Aber was man jetzt so liest hat das ARB einiges getan! Im August zur SIGGRAPH soll OpenGL 2.0 rauskommen was vermutlich zwar auf OpenGL 1.x aufbauen soll aber einige wichtige Erneuerungen haben wird. Mit OpenGL 2.0 sollte dann alles, was mit DX9 möglich ist auch machen können und sogar noch mehr, und zwar mit einer Extension pro Feature.


So viel ich weiß nutzen OpenGL Spiele ja trotzdem Teile von DirectX für Sound u.a..


Ja, aber auch hierfür gibt es Alternativen, wie z.B. OpenAL (http://www.openal.org/).

Schnitzl
2004-04-26, 20:39:22
Original geschrieben von tokugawa
Liegt das vielleicht daran, dass es das einzige so shaderlastige Spiel ist? ;)
Mir fällt da UT und Serious Sam ein.
V.a. bei Sam ist doch recht deutlich, was für Vorteile OpenGL gg. DX hat.

MfG

Deutlich? Bitte erläutern.
Es sieht besser aus und läuft schneller.

Natürlich ist es ein Mehraufwand an Programierung (ist es das?) aber es kommt auch "mehr" raus.

Und wenn man sieht wo überall OpenGL dazuentwickelt wurde, dann hält sichs doch in Grenzen
(oder ist weniger Bugfixing vonnöten?;))

Selbst bei Blizzard-Spielen gibts OpenGL-Pfade - soweit ich weiss bei Diablo2 und Warcraft3.

MfG

Demirug
2004-04-26, 21:08:27
Wenn es mit einer API besser aussieht als mit einer anderen dann wurde in der Regel dort einfach mehr eingebaut.

Was das schneller angeht so ist OpenGL etwas unempfindlicher wenn man viele kleine Batches hat. Das Problem soll allerdings mit der nächsten DX-Version gelösst werden.

Solange sich eine Engine auf einem DX7 Level bewegt ist es noch relative einfach API-Neutral zu bleiben.

Beim DX9-Level funktioniert es auch wieder ganz brauchbar.

Aber beim DX8 Level gibt es in OpenGL einfach ein grosses Loch.

Was OpenGL aber am meisten fehlt ist eine Lobby bei den Spieleentwicklern und durch XNA wird das nicht leichter werden.

Schnitzl
2004-04-26, 21:35:37
was meinst du denn mit Batches? Und mit XNA?

Sry, ich kann mir nicht vorstellen, dass z.B. Croteam in OpenGL mehr Effekte als in DX einbaut um MS eins auszuwischen - ich glaube eher dass die beides so gut wie möglich gemacht haben, bringt doch dann im Endeffekt mehr verkaufte Spiele, oder?

Wenn bei DX8 ein Loch ist und DX9 ok ist heisst das dann das OpenGL z.B. 1.1 nicht darstellen kann aber 2.0 ?

Fragen über Fragen =)

Demirug
2004-04-26, 22:01:16
Original geschrieben von Schnitzl
was meinst du denn mit Batches? Und mit XNA?

Sry, ich kann mir nicht vorstellen, dass z.B. Croteam in OpenGL mehr Effekte als in DX einbaut um MS eins auszuwischen - ich glaube eher dass die beides so gut wie möglich gemacht haben, bringt doch dann im Endeffekt mehr verkaufte Spiele, oder?

Wenn bei DX8 ein Loch ist und DX9 ok ist heisst das dann das OpenGL z.B. 1.1 nicht darstellen kann aber 2.0 ?

Fragen über Fragen =)

Ein Batch ist immer ein Renderauftrag der von der CPU zur GPU geschickt wird.

XNA ist der Name des Projekts bei MS mit dem alles was mit Spielen zu tun hat gebündelt wird. Eines der Ziele ist es die Entwickler mit guten Tools die das Leben leichter machen sollen zu versorgen.

Das Problem mit OpenGL und DX8 Karten ist das es keine einheitliche Extension für die Pixelshader-Funktion gibt. nVidia und ATI haben eigene Extensions die natürlich unterschiedlich aufgebaut sind. Matrox hat eigentlich auch eine Extensions aber die ist nicht dokumentiert und beim Xabre kommt man unter OpenGL überhaupt nicht ran.

Sowas führt dazu das man letzten Endes mindestens zwei Rechner zum Entwickeln braucht oder ständig Karten umbauen muss. Das betrift aber nicht nur die Programmierer sondern auch die Designer weil man einen Shadereffekt der für Karte A entwickelt wurde nur auf dieser Testen kann. Dann muss man den gleichen Effekt auch noch einmal für Karte B entwickeln und testen.

Schnitzl
2004-04-26, 22:16:45
danke für die Antworten.

Ich könnte mich ja jetzt über Matrox aufregen aber das lass ich lieber, ist zu OT :D

Bin mal gespannt was aus XNA wird

tokugawa
2004-04-27, 08:03:28
Original geschrieben von Schnitzl
was meinst du denn mit Batches? Und mit XNA?

Sry, ich kann mir nicht vorstellen, dass z.B. Croteam in OpenGL mehr Effekte als in DX einbaut um MS eins auszuwischen - ich glaube eher dass die beides so gut wie möglich gemacht haben, bringt doch dann im Endeffekt mehr verkaufte Spiele, oder?

Wenn bei DX8 ein Loch ist und DX9 ok ist heisst das dann das OpenGL z.B. 1.1 nicht darstellen kann aber 2.0 ?

Fragen über Fragen =)

Es geht nicht um's "können", sondern darum, wie einfach es ist. Für DX8 Level gibt's halt keine ARB approved extension für fragment programs. "Können" tut es OpenGL über vendor-specific Extensions (das ist normal immer der erste Schritt eine Technologie in OpenGL verfügbar zu machen).

Und leider ist DX8 Level Hardware nun mal eben noch verbreitet genug, dass man nicht wirklich total auf DX9 Level setzen kann (die dann meistens schon ARB_fragment_program haben), und die DX8 Level Hardware Besitzer mit DX7 Level bzw. Core OpenGL 1.4 Funktionen abspeisen, ist vermutlich nicht wirklich eine Option.

Dadurch steigt natürlich der Aufwand in mehreren Bereichen der Engine-Programmierung. Hat man nur einen Pfad, reicht blindes "Direkt-Programmieren" (Aufrufen von OpenGL oder DirectX Funktionen direkt). Bei zwei Pfaden könnte man sich (ist nicht schön, aber geht grad noch) mit if's aushelfen. Bei mehr sollte man schon eine Abstraktion reinbringen (und die Erfordernisse aller Renderpfade unter einen gemeinsamen "abstrakten" Hut zu bringen ist nicht so trivial). Neben dem Zusatzaufwand, jetzt einen abstrakten "Renderer-Layer" bauen zu müssen muß jetzt für jeden Pfad noch dazu ein konkreter Renderer implementiert werden. Hier ist dann sehr von Bedeutung, wie gut man diese Abstraktion designt hat. Jedenfalls ist es dann wirklich vorbei mit "drauflosprogrammieren, wird scho passen".

Ich denke dass bei Serious Sam und seiner DX7 Level Engine es noch wirklich der Fall war, dass OpenGL damals "günstiger" war. Aber spätestens jetzt mit DX9 hat OpenGL einen gewissen Aufholbedarf zu DirectX, und damit mein ich keinen technologischen, sondern eher einen semantischen.

Der Extension-Dschungel ist schon recht dicht -und vor allem lästig ist die arschlange Zeit, die vergeht, bis mehrere Vendor-specific Extensions über verschiedene Wege endlich ARB-Approved sind - oder halt eine ARB Entsprechung bekommen (sh. ARB_vertex_buffer_object, die NV_vertex_array_range und ATI_vertex_array_object ersetzen soll), und dann - nach 6 Monaten erst - endlich in den OpenGL Implementationen ("OpenGL Treiber") vorhanden sind, und dann nicht mal in den Implementation aller Hersteller... geschweige denn wie lange es dauert bis eine Extension endlich Teil von "Core OpenGL" wird...

Aber in gewisser Weise ist das auch gleichzeitig die Stärke von OpenGL.

Coda
2004-04-27, 11:31:35
Es sieht besser aus und läuft schneller.
Ersteres schonmal gar nicht und letzteres ist eine Sache der Programmierung. Wenn man keine kleinen Batches verwendet, ist D3D mindestens genauso schnell (auf ATi ist OpenGL sowieso nicht wirklich schneller)

Gast
2004-06-01, 01:47:58
Original geschrieben von Gast
bezieht sich wohl nur nur direct 3d oder?

afaik gibt es für den mac überhaupt keine soundschnittstelle :(

Das ist Falsch.

Für den Mac gibt es OpenAL und diese kann auch 3d Sound.


www.openal.org

Gast
2004-06-02, 12:41:05
Original geschrieben von Gast
Das ist Falsch.

Für den Mac gibt es OpenAL und diese kann auch 3d Sound.


www.openal.org

irre ich mich oder nutzte unreal2 (oder wars ut2003) ebenfalls openAL ?
jedenfalls musste man dort bei der installation gleichnamiges plugin installieren

Gast
2004-06-04, 18:51:31
Du irrst nicht.
Unreal 2003 und 2004 nutzen beide OpenAL
als 3d Sound API, deswegen hat man auch unter Linux damit 3d Sound.

Steht aber auch auf der OpenAL Webseite.



Bei Doom 3 gilt genau das selbe.

Gast
2004-06-05, 09:51:19
Original geschrieben von Endorphine
<träum>Am besten die Gelegenheit beim Schopfe packen, Direct3D/DirectDraw einstampfen und OpenGL zum Standard erklären. Das wäre doch im Interesse von allen =).</träum> Das Windows-Quasimonopol auf Spiele und 3D-Beschleunigung überhaupt wäre damit faktisch Geschichte.

Edit: Man kann sich auch Absatzchancen schaffen, in dem man nicht auf plattformgebundene proprietäre APIs wie DirectX setzt. Wie Ulukay schon schrieb ermöglichen offene APIs wie OpenGL ganz neue Horizonte in der Portierbarkeit. Mit DirectX ist man auf Xbox und x86 Windows-PC festgelegt.

Und genau diese Welt hat 90% Marktanteil bei Gamern!

Wie bitteschön soll das im Business funktionieren????