Ergebnis 1 bis 20 von 22

Thema: Helan | Ein Programm...Eine Revolution (und ne Pre_Beta)

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Die Bilder sehen an sich schon mal ganz Nett aus. Allerdings sind mir die Farben etwas zu grell eingestellt, so dass sich manche dinge nicht wirklich abheben.

    Leider spiele ich keine Spiele, so dass ich weder etwas testen koennte noch es fuer mich ueberaus nuetzlich waere ... trotzdem finde ich die idee ueberaus reizend.

    Wenn dein Freund auf eine grosse Fangemeinde aus ist, koennte er ja mal testen, ob sein Programm auch im Hinblick auf den Rm2k und Nachfolger nutzbar ist. Damit waeren ihm wohl die Herzen hunderter Nutzer sicher, die sich schon seit Ewigkeiten aufgepeppte Graphiken wuenschen.

    Wenn er darauf bestehen sollte, seinen Code hier nicht zu veroeffentlichen, koennte er sich doch vielleicht wenigstens dazu hinreissen lassen, eine theoretische Abhandlung zu dem Thema zu schreiben ... das wuerde sicherlich dem einen oder andern hier interessante Impulse geben.

    Z.B. koennte er erklaehren, wie er genau diese Effekte gemacht hat, am besten nicht DirectX Abhaengig erklaehren. Dann koennten vielleicht auch einige OpenGL Programmierer hier davon profitieren.

    Alles in allem scheint es eine durchaus beeindruckende Arbeit zu sein, sollte alles gehalten werden, was versprochen wurde ...

  2. #2
    Zitat Zitat von Ineluki Beitrag anzeigen
    Die Bilder sehen an sich schon mal ganz Nett aus. Allerdings sind mir die Farben etwas zu

    grell eingestellt, so dass sich manche dinge nicht wirklich abheben.

    Leider spiele ich keine Spiele, so dass ich weder etwas testen koennte noch es fuer mich ueberaus nuetzlich waere

    ... trotzdem finde ich die idee ueberaus reizend.

    Wenn dein Freund auf eine grosse Fangemeinde aus ist, koennte er ja mal testen, ob sein Programm auch im Hinblick

    auf den Rm2k und Nachfolger nutzbar ist. Damit waeren ihm wohl die Herzen hunderter Nutzer sicher, die sich schon

    seit Ewigkeiten aufgepeppte Graphiken wuenschen.

    Wenn er darauf bestehen sollte, seinen Code hier nicht zu veroeffentlichen, koennte er sich doch vielleicht

    wenigstens dazu hinreissen lassen, eine theoretische Abhandlung zu dem Thema zu schreiben ... das wuerde sicherlich

    dem einen oder andern hier interessante Impulse geben.

    Z.B. koennte er erklaehren, wie er genau diese Effekte gemacht hat, am besten nicht DirectX Abhaengig erklaehren.

    Dann koennten vielleicht auch einige OpenGL Programmierer hier davon profitieren.

    Alles in allem scheint es eine durchaus beeindruckende Arbeit zu sein, sollte alles gehalten werden, was

    versprochen wurde ...
    Hallo,

    ich bin der Entwickler von Helan und hoffe es wird mir verziehen das ich einen solch alten Thread wieder zum leben erwecke.

    Ich wollte schon lange antworten aber es kam so einiges immer dazwischen (Zeit, Arbeit, Launen, etc.). Gerne bin ich bereit ein wenig zu erklären wie das ganze aktuell funktioniert und auch wie es zur Zeit als dieser Thread erstellt wurde funktionierte (damals wurde zB eine andere Technik verwendet die nicht unbedingt schlechter war sondern etwas spezialisierter.) Aktuell möchte ich nur eine grobe Übersicht vermitteln wie es im aktuellen Stand abläuft (Helan ist weiterhin nur noch Alpha da ich das projekt vor einiger zeit neu aufgesetzt habe.).

    Wie funktioniert Helan?

    Helan baut auf 3 Phasen auf, 1. "Initialisierungsphase", welche im Grundriss der Initialisierungsphase von Fraps ähnelt, es erstellt einen globalen Windowshook welches dafür sorgt das die DLL in der sich die Hookprozedur befindet in JEDEN laufenden Prozess geladen wird (SetWindowsHookEx). Durch den DLL Einstiegspunkt der dadurch aufgerufen wird kann ich nun zB. alles weitere vorbereiten.

    Dadurch kann Phase 2 ermöglicht werden, die "Hijackphase". in dieser Phase werden dringend benötigte Methoden/Funktionen aufgebrochen und eigener Code eingeschleust, zb hijacke ich die Direct3DCreate9 Funktion um später weiter führende Methoden wie EndScene, Reset und Release zu hijacken (dieser Umweg über Direct3DCreate9 ist nötig da ich nur so tiefer in die DirectX Ebene gehen kann, da alles weitere von D3D auf Interfaces aufbaut und an deren Methoden komme ich nur über den VTable heran wofür eine Instanz der Klasse für dieses Interface erstellt werden muss.). Das hijacken dieser Funktionen/Methoden ist recht einfach über "detours" möglich
    (http://research.microsoft.com/sn/detours/).

    Habe ich nun den Code der alten Methoden durch meine Methoden ersetzt kann es auch schon in die 3. Phase gehen, die "DrawFunnyStuffPhase", hier nutze ich die Möglichkeit aus nach zb EndScene selber zu rendern, zum einen ein Menü mit dem ich Parameter von diversen Effekten in Helan setzen kann oder eben die Postprocessingeffekte wie Bloom/Tonemapping, DepthOfField oder noch neuer SSAO (noch in Entwicklung ). Die Erklärung der diversen PostProcessing Effekte spare ich mir hier nun, da ich euch nun evtl sowieso schon zu tode gelangweilt habe (auf Anfrage kann ich aber auch dazu eine Menge erzählen).

    Zu beachten wäre noch das man alle Resourcen die man erstellt hat auch irgendwann frei geben muss, dazu nutze ich zum einen die gehijackte Methode "Release" zum anderen bemerke ich das indem ich einen localen Windowshook laufen lasse der mir auskunft über WindowsMessages wie WM_QUIT gibt.

    Unter OpenGL ist dies alles weitaus einfacher da man sich nicht mit den VTables herumschlagen muss und sich einiges an Kopfzerbrechen über Klassenfunctionpointer ersparen kann.

    Nich vergessen sollte man auch das man den globalen Hook wieder entfernt, denn nichts ist nerviger als eine Dll die sich nicht löschen lässt weil sie grade benutzt wird (von zig Prozessen zB.) dazu einfach UnhookWindowsHookEx verwenden.

    Beispiele und Erklärungen werde ich gerne geben, wenn ich denn nicht schon dafür gebannt werde das ich einen solch alten Thread wiederbelebt habe

    mfg Mark

  3. #3
    Das ist zwar Thread-Nekromantie uebelster Sorte, aber trotzdem freue ich mich ausgesprochen darueber, das du dich doch noch zu wort meldest, da das Thema ungemein Spannend zu sein scheint und noch dazu sehr fortgeschrittene Techniken verwendet, die fuer sehr viele sicher sehr Lehrreich sein koennten.

    Allerdings habe ich leider nicht mehr viele Erinnerungen an den Thread von damals und die Bilder funktionieren ja leider auch nicht mehr (URL not found) ...

    Vielleicht koenntest du mit aktuellem Material unser aller Interesse neu entfachen und uns in die Geheimnisse des Hijackings einweihen. Fuer viele Anwendungen ist sowas ja so gut wie der heilige Gral des Patchens ^^

  4. #4
    Klar, tu ich doch gerne, ich habe aber aktuell nur 2 Videos da Screenshots leider nur ein begrenztes maß an Informationen bermitteln können, daher:

    Tiefenunschärfe:
    Hier wird gezeigt wie der ZBuffer rekonstruiert wird ohne zugriff auf die Geometrie der gezeichneten Szene selbst zu haben um damt DOF zu simulieren.

    http://www.youtube.com/watch?v=SMJAf88iBWo

    Glow/Tonemapping/Bloom:
    Hier werden helle Bereiche zum leuchten gebracht, bzw das Farbsetting der Szene komplett verändert.

    http://www.youtube.com/watch?v=0HspSPxDQFQ

    Gerne sage ich auch wie das alles bewerkstelligt wird.

    Ich könnte auch das programm selbst anbieten, aber da es da noch diverse Stabilitätsprobleme gibt lasse ich dies lieber vorerst sein.

    mfg Mark

  5. #5
    One thing to add: Amazing!

    Geniales Projekt. Habe schon damals mitgelesen und war sehr gespannt auf die Videos. Ich muss sagen: Genial.

    Ich wäre wirklich am Source interessiert. ._.'
    Darf ich nebenher fragen in Welcher Sprache es geschrieben wird? Ich habe es entweder überlesen oder nicht entdeckt. >_<

  6. #6
    Das ganze ist komplett in C++ geschrieben.

    Den ganzen Source werde ich aber nicht preis geben, ich beantworte aber gerne Fragen und gebe Codeauszüge.

  7. #7
    Ich muss sagen, das sieht wirklich beeindruckend aus. Guild Wars schmeißt ja schon von sich aus mit Effekten um sich, aber was du da machst, schlägt das um Längen.

    Mich würde wirklich interessieren, wie das im Detail funktioniert. Bevorzugt in Form eines Tutorials oder Artikels auf www.dev-comm.de (Der Seite, zu der das Forum in der Zwischenzeit gehört)

    Allgemein fehlen uns hier leider Leute, die sich wirklich gut mit DirectX oder OpenGL auskennen.

  8. #8
    Mich als C++ und angehenden OpenGL Programmierer interessiert wirklich, wie du die Grafikroutinen hijackst.
    Das ganze ist sicherlich auch auf openGl portierbar. (Von mir sicherlich nicht, dafür habe ich noch nicht ausreichend Kenntnisse, ber ich würde sie mir gerne aneignen. =) )

    Ich wäre demnach an den Methoden Interessiert, die die Hooks erstellen und an denen, die die Grafikroutinen unterwandern.

    Du hast meinen vollen respekt... ^^"

  9. #9
    Nett.
    Das ist sicher besonders toll, für Leute, welche kleine Filmchen mit Spielen drehen. Durch Helan können sie dann simpel während der Aufnahme den gewünschten Effekt einstellen. Release ist erwünscht.

  10. #10
    Hi, danke.

    Sowas hört man doch gerne

    @makkurona: ich habe dazu schon etwas geschrieben, ich warte noch die Meinung von jemanden ab, dann würde ich da auch rausgeben.

    mfg Mark

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •