Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

BurningWave

Alter Hase

  • »BurningWave« ist der Autor dieses Themas

Beiträge: 1 106

Wohnort: Filderstadt/Konstanz

Beruf: Student

  • Private Nachricht senden

1

17.02.2010, 19:38

TriBase-Engine und DirectX 11

Hallo,

ich spiele schon seit einiger Zeit mit dem Gedanken, die TriBase-Engine auf DirextX 11 aufzurüsten.
Doch dazu habe ich noch einige Fragen:

Gibt es eine Möglichkeit, DirectX 9 und DirectX 11 Schnittstellen zusammen zu verwenden, mich interessiert nämlich vor allem Tesslation, was ich noch gerne in die TriBase-Engine einbauen würde. Muss ich dazu die ganze Engine auf DirectX 11 umbauen oder kann ich z.B. nur den Grafikteil umbauen bzw. von einer DirectX 11 Schnitstelle eine DirectX 9 Schnittstelle anfordern?

Wenn ich tatsächlich die gesamte Engine auf DirectX 11 umbauen muss, was muss ich dabei beachten, was für große Ändrungen muss ich vornehmen bzw. welche Teile müsste ich komplett neu schreiben?

Was muss ich generell beachten?

Ich hoffe ihr könnt mir helfen.

mfg

BlazeX

Alter Hase

Beiträge: 478

Wohnort: DD

Beruf: Maschinenbau-Student

  • Private Nachricht senden

2

17.02.2010, 20:27

Erstmal: D3D9-Interfaces lassen sich nur untereinander kombinieren und anfordern. Für alle 10er musst du eben ein 10er erstellen, für alle 11er eben ein 11er. Eine zusätzliches "Tesselation-Interface" bekommste nicht für lau.

Wenn du Tesselation in die Engine einbauen willst, musst du auch die Engine auf D3D11 umsatteln und eine D3D11 fähige Grafikkarte in deinen Computer einbauen. Derzeit gibt es von ATI welche. Auf die Fermis von NVIDIA mustte allerdings noch warten.

Ich habe mit D3D9 angefangen eine Engine zu schreiben. Ich hab sie untergliedert. "Core" und "Math" waren fertig. Ich hatte gerade mit "Video" angefangen. Da war das Device (mit Fenster) fertig, dazu noch Vertex und Index Buffer und ein Texturmanager.
Damit bin ich heut fertig geworden, das auf D3D11 umzusatteln.

Es war ein hartes Stück Arbeit!

Was ist in D3D11 neu?
- Der Unterschied von D3D10 zu D3D11 ist gering.
- D3D11 unterstützt Feature-Levels, die es erlauben, D3D11 auch auf D3D9-fähiger Hardware zu starten. Allerdings gibts D3D11 erst ab Vista bzw. 7. Und da wird eher D3D10 Hardware drin stecken. Jedenfalls gehts.
- Das ResourceManagement ist fundamental anders geworde. Dank der Virtualisierung gibt es jetzt kein Lost Device im Sinne von Alle Resourcen kaputt mehr. Weiterhin wird jetzt fast alles über Descs erzeugt und benutzt. Weiterhin hat man nicht nur die Resource an sich (Wird jetzt nur noch als Haufen Daten betrachtet), sondern man hat für jede Verwendungsmöglichkeit bei Texturen eine/ein (kann mich einer auflären?) View, die beschreibt, wo wie warum wozu die Daten liegen.
- Du hast keine Fixed Function Pipeline mehr -> DU musst alles mittels Shadern implementieren. Dazu hat MS jetzt die Pipeline anders gegliedert.
- Es gibt kein Direct3Dn-Interface mehr. Nur noch das Device (und seit 11 auch verschiedene Device Context fürs Rendern). Wenn du den Settings-Dialog auf D3D11 packen willst, wünsch ich dir jetzt schonmal viel Spaß!

Es ist eine ziemlich große Umstellung. Ich musste teilweise von ganz vorn anfangen und mich langsam rantasten. Vor allem bestand die meiste Zeit aus Doku lesen und setzen lassen.
Tipp am Rande: Lies den D3D10 Programming Guide.

Lohnt sich der Umstieg? Für mich war es bis jetzt fast nur Frustration und verschwindend geringe Erfolge.
Da die TriBase einmal mit D3D9 anständig läuft, würde ich mir genau überlegen, da D3D11 drunter zu packen. Ich würds nicht tun.

unsigned long

Treue Seele

Beiträge: 140

Wohnort: Herzogenrath

Beruf: Fachinformatiker Fachrichtung Anwendungsentwicklung

  • Private Nachricht senden

3

17.02.2010, 20:29

bau dir ne eigene "Engine". Die TriBase ist zwar fein, aber sehr begrenzt.

Alyx

Treue Seele

Beiträge: 236

Wohnort: Hannover

Beruf: Head Of Software Development

  • Private Nachricht senden

4

17.02.2010, 22:22

Ich hatte mich die letzten Tage auch mal ein wenig mit Direct3D 11 beschäftigt, um nicht zu inkompatibel zu meinem OpenGL 3.2 Interface zu werden und bin am Ende zu dem Schluss gekommen, dass man besser noch ein Jährchen warten sollte.
Der Support seitens Microsoft, GPU-Herstellern und dem Web ist quasi noch gleich Null, da es einerseits noch recht frisch ist, andererseits aber kaum jemand ernsthaft dafür entwickelt, da sich den Vista-Cut über die DirectX 10er Hürde eigentlich keiner leisten kann, dafür gibt's noch viel zu viele XP-PCs.
Von daher hat man da dann wirklich alle Zeit der Welt so etwas sauber von Grund auf aufzubauen. :-)

LG
Alyx

Werbeanzeige