DGL
https://delphigl.com/forum/

Shader aus fremdem Programm auslesen?
https://delphigl.com/forum/viewtopic.php?f=20&t=11188
Seite 1 von 1

Autor:  Aya [ Di Jun 03, 2014 15:28 ]
Betreff des Beitrags:  Shader aus fremdem Programm auslesen?

Hi,

ich weiß das es Programme gibt um von fremden Programmen die Shader auszulesen, mir fällt nur grad absolut nicht ein welche das waren oder wie ich die finde... :(

In meinem Fall geht es um ein Direct3D 11 Programm bei welchem ich gern einen blick in die Shader werfen würde.

Kennt jemand ein Programm dafür?

Aya~

Autor:  glAwesome [ Di Jun 03, 2014 21:55 ]
Betreff des Beitrags:  Re: Shader aus fremdem Programm auslesen?

Für Direct3D kenne ich keins. Für OpenGL-Programme nutze ich gDEBugger für solche Zwecke. DirectX lässt sich soweit ich weiß (dieses Wissen stammt aber aus DX9-Zeiten) in einen Debug-Modus schalten, vielleicht kannst du damit was erreichen. Jedoch ist es fraglich, ob du überhaupt an den HLSL-Sourcecode kommst, da es inzwischen (auch mit OpenGL) möglich ist, der Grafik-API nur noch Binaries zu übergeben. Aus Gründen des Kopierschutzes und zum Verkürzen der Ladezeiten dürfte das recht häufig eingesetzt werden.

Autor:  OpenglerF [ Di Jun 03, 2014 22:27 ]
Betreff des Beitrags:  Re: Shader aus fremdem Programm auslesen?

HLSL wird in einen Bytecode kompiliert.
Bei OpenGL ist das übrigens immernoch nicht wirklich möglich. Die binäre Shader die man von OpenGL bekommen kann sind platformabhänig und eigenen sich höchstens zum Cachen der Shaderkompilate, aber nicht zur Auslieferung.
Außerdem ist fraglich in wie weit der (binäre) Shadercode dir wirklich weiter hilft. Für sich alleine ist er vermutlich relativ nichts sagend und erfüllt seine Aufgabe nur im Kontext des gesamten Programmes.

Autor:  TAK2004 [ Mi Jun 04, 2014 18:19 ]
Betreff des Beitrags:  Re: Shader aus fremdem Programm auslesen?

Du kannst mit PIX dir den ASM ähnlichen Shader Code geben lassen, bzw. die mehrheit kompiliert den Shader nur als intermediate Code, dann ist der auch noch als normaler Shader lesbar, einfach mit PIX ran hängen und die Shader Objekte für den aktuellen Frame State angucken.

Autor:  mathias [ Do Jun 05, 2014 17:19 ]
Betreff des Beitrags:  Re: Shader aus fremdem Programm auslesen?

Zitat:
ich weiß das es Programme gibt um von fremden Programmen die Shader auszulesen

Mit etwas Glück findet man der Shader-Code als Text-Datei innerhalb der Exe-Datei.

Seite 1 von 1 Alle Zeiten sind UTC + 1 Stunde
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/