...
Testweise hab ich mal 8k & 16k Shadowmaps implementiert, das hilft ein wenig.
Für alles weitere muss ich mich erst einarbeiten,...
Aber die Art und Weise wie die Schatten erzeugt und gefiltered werden ist nicht die Beste, nach meinen Recherchen. -> https://tinyurl.com/y3g8oe2m
...
Greetings
Das ist richtig, die Schatten sind nicht 100% optimal und der Quellcode ist keineswegs leicht zu durchblicken.
Die "Filterung" bei den Schatten hilft soweit ich weiß auch kein bisschen.
Hier könnte man z.B. Cascading Shadow Maps verwenden, oder gleich die Percentage Closing Soft Shadows (PCSS) von Nvidia oder AMD's ShadowLib.
Dafür müsste man aber einige Stellen ändern, was wiederum mit viel Aufwand verbunden ist.
Ich bin gerade (wenn ich mal zeit habe nach der Arbeit) meine Version vom Renderer aufzuräumen. (modernes C++, Smart-pointer, ComPtr, Kommentare und Variablennamen verbessern etc.)
Ich habe mich auch mal daran versucht, die NVidia PCSS einzuarbeiten, aber habe nach ein paar Tagen aufgehört.
Ich bin aber gerade wieder im C++ Fieber und schaue mir das bestimmt noch mal an, sobald der Code sauberer aussieht.
Zitat von Bisasam
Ich habe das Problem, dass mein Gothic 1 mit Renderer sich nach ziemlich exakt 5 Minuten jedes Mal selbst abschießt. Ich krieg nur die Meldung, der hätte gewünscht, außerordentlich beendet zu werden und das wars. Hab meine Einstellungen schon verändert, Schatten runtergedreht, Tesselation aus usw. Es bleibt dabei.
....
edit: ich verwende den in der News angekündigten G1 Renderer Clockwork Edition.
Leider wurde der Renderer nicht für Gothic 1 optimiert, lediglich aufgefallene Showstopper für die Unterstützung und markante Fehler wurden behoben.
Der Renderer hat viele kleine Probleme mit G1, regelmäßige Abstürze zählen leider dazu.
Hier müsste sich mal jemand ransetzen und mit dem Renderer die Abstürze aufzeichnen.
Es kann auch sein, dass die Fehler durch die "GothicAPI", welche der Renderer für seine Hooks benutzt kommen.
Alles in allem nichts, was sich mal eben korrigieren lässt.
[...]Ich bin gerade (wenn ich mal zeit habe nach der Arbeit) meine Version vom Renderer aufzuräumen. (modernes C++, Smart-pointer, ComPtr, Kommentare und Variablennamen verbessern etc.)
Ich habe mich auch mal daran versucht, die NVidia PCSS einzuarbeiten, aber habe nach ein paar Tagen aufgehört.
Ich bin aber gerade wieder im C++ Fieber und schaue mir das bestimmt noch mal an, sobald der Code sauberer aussieht.[...]
Schön das sich noch jemand damit beschäftigt, wäre ja genial wenn der Renderer mal richtig laufen würde.
Aktueller Zustand: Bin zuhause, viel am schlafen aber sonst geht es. (PMs hole ich dieses Wochende nach)
Pflegestufe 3 ist DURCH !!!, Behinderten Prozente 100% mit Begleitung Bearbeitung, physisch und psychologisch arg angeschlagen.
Ich habe ein bisschen rumprobiert, wie man die Schatteneinstellungen "artefaktfreier" einstellen kann.
Es ist nur ein Punkt, auf den ich in meiner Anleitung eingehe:
Ich nutze gerade die Clockwork-Version für Gothic 1 und bin mit der Treppenbildung der Schatten nicht zufrieden, weshalb ich diese im "Advanced" Menü höherauflösend eingestellt habe. Das atmospherische Scattering möchte ich auch nicht haben, weil damit die Barriere verschwindet. Leider bleibt keine dieser Einstellungen gespeichert, wenn ich das Spiel neustarte. Das kann doch nicht normal sein?
Zitat von DavidVanScouten
Ich habe ein bisschen rumprobiert, wie man die Schatteneinstellungen "artefaktfreier" einstellen kann.
Es ist nur ein Punkt, auf den ich in meiner Anleitung eingehe:
Das ist ja blöd, dass man das nicht speichern kann!
das ist leider mehr oder weniger das k.o. Kriterium. das macht man ein paar mal und irgendwann hat man keine Lust mehr bei jedem Spielstart erst die Einstellungen anpassen zu müssen.
das ist leider mehr oder weniger das k.o. Kriterium. das macht man ein paar mal und irgendwann hat man keine Lust mehr bei jedem Spielstart erst die Einstellungen anpassen zu müssen.
Für die Änderung nur eines Wertes in Sekunden finde ich es verkraftbar!
ich habe jetzt schon öfters mal gesehen und gelesen, dass zusätzliches Gras auf Grastexturen eingefügt werden kann mit dem Renderer.
Aber ich habe noch nicht gesehen wie man das genau macht?
Kann der Renderer das live im Spiel und dabei in allen Gothics,...habs in Gothic Reloaded Mod gesehen und auch in der L'Hiver Edition.
Muss man das im Spacer "selber" machen oder wie läuft das? In manchen älteren Mods wäre es echt ne Freude den kargen Boden etwas aufzupeppen^^
Hier könnte man z.B. Cascading Shadow Maps verwenden, oder gleich die Percentage Closing Soft Shadows (PCSS) von Nvidia oder AMD's ShadowLib.
Dafür müsste man aber einige Stellen ändern, was wiederum mit viel Aufwand verbunden ist.
Ich bin gerade (wenn ich mal zeit habe nach der Arbeit) meine Version vom Renderer aufzuräumen. (modernes C++, Smart-pointer, ComPtr, Kommentare und Variablennamen verbessern etc.)
Ich habe mich auch mal daran versucht, die NVidia PCSS einzuarbeiten, aber habe nach ein paar Tagen aufgehört.
Ich bin aber gerade wieder im C++ Fieber und schaue mir das bestimmt noch mal an, sobald der Code sauberer aussieht.
Einbauen damit man gar keine Shadow Acne mehr bekommt was für mich zumindest ein viel größeres Problem darstellt und gleichzeitig löst man auch das Kanten Filmmern.
Soweit ich mich grob eingelesen habe,...
Um die Shadow Acne zu bekämpfen hätte man ja schon mal versuchen können die near plane näher zuschieben damit man genauere Daten in der Schadowmap bekommt, allerdings scheint das von GothicAPI nicht unterstützt zu sein^^
Da hab ich mich dann auch gefragt inwiefern man es überhaupt besser hinbekommt wenn man keine "eigene Kamera" benutzt.
Da kam auch die Frage auf ob es nicht mehr Sinn macht ReGoth zu supporten.
Auch Depth Biasing und Sloping könnte man aus probieren aber da blicke ich durch den Code nicht ganz durch,...damit rum zu spielen hat an der Stelle eher Figuren verschwindne lassen als etwas an den Schatten zu verändern^^
Aber man kanns ja auch anders versuchen noch hab ich durch den ganzen dx11 Kram und das Wrappen nicht ganz den Durchblickt nach einem halben Tag überfliegen des Codes. Das 3D Graphic Modul ist auch schon ne Weile her und das war OpenGL
Vielleicht können wir uns da auch zusammen tun =) gerade das Aufräumen muss man ja nicht zweimal machen.
Nach den Klausuren also Mitte August könnte ich mich wieder damit befassen =)
Um die Shadow Acne zu bekämpfen hätte man ja schon mal versuchen können die near plane näher zuschieben damit man genauere Daten in der Schadowmap bekommt, allerdings scheint das von GothicAPI nicht unterstützt zu sein^^
Da hab ich mich dann auch gefragt inwiefern man es überhaupt besser hinbekommt wenn man keine "eigene Kamera" benutzt.
....
Vielleicht können wir uns da auch zusammen tun =) gerade das Aufräumen muss man ja nicht zweimal machen.
Nach den Klausuren also Mitte August könnte ich mich wieder damit befassen =)
MfG
Erstmal danke ^^ mache das aus Spaß am lernen und weil ich leider in meinem Beruf sehr wenig mit C++ und vorallem 2/3D arbeite (Hauptsächlich C# und andere, antiquierte, Programmiersprachen)
Soweit ich weiß, hat der Renderer die Möglichkeit eine beliebige Kamera ins spiel einzufügen und diese als Sicht-trapez zu verwenden. (Ja, mir fehlen auch noch zusätzlich die Fachwörter, gerade im grafischen Bereich)
Aktuell habe ich schon ziemlich viel refakturiert richtung std::unique_ptr und WRL::ComPtr, sowie einige for-loops durch range-based for-loops ersetzt.
Das hat auch schon mal gleich die (De-)Konstruktoren deutlich vereinfacht. Dafür im Code nun leider an einigen Stellen "ComPtr.AddressOf()" weil ComPtr wunderbar das '&' überschreiben als 'Ptr->Release(), ComPtr.AddressOf()'
Dann noch ein paar Variablennamen im D3D11GraphicsEngine(+Base) für einige lokale variablen angepasst, damit man sich nicht nochmal mitten im code fragt "was war 'it' denn in diesem Block nochmal?"
Als nächstes setzte ich mich daran die ganzen std::\pair durch sinnvolle Strukturen zu ersetzen. (it.first.first.second ? Was passiert hier? Erstmal ein' Kaffee...)
Alles in Allem kann ich schon mal etwas schneller durch den Code navigieren und mit der std::\pair Änderung wird's alles auch nochmal deutlich lesbarer.
Man müsste mal schauen, was man bei der GothicAPI noch
...
Aktuell habe ich schon ziemlich viel refakturiert richtung std::unique_ptr und WRL::ComPtr, sowie einige for-loops durch range-based for-loops ersetzt.
Das hat auch schon mal gleich die (De-)Konstruktoren deutlich vereinfacht. Dafür im Code nun leider an einigen Stellen "ComPtr.AddressOf()" weil ComPtr wunderbar das '&' überschreiben als 'Ptr->Release(), ComPtr.AddressOf()'
Dann noch ein paar Variablennamen im D3D11GraphicsEngine(+Base) für einige lokale variablen angepasst, damit man sich nicht nochmal mitten im code fragt "was war 'it' denn in diesem Block nochmal?"
Als nächstes setzte ich mich daran die ganzen std::\pair durch sinnvolle Strukturen zu ersetzen. (it.first.first.second ? Was passiert hier? Erstmal ein' Kaffee...)
...
Falls jemand die 8k und 16k Shadowmaps testen will.
Ich hab mal ein Packet zusammen gepackt für alle Interessierten,....es ist klar dass es einen Performance Impact hat insbesondere die 16k^^
An der Schadowrange in den Erweiterten Einstellungen kann man etwas rumspielen, allerdings macht es wenig Sinn mehr als 2.0 zuwählen bei 16k außer man hat extreme Weitsicht.
das ist leider mehr oder weniger das k.o. Kriterium. das macht man ein paar mal und irgendwann hat man keine Lust mehr bei jedem Spielstart erst die Einstellungen anpassen zu müssen.
Jo, dann lieber doch ohne. Ist irgendwie nervig das immer umstellen zu müssen.
Baut auf der Clockwork Edition von Bonne6 auf, bietet darüberhin aber:
Aufgeräumteres Interface
Klarere Kommunikation der Benutzung und Einschränkungen, insbesondere "Wann wird gespeichert" also über die jetztige Session hinaus
ShadowRange und ShadowmapSize sind unabhängig von einander speicherbar
Auswahl von Presets mit dem ShadowQuality Slider, welche man dann in den Advanced Settings feinjustieren kann (Feinjustierungen haben erst nach Speichern und Neustart Auswirkung auf den Slider in den Basic Settings. Er zeigt dann Custom)
wird aber danach nochmal am Slider gedreht werden wieder die Preset Werte gesetzt
zusätzliche 8k und 16k Shadowmaps inklusive entsprechenden Presets Ultra und Extreme
Speicherbares Atmospheric Scattering auch in den Basic Settings verfügbar.
zusätzlicher Speicherbutton für die Advanced Settings, da Änderungen in den Advanced Settings nie gespeichert wurden, wenn nicht irgendwann einmal auf close in den Basic Settings gedrückt wurde
Bemerkung: Änderungen in den Basic Settings sind live in den Advanced Settings zu sehen. Anders herum allerdings nicht, erst bei Spielneustart
Gothic I (getestet):D3D11_17.6.7.1_Inofficial_Convenience_Edition_Gothic.zip
Bemerkung: Fehlermeldung am Start über falsche Version, obwohl korrekte Version installiert, kann in den meisten Fällen ignoriert werden, dennoch bleibt Benutzung auf Eigene Gefahr.
Statt Installation - Entpacken des Archivies in das Gothic 1/2 Game Verzeichnis
Löschen der UserSettings.bin im GD3D11 Ordner falls ihr über den alten Renderer drüber installieren wollt. Sonst gibts Hübsche Grafikfehler wenn nicht der Rechner explodiert
Berichtet mir von Problemen und von Einstellungen, welche noch nicht gespeichert werden, ihr aber unbedingt abspeichern wollt wie Atmospheric Scattering z.b.
Viel Spaß und ich hoffe es funktioniert mit Gothic I, falls nicht nehme ich gerne Spenden für eine GoG Kopie entgegen, oder doch die Brieftaube?
MfG
blood4ng3l
Edit: last minute Bug (Gothic 2 Startet nicht nur Musik) fixed
WOW! Danke! Wäre ja genial wenn aus der Sache noch etwas wird.
Aktueller Zustand: Bin zuhause, viel am schlafen aber sonst geht es. (PMs hole ich dieses Wochende nach)
Pflegestufe 3 ist DURCH !!!, Behinderten Prozente 100% mit Begleitung Bearbeitung, physisch und psychologisch arg angeschlagen.
Hey. Ich hatte mal angefangen, die grobe Struktur des Renderers (als einfacher Pseudo-Code) zu dokumentieren, hab dann aber keine Zeit mehr gefunden um das weiterzuführen. Falls es jemandem hilft, hier der Link: https://docs.google.com/document/d/1...it?usp=sharing
Hey. Ich hatte mal angefangen, die grobe Struktur des Renderers zu dokumentieren, hab dann aber keine Zeit mehr gefunden um das weiterzuführen. Falls es jemandem hilft, hier der Link: https://docs.google.com/document/d/1...it?usp=sharing
Darf ich da auch reinschauen? Hab ne Anfrage gesendet =)
Darf ich da auch reinschauen? Hab ne Anfrage gesendet =)
Oops. Ich dachte jeder kann das anschauen, Ich wollte nur Schreibzugriff begrenzen. Ich schau mal wie ich das fixen kann.
Edit: Sollte jetzt funktionieren.