Mein Ziel mit dieser Mod ist es, Gothic 2 (und vielleicht sogar irgendwann Gothic 1), Grafisch auf den heutigen Stand der Technik zu bringen.
Dazu wird eine Proxy-DLL geschrieben, die es mir erlaubt Gothics Aufrufe der alten D3D7-Funktionen abzufangen, und an meinen eigenen Renderer weiterzuleiten, welche mittlerweile schon so weit ist, dass man zwischen dem normalen Gothic 2 und meinem Renderer kaum noch unterschiede feststellen kann.
Da die Phase vom "Gothic wieder so aussehen lassen wie Gothic" nun fast abgeschlossen ist, kann es nun endlich ans verbessern der Grafik gehen.
Hier sind einige Bilder von Features, die schon eingebaut wurden:
Bitte versteht aber, dass sich dieses Projekt noch in der Entwicklung befindet, und es deswegen u.A. zu Bugs oder Abstürzen kommen kann. Außerdem sind vielleicht nicht immer alle Features zugänglich, da sich manche noch in der Entwicklung befinden.
Nützliche Tasten:
Es gibt eine Log-Datei (Gothic II-Ordner), welche sich mit Numpad 1 und 2 stark befüllen lässt.
HBAO und der Wassershader können mit Numpad 5 und 6 aktiviert/deaktiviert werden
Mit Alt+Enter kann man zwischen Vollbild und Fenstermodus wechseln
Das ist zu beachten:
Das Spiel muss umbedingt im Fenstermodus gestartet werden! Ich liefere in den Paketen immer eine Gothic.ini mit, die das tut.
Der Renderer läuft immer in der Auflösung des Desktops. Gothics Auflösung findet sich allerdings noch im UI wieder, welches davon hochskaliert wird. Ihr solltet also auch diese Auflösung auf eure Desktopauflösung setzen (Gothic.INI, "zVidResFullscreenX", "zVidResFullscreenY")
Der Renderer passt das FOV für Breitbildmonitore an, es ist kein Breitbildfix notwendig.
Installation/Deinstallation:
Inhalt der runtergeladenen Zip-Datei so entpacken, dass er im Ordner "Gothic II\System" landet.
Zum Deaktivieren reicht es die ddraw.dll zu löschen, oder umzubenennen. Zum Deinstallieren sollten alle mitgelieferten Dateien und Ordner einfach gelöscht werden.
Es gibt im moment noch einige Probleme mit einigen Mods, welche z.B. hoch aufgelöste Texturen mitbringen. Hier kann es zu abstürzen kommen. Ich rate zum Ausprobieren dieser Mod eine frische Gothic II DNDR-Installation, der Version 2.6(fix)
Ich habe die letzten Tage/Wochen damit zugebracht Gothics alten D3D7-Renderer durch etwas moderneres zu ersetzen, nämlich D3D11.
Das ganze ist eine Proxy-DLL, welche alle nötigen D3D7-Methoden abfängt, ggf. einiges an Daten umkonvertiert, und dann an meinen eigenen D3D11-Renderer weiterleitet.
Das öffnet Türen für Shader-Effekte, PostProcessing, besseres Lighting, aber vor allem für mehr Kompatibilität, was der Hauptgrund für dieses Projekt war.
Deswegen ist es auch erstmal mein Ziel Gothic wieder so aussehen zu lassen, wie es eben mit D3D7 aussieht, bevor ich mich an irgendwelchen Schnickschnack setze. Außerdem gibt es hier und da noch einen Crash, dass sollte auch erstmal behoben werden.
Nun bin ich aber soweit, dass ich euch das ganze mal zum Testen zeigen möchte.
Auf was ist zu achten:
Am besten benutzt man im Moment noch meine Gothic.ini, da das ganze erstmal nur im Fenstermodus läuft
Es gibt 2 Crashes die ich noch nicht losgeworden bin: Einmal beim Starten des Spiels und einmal beim Laden eines Savegames. Beide können auftreten, müssen aber nicht. Am besten man probiert es einfach öfter mal aus bevor man aufgibt und hier ins Forum schreibt "Geht ja gar nicht!"
Savegames, welche hiermit erstellt werden haben kein Bild
Filmsequenzen werden angezeigt, allerdings noch nicht richtig vergrößert
Alles was glänzen soll glänzt noch nicht
Levelwechsel könnten das Spiel zum abstürzen bringen
Mit G1 könnte das ganze auch Funktionieren, ich habs aber nie getestet
Was bis jetzt funktioniert:
Abfangen und Rendern der Level- und Objektgeometrie
Rendern von Himmel und Effekten (Feuer, Zauber, etc)
Menüs, HUD und das Inventar
Darstellen von Filmsequenzen
Dynamisches Licht auf der Levelgeometrie
Dynamisches Licht auf Objekten (Sogar per-pixel)
Rendern von Vegetation
Das nachladen von Sachen während das Spiel läuft (War überrascht, dass Gothic 2 Multithreading benutzt)
Und vielleicht noch ein paar dinge mehr
Nützliche neue Tasten:
+/- regelt wie viele Dinge maximal gezeichnet werden dürfen (-1 = alle)
Numpad 0 lädt die Shader neu
Numpad 1 schreibt alle D3D7- und DDRAW-Calls ins Log (Log.txt im Gothic II-Ordner)
Numpad 2 schreibt alle State-Changes ins Log
Numpad 3 schaltet Texture-Saving ein. Dabei werden alle Texturen, die Gothic laden möchte als .png in system\Textures gespeichert
Wer mit den Shadern rumspielen möchte solle das bitte tun, sie befinden sich im Ordner "system\shaders".
Installation:
Die Zip-Datei so entpacken, dass alles im "system"-Ordner landet. Dann einfach Gothic 2 ganz normal starten.
Um wieder das normale Gothic2 zu haben reicht es die "ddraw.dll" zu löschen, umzubenennen oder zu verschieben.
Viel Spaß! (Und ich hoffe ich hab keine Dateien vergessen )
Für Download-Links bitte in das jeweils aktuelle Thema schauen. Im ersten Beitrag sollte jeweils ein Link zum nächsten Thema sein.
ich wollte das ganze mal testen nur geht es irgendwie nicht.
Ich habe das Zeug in meinen System-Ordner gepackt und Gothic 2 gestartet. Das Spiel ist im Fenstermodus gestartet und links oben steht auch G2D3D11(oder so ähnlich), als ich ein neues Spiel starten wollte.... ist es eingefroren und es kam "keine Rückmeldung" mehr.
Am besten versuchst du es einige male. Wenns immer nicht klappen möchte, lade doch mal die Log-Datei hoch. (Log.txt im Gothic 2 Ordner)
Aber vielen dank fürs Testen schonmal
Wenn es die ganze Zeit crasht, drück doch im Main-Menu mal bitte auf Numpad 1. Dann sollte das Log noch etwas ausschlaggebender sein (Und das spiel entsprechend langsam)
Ich habe es jetzt mal getestet, und es hat funktioniert.
Lediglich beim Speichern stürzt das Spiel ab, ohne den Spielstand zu erstellen. Beim nächsten Start ist er nicht mehr da.
Wie du ja schon gesagt hast, funktionieren spiegelnde Materialien noch nicht richtig.
Mehr ist mir nicht aufgefallen, danke für die Arbeit!
Als nächstes werde ich wohl erstmal versuchen DirectDraw komplett rauszuschmeißen. Im moment werkelt der Gothic-Renderer im hintergrund nämlich noch immermal wieder hier und da.
Man muss halt Gothic dazu bekommen zu denken alles wäre wie gehabt. Ist aber nicht so einfach rauszufinden was wann wo erwartet wird. Dann sollten die Crashes aber auch aufhören, denn die scheinen nicht in meinem Code, sondern irgendwo dazwischen zu sein.
Es gibt wieder was neues!
Ich hab es geschafft D3D7 nun komplett zu umgehen, sodass nur noch D3D11 benutzt wird. Außerdem funktioniert es nun halbwegs die Auflösung übers Menü zu ändern.
Und ich dachte mir, da ich so gut vorran komme, baue ich doch schnell mal einen Nachbearbeitungs-Effekt ein,
nämlich das Horizon Based Ambient Occlusion, welches man u.A. aus Battlefield 3 kennt.
An den hellen Pixelkanten arbeite ich noch. Da das ganze nun auch noch ein bisschen fummeliger geworden ist gibts das nun noch nicht zum Download, da muss noch ein bisschen Feinschliff betrieben werden
Ambient Occlusion sorgt für weiche Schatten durch die Streuung des Lichts in der Atmosphäre.
Schau doch mal auf die Region direkt unter dem Zaun. Da ist auf dem linken Bild ein fetter schwarzer Schatten drunter, auf dem rechten nicht
Ist noch nicht bestens eingestellt, deswegen ist er da vielleicht sogar etwas zu doll. Aber gerade in Bewegung verleien diese Schatten dem Bild viel mehr Tiefe.
Man kann sich nun streiten ob das nötig ist oder nicht, ich finde Gothic sieht so gut aus wie es ist :P
Aber trotzdem sollte man doch alle möglichkeiten ausschöpfen, die man hat, und vielleicht sieht es am Ende sogar noch besser aus als original
Ich sehe auch einen klaren Unterschied, und wenn man die Schatten etwas schwächt, sieht es für mich auch besser aus als vorher.
Wäre wirklich super, wenn du weiter dran bleibst und zunächst die Abstürze beheben(falls sie noch auftreten) sowie spiegelnde Materialien einbauen würdest. Jetzt wo es schon so weit ist.
Btw: Das Backface-Culling der Zengine funktioniert nicht richtig, was auch zur schlechten Performance beiträgt. Könntest du da überhaupt theoretisch eingreifen, oder hat das nichts mit dem Renderer an sich zu tun?
Versteh mich nicht falsch. Ich finde das Projekt toll. Echt super, dass endlich mal jemand an dem Renderer werkelt. Hoffe nur, dass du weit genug kommst, um der community einen lauffäigen verbesserten Renderer anbieten zu können. Toy toy toy.
Mir war das einfach nicht aufgefallen weil ich zwischen den zwei bildern wechseln musst und keinen direktvergleich hatte, also zwei bilder direkt nebeneinander.
Btw: Das Backface-Culling der Zengine funktioniert nicht richtig, was auch zur schlechten Performance beiträgt. Könntest du da überhaupt theoretisch eingreifen, oder hat das nichts mit dem Renderer an sich zu tun?
Kommt darauf an wie Gothic mit die Daten herschickt. Wenn die Daten schon doppelseitig kommen kann ich da auch nichts machen. Andernfalls sollte das eigentlich schon funktionieren.
Kommt darauf an wie Gothic mit die Daten herschickt. Wenn die Daten schon doppelseitig kommen kann ich da auch nichts machen. Andernfalls sollte das eigentlich schon funktionieren.
Verzeih, ich meinte Occlusion-Culling, also die verdeckten Flächen. Da es sonst kaum oder gar nicht funktioniert, gibt es die Ghost-Occluder, die den gleichen Effekt haben.
Könntest du dir vorstellen, zum nächsten Moddertreffen zu kommen und dein Projekt zu präsentieren?
Uff, ich wohn hier ganz oben im Norden, bevor ich so eine Reise deswegen veranstalte sollte es erstmal fertig werden ^^
Verzeih, ich meinte Occlusion-Culling, also die verdeckten Flächen. Da es sonst kaum oder gar nicht funktioniert, gibt es die Ghost-Occluder, die den gleichen Effekt haben.
Hmmm... Das wäre vielleicht möglich. Ich muss mal schauen ob sich da was machen lässt.
Ein so "altes" Spiel noch einmal in der Art und Weise zu modden. RESPEKT. Bin wirklich gespannt, was sich daraus noch entwickelt. Einem Relaunch alter Gothic-Teile sind wir glaube ich alle nicht abgeneigt. Und da offiziell nix mehr passiert, wär das schon genial. Ich werde auf jeden Fall das weiter beobachten.
Zitat von Degenerated
Hey Leute!
Ich habe die letzten Tage/Wochen damit zugebracht Gothics alten D3D7-Renderer durch etwas moderneres zu ersetzen, nämlich D3D11.
Das ganze ist eine Proxy-DLL, welche alle nötigen D3D7-Methoden abfängt, ggf. einiges an Daten umkonvertiert, und dann an meinen eigenen D3D11-Renderer weiterleitet.
Das öffnet Türen für Shader-Effekte, PostProcessing, besseres Lighting, aber vor allem für mehr Kompatibilität, was der Hauptgrund für dieses Projekt war.
Deswegen ist es auch erstmal mein Ziel Gothic wieder so aussehen zu lassen, wie es eben mit D3D7 aussieht, bevor ich mich an irgendwelchen Schnickschnack setze. Außerdem gibt es hier und da noch einen Crash, dass sollte auch erstmal behoben werden.
Nun bin ich aber soweit, dass ich euch das ganze mal zum Testen zeigen möchte.
Auf was ist zu achten:
Am besten benutzt man im Moment noch meine Gothic.ini, da das ganze erstmal nur im Fenstermodus läuft
Es gibt 2 Crashes die ich noch nicht losgeworden bin: Einmal beim Starten des Spiels und einmal beim Laden eines Savegames. Beide können auftreten, müssen aber nicht. Am besten man probiert es einfach öfter mal aus bevor man aufgibt und hier ins Forum schreibt "Geht ja gar nicht!"
Savegames, welche hiermit erstellt werden haben kein Bild
Filmsequenzen werden angezeigt, allerdings noch nicht richtig vergrößert
Alles was glänzen soll glänzt noch nicht
Levelwechsel könnten das Spiel zum abstürzen bringen
Mit G1 könnte das ganze auch Funktionieren, ich habs aber nie getestet
Was bis jetzt funktioniert:
Abfangen und Rendern der Level- und Objektgeometrie
Rendern von Himmel und Effekten (Feuer, Zauber, etc)
Menüs, HUD und das Inventar
Darstellen von Filmsequenzen
Dynamisches Licht auf der Levelgeometrie
Dynamisches Licht auf Objekten (Sogar per-pixel)
Rendern von Vegetation
Das nachladen von Sachen während das Spiel läuft (War überrascht, dass Gothic 2 Multithreading benutzt)
Und vielleicht noch ein paar dinge mehr
Nützliche neue Tasten:
+/- regelt wie viele Dinge maximal gezeichnet werden dürfen (-1 = alle)
Numpad 0 lädt die Shader neu
Numpad 1 schreibt alle D3D7- und DDRAW-Calls ins Log (Log.txt im Gothic II-Ordner)
Numpad 2 schreibt alle State-Changes ins Log
Numpad 3 schaltet Texture-Saving ein. Dabei werden alle Texturen, die Gothic laden möchte als .png in system\Textures gespeichert
Wer mit den Shadern rumspielen möchte solle das bitte tun, sie befinden sich im Ordner "system\shaders".
Installation:
Die Zip-Datei so entpacken, dass alles im "system"-Ordner landet. Dann einfach Gothic 2 ganz normal starten.
Um wieder das normale Gothic2 zu haben reicht es die "ddraw.dll" zu löschen, umzubenennen oder zu verschieben.
Viel Spaß! (Und ich hoffe ich hab keine Dateien vergessen )
Wie bekommt man Muds Geschlechtsteil auf 20 cm Grösse?
Ein so "altes" Spiel noch einmal in der Art und Weise zu modden. RESPEKT. Bin wirklich gespannt, was sich daraus noch entwickelt. Einem Relaunch alter Gothic-Teile sind wir glaube ich alle nicht abgeneigt. Und da offiziell nix mehr passiert, wär das schon genial. Ich werde auf jeden Fall das weiter beobachten.
Danke, sowas hört man doch gerne ^^
Ich hoffe genau so, dass das Projekt nicht einfach irgendwann auf halber Strecke endet weil ich keine Zeit habe oder so. Wenn es eine wirklich benutzbar Version gibt werde ich aber auf jeden Fall den Quellcode mitgeben.
Wäre es damit auch möglich Downsampling zubenutzen?
Kann ich einbauen, joar. Bin aber persönlich nicht so Fan davon, da das einfach total ineffizient ist.
Ich werde wohl auf sowas wie SMAA zurückgreifen. Macht das Bild nicht so unscharf wie FXAA und sieht besser aus. MSAA ist auch möglich, wenn man dafür auf nachbearbeitungseffekte verzichtet.
MSAA ist praktisch downsampling, wobei nur die pixel an den kanten mehrfach berechnet werden. FXAA und SMAA sind effekte die man nacher einfach über das Bild packen kann.