Ich möchte mich in ein laufendes Spiel "einhaken", sagt Mario Bros, und jeden gerenderten Frame erfassen ... diesen Frame in einer Bilddatei speichern. Ein gutes Beispiel für etwas Ähnliches ist FRAPS. --Hinweis: Ich möchte nicht den gesamten Bildschirm / Desktop erfassen. Ich möchte ein Zielfenster erfassen.
Ich habe mir OBS (Open Broadcasting Software) angesehen, aber es ist nicht besonders schnell. Versteh mich nicht falsch, es ist großartige Software, aber leider gibt es keine / schlechte Dokumentation, was ein massives Projekt, das in c und c ++ geschrieben wurde, für einen neuen C ++ - Programmierer fast unzugänglich macht.
Ich habe mir auch GamingAnywhere angesehen , aber leider kann ich es nicht zum Laufen bringen, es gibt sehr wenig / keine Dokumentation, läuft nur in VS2010 und ist chaotisch (mit schlechter Variablennamen). Es ist jedoch ein Forschungsprojekt und daher verständlicherweise undokumentiert und chaotisch.
Ich weiß, dass dies mit OpenGL, GDI und Direct3D möglich ist, aber ich kann im Internet keine guten Beispiele finden.
Ich habe gelesen, dass glReadlPixels (mit OpenGL) verwendet werden können, und ich habe die Dokumentation gelesen , aber der Beitrag erwähnte nichts über das Einbinden in eine laufende Spiel- / Anwendungsgrafik.
Fragen:
Kann ich mich mit Direct3D in die Grafik eines mit OpenGL entwickelten Spiels einbinden? Muss die zum Einbinden verwendete Bibliothek mit der vom Spiel verwendeten identisch sein?
Wie hänge ich mich in die gerenderten Frames des Spiels ein, damit ich diese Frames in Bilddateien oder in eine Videodatei ausgeben kann? (Nur ein paar Links oder eine kurze Erklärung, was ich tun muss, wäre großartig)
BackBuffer - Ich habe gelesen, dass es sehr schnell ist, auf den BackBuffer zuzugreifen, um die Frames abzurufen. Hat jemand ein Beispiel für mich, wie man das mit den neuesten Bibliotheken macht? Ich habe festgestellt, dass die meisten Beispiele veraltet sind.
Gibt es für meine Zwecke eindeutig "das ist schneller als das"? Was ich meine ist, würde beispielsweise OpenGL für meine Zwecke schneller sein?
Wenn jemand von einem Open-Source-Projekt weiß (das im Wesentlichen das tut, was ich brauche), das aktiv entwickelt und gut dokumentiert ist, würde ich gerne davon erfahren.