Du bist nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: DeveloperTalk. Falls dies dein erster Besuch auf dieser Seite ist, lies bitte die Hilfe durch. Dort wird dir die Bedienung dieser Seite näher erläutert. Darüber hinaus solltest du dich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutze das Registrierungsformular, um dich zu registrieren oder informiere dich ausführlich über den Registrierungsvorgang. Falls du dich bereits zu einem früheren Zeitpunkt registriert hast, kannst du dich hier anmelden.

Johannes S.

Fortgeschrittener

  • »Johannes S.« ist der Autor dieses Themas

Beiträge: 444

Registrierungsdatum: 24.06.2011

Wohnort: Lychen

Danksagungen: 71

  • Private Nachricht senden

1

23.07.2012, 16:43

Overlay bei DirectX und OpenGL

Hallo,
ich wollte anfragen ob sich jemand mit DirectX und/oder OpenGL auskennt und ein (kurzes) Tutorial schreiben kann, wie man ein Overlay erstellt. Die meisten kennen sicherlich Steam, Xfire, Overwolf, WeGameClient, Fraps, MyGamersCam oder das TeamSpeak 3-Overlay. Mich würde interessieren wie man ein solches Overlay erstellen kann und was man dabei beachten muss.
Ich denke, dass solche Overlays nicht mit jeder Sprache möglich sind, daher habe ich oben C und C++ als Präfix angegeben. Wenn jemand weiß wie das vieleicht in C# oder irgend einer anderen Sprache geht, würde ich mich auch dort über ein ensprechendes Tutorial freuen. Bei Googel habe ich bisher kein Tutorial gefunden, da meine Suchergebnisse mit Fehlerberichten und dessen Lösungen bei bestehenden Overlays oder Anti-Cheat-Theorien überlaufen. Ich habe aber auch noch nicht so lange gesucht.
Signatur ?

far

Schüler

Beiträge: 57

Registrierungsdatum: 28.12.2011

Danksagungen: 14

  • Private Nachricht senden

2

23.07.2012, 17:13

Blöde Frage: was ist ein Overlay? ^^
Support LibreOffice !

Johannes S.

Fortgeschrittener

  • »Johannes S.« ist der Autor dieses Themas

Beiträge: 444

Registrierungsdatum: 24.06.2011

Wohnort: Lychen

Danksagungen: 71

  • Private Nachricht senden

3

23.07.2012, 17:30

Kennst du eines der oben genannten Toos? Also hast du schonmal eins davon genutzt? Wenn du ein Spiel startest und eines dieser Tools nebenbei laufen hast, starten diese ein InGame-Overlay. Bei Steam muss man das Spiel auch über Steam starten um das Overlay zu haben, andere erkennen den Start des Spiels automatisch. Bei OpenGL-Spielen sind diese Overlays derzeit noch recht selten aber Steam bietet auch eins für OpenGL, auch wenn das noch etwas verbuggt ist.
Diese Overlays sind Anzeigen oder ähnliches die über dem Spiel angezeigt werden. Fraps zeigt so z.B. immer die FPS in der Ecke an. Steam zeigt ähnlich wie Skype auf dem Desktop unten rechts immer eine Benachrichtigung wenn du z.B. angeschrieben wurdest und beim Klick auf Umschalt+Tap legt sich ein leicht transparenter Hintergrund über das Spiel auf dem du einen Webbrowser oder ein Chatfenster öffnen kannst. So kannst du InGame ohne Probleme chatten und mal schnell was googlen oder ähnliches. Dabei werden die Eingaben und Mausbewegungen natürlich nicht mehr an das Spiel weitergegeben. Bei XFire hat man neben den Benachrichtigungen und dem "vollen Overlay" mit Browser, Musicplayer, Chat und Co. auch die möglichkeit bestimmte Sachen wie Uhrzeit, FPS, Bild der eigenen Webcam und andere Sachen permanent über dem Spiel anzeigen zu lassen.

Ich vermute das diese Overlays erkennen, wenn ein Programm DX bzw. OpenGL benutzt und vor der Ausgabe des Bildes in DX bzw. OpenGL immer noch die eigenen Bilder rüber rendert. Ich hätte halt gerne ein Tutorial, wie man sowas machen kann.
Signatur ?

psycho

Fortgeschrittener

Beiträge: 413

Registrierungsdatum: 26.06.2011

Danksagungen: 80

  • Private Nachricht senden

4

23.07.2012, 18:00

Computer sind dazu da, uns die Arbeit zu
erleichtern, die wir ohne sie gar nicht hätten.

JuKu

Profi

Beiträge: 574

Registrierungsdatum: 29.09.2011

Danksagungen: 48

  • Private Nachricht senden

5

24.07.2012, 13:18

Also meinst du jetzt nicht so ein Icon in der Taskleiste, welches dann bei Bedarf eine Meldung ausgibt, oder?
Wenn euch mein Beitrag weitergeholfen hat, drückt auf "Bedanken"!
Danke! :D

Simon

Profi

Beiträge: 725

Registrierungsdatum: 14.06.2011

Danksagungen: 210

  • Private Nachricht senden

6

24.07.2012, 14:31

Nein :D Er meint, dass er ein eigenes Programm / eine eigene Oberfläche über andere Spiele legen kann, so dass er beim Spielen darauf Zugriff hat.

Es hat sich bereits 1 registrierter Benutzer bedankt.

Benutzer, die sich für diesen Beitrag bedankt haben:

JuKu (30.07.2012)

far

Schüler

Beiträge: 57

Registrierungsdatum: 28.12.2011

Danksagungen: 14

  • Private Nachricht senden

7

24.07.2012, 19:46

Ich weiß nicht, irgendwie ist das ein wenig unpräzise.

Zitat

Fraps zeigt so z.B. immer die FPS in der Ecke an. Steam zeigt ähnlich
wie Skype auf dem Desktop unten rechts immer eine Benachrichtigung wenn
du z.B. angeschrieben wurdest und beim Klick auf Umschalt+Tap legt sich
ein leicht transparenter Hintergrund über das Spiel auf dem du einen
Webbrowser oder ein Chatfenster öffnen kannst.
Das sind ja alles verschiedene Sachen - und ich sehe auch nicht den Zusammenhang mit OGL und DirectX, wenn ich ehrlich bin. Also kann dir da leider auch nicht weiterhelfen.
Support LibreOffice !

Simon

Profi

Beiträge: 725

Registrierungsdatum: 14.06.2011

Danksagungen: 210

  • Private Nachricht senden

8

24.07.2012, 20:02

Doch, der Zusammenhang zu DX und OpenGL ist der, dass wohl der Context übernommen wird und dort reingezeichnet wird.
Dies geschieht völlig unabhängig vom Spiel und es handelt sich nicht um eine 2. Vollbildanwendung, da 2 Vollbildanwendungen Probleme bereiten würden.
Kannst dir ja folgenden Screenshot anschauen:
overlay.png
Im Vordergrund das externe Overlay und im Hintergrund das Spiel.

Erik

Profi

Beiträge: 1 274

Registrierungsdatum: 22.06.2011

Wohnort: Deutschland ;)

Danksagungen: 307

  • Private Nachricht senden

9

25.07.2012, 11:58

Also mit D3D Hooks geht das glaube ich ziemlich einfach. Ich hab mal was drüber gelesen, aber es noch nicht selbst gemacht. Jedenfalls müsstest du einfach mit dem Fenstertitel oder so über die WinAPI den Prozess bekommen und dann eine DLL injecten, in der der eigentliche Code ist. Damit kannst du dann ganz nomal auf die D3D Funktionen zugreifen und damit zB Sachen auf den Bildschirm Zeichnen... Da musste man sich aber noch irgendwie in IDA angucken, wo gewisse D3D funktionen in der DLL sind und diese dann quasi umleiten, dass statt der eigentlichen Funktion ein Hook in deiner DLL ausgefürht wird, damit du deine Befehle auch zum richtigen Zeitpunkt absetzen kannst...

ich versuch mal das tut wieder zu finden, ich hab das hier noch irgendwo als pdf rumliegen :D
Beste Webite im Internet ( ͡° ͜ʖ ͡°)
xinra.de

far

Schüler

Beiträge: 57

Registrierungsdatum: 28.12.2011

Danksagungen: 14

  • Private Nachricht senden

10

25.07.2012, 12:16

Doch, der Zusammenhang zu DX und OpenGL ist der, dass wohl der Context übernommen wird und dort reingezeichnet wird.
Dies geschieht völlig unabhängig vom Spiel und es handelt sich nicht um eine 2. Vollbildanwendung, da 2 Vollbildanwendungen Probleme bereiten würden.
Aso ^^
Support LibreOffice !

meschi

Fortgeschrittener

Beiträge: 263

Registrierungsdatum: 23.08.2011

Wohnort: /

Danksagungen: 40

  • Private Nachricht senden

11

28.07.2012, 12:50

also ich hatte eben die spontane idee einfach einen OpenGL kontext zu erzeugen, das programm zu forken und dann das neue programm mit dem einen prozess laufen zu lassen und das andere Programm (Spiel) dann sozusagen drüber malen lassen. Ist jetzt aber keine besonders durchdachte theorie, kann gut sein, dass das aus mehreren gründen nicht funzt.

Erik

Profi

Beiträge: 1 274

Registrierungsdatum: 22.06.2011

Wohnort: Deutschland ;)

Danksagungen: 307

  • Private Nachricht senden

12

28.07.2012, 12:58

Okay... habs gefunden... Ich schicks dir mal @jojo
Beste Webite im Internet ( ͡° ͜ʖ ͡°)
xinra.de

Simon

Profi

Beiträge: 725

Registrierungsdatum: 14.06.2011

Danksagungen: 210

  • Private Nachricht senden

13

30.07.2012, 15:02

Gibt es da keinen Link für alle zu?

Erik

Profi

Beiträge: 1 274

Registrierungsdatum: 22.06.2011

Wohnort: Deutschland ;)

Danksagungen: 307

  • Private Nachricht senden

14

30.07.2012, 15:03

Ich habs hier nur lokal auf der Platte srry. Ich kann auch mal versuchen, das im inet zu finden xD
Beste Webite im Internet ( ͡° ͜ʖ ͡°)
xinra.de

JuKu

Profi

Beiträge: 574

Registrierungsdatum: 29.09.2011

Danksagungen: 48

  • Private Nachricht senden

15

30.07.2012, 17:24

Kannst du das mir auch schicken? :D
Wenn euch mein Beitrag weitergeholfen hat, drückt auf "Bedanken"!
Danke! :D

Johannes S.

Fortgeschrittener

  • »Johannes S.« ist der Autor dieses Themas

Beiträge: 444

Registrierungsdatum: 24.06.2011

Wohnort: Lychen

Danksagungen: 71

  • Private Nachricht senden

16

01.08.2012, 12:34

So wie du mir das in der PM geschrieben hast kannst du das auch hier hochladen. Wobei ich nicht weiß, in wie weit du das Recht dazu hast xD
Bei Google habe ich auch noch diese Lib gefunden: http://directdrawoverlaylib.codeplex.com/releases/view/3687
Habe sie mir noch nicht genauer angesehen, aber vieleicht währe die ja auch noch eine gute Hilfe.
Signatur ?

Erik

Profi

Beiträge: 1 274

Registrierungsdatum: 22.06.2011

Wohnort: Deutschland ;)

Danksagungen: 307

  • Private Nachricht senden

17

01.08.2012, 13:00

Hab das Recht nicht...
Beste Webite im Internet ( ͡° ͜ʖ ͡°)
xinra.de

Ähnliche Themen

Verwendete Tags

DirectX, OpenGL, Overlay