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

1

20.01.2011, 17:27

Shader Model 4 oder 5 mit XNA verwenden?

Ein Freund von mir und ich überlegen, eventl. XNA für ein Hobbyprojekt zu verwenden. Ich hab mich mal ein wenig eingelesen, und bin dabei u.a. auf diese Tabelle gestoßen. Wenn ich das richtig lese, kann man auch mit dem highDef-Profil maximal Shader Model 3.0, nahcdem, was ich ansonsten gelesen hab, deswegen, weil die Xbox 360 nur 3 mit n paar extensions unterstützt. Mit google hab ich nur herausgefunden, das a) ältere XNA-Versionen ausshcließlich auf DX9 aufsetzen, und dementsprechend maximal Shader Model 3 verwenden können, und b) bei XNA 4 einige Sachen umgebaut wurden, u.a., damit es auch mit DX10/11 implementiert werden kann. Dementsprechend meine frage: lassen sich die beschränkungen durch die Profile irgendwie umgehen, um Shader Model 4 oder 5 zu verwenden?

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

2

20.01.2011, 18:43

Ich kenn mich jetzt mit XNA nicht so wirklich aus aber ich denke mal wenn das da in der Doku so steht wird das auch so sein. Einen Weg drumherum gibts wohl eher kaum. Ich weiß nicht genau wie Shader in XNA geladen werden (das hat doch so ne art Content Compiler, nehme mal an der packt auch gleich die Shader mit ein) aber falls du ihm irgendwie vorkompillierte Shader unterschieben kannst kannst du ja versuchen Shader Model 4 Shader mit fxc zu kompilieren und diese binaries dann an XNA zu übergeben. Nur selbst wenn das funktioniert wirds wohl kaum was nutzen denn die ganzen Interfaces sind vermutlich nicht auf die entsprechenden Features ausgelegt. Welche Features hast du denn vor so zu verwenden dass Shader Model 3.0 nicht ausreicht?

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

3

20.01.2011, 18:56

Ok, laut diesem blogpost ist auch XNA 4.0 Direct3D9 only...

Es gibt aber offenbar einen hack und einen rewrite die DirectX 10 support bringen.

4

20.01.2011, 19:03

Das mit den binaries ist ne interessante idee, werde mir bei gelegnheit mal die zuständigen XNA-Klassen angucken.
Was ich bei Shader model 4 brauche/haben will: Unified Shader Model, im speziellen zugriff auf Texturen vom vertex shader aus (geht ja afaik erst ab Shader Model 4). Interessanterweise gibt es in der Tabelle einen punkt "Vertex texture formats" und bei den Shadern steht auch

Zitat

(Xbox 360 supports custom shader extensions such as vfetch that are unavailable on Windows.)
. Sprich, wenn ich jetz nciht ganz blöd bin, hat die Xbox diverse hübsche SM4-features als platformspezifische Erweiterung von SM3, aber unter windowsv SM4 benutzen mag er net :-(

EDIT: zweiter post zu spät gesehen, danke für die links, werd mir das nahcher mal angucken, jetz erstmal essen usw.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

5

20.01.2011, 19:07

Mit der Tatsache dass XNA 4.0 rein auf D3D9 basiert fällt das mit den Binaries sowieso flach. Aber Vertex Texture Fetch gibts eh auch schon in SM 3.0, da brauchts kein SM 4.0. Bleibt allein die Frage ob XNA das auch im Angebot hat...

Das vfetch hat soweit ich das sehen kann jedenfalls nichts mit Vertex Textures zu tun sondern eher mit Hardware Instancing. Das geht in D3D9c normal über Stream Frequencies nur hat die XBox 360 da offenbar ein anderes System das es dir im VertexShader erlaubt direkt Daten in einem Buffer zu adressieren und zu laden.

Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von »dot« (20.01.2011, 19:21)


6

22.01.2011, 17:36

Ok, also sieht's so aus: das, wofür ich dachte, das wir SM4 bräuchten, gibt's auch schon in SM3, und falls wir doch mal SM4 bruachen, gibt's entweder bis dahin ohnehin ein neues XNA, das das unterstützt, oder man kann's irgendwie anders reinbasteln.
Danke für die Hilfe und die Links.

Werbeanzeige