Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : Grafikfehler mit Parallax Occlusion Map



Langenscheiss
28.11.2007, 21:38
Ich weiß nicht, ob dass im DX10 modus auch so ist, aber im dx9 modus produziert das POM in bestimmten Blickwinkeln üble Verzerrungen.

Nur vorweg: Nein, das hat nichts mit meinem System zu tun (falls nicht dx9 dran schuld ist). Das liegt am POM. Bisher hats noch kein Entwickler geschafft, das durchgängig und vernünftig zu implementieren.
Für die Techniker. Ich vermute, dass der Strahl des Raytracers schlicht und ergreifend nichts trifft und der dann irgendeinen Nonsense anzeigt. Kann mich da aber auch irren. Auf jeden Fall sollte sowas gefixt werden. Bei Gelegenheit könnte man dann gleich Silhouetten mit einführen.

General.Jung
29.11.2007, 13:59
Hallo Langenscheiss,

ja das ist wirklich richtig übel, ich hoffe dringest, dass hier noch daran gearbeitet wird. Ich weiß aber leider auch nicht, ob diese Fehler auch unter Direct3D 10 vorkommen. Wenn nicht, dann ist es in Ordnung. Ich habe diese Problem bereits im crymod forum unter Lense Effect gepostet.

NoName07
29.11.2007, 19:10
Ist mir bis jetzt nur einmal im Spiel aufgefallen, bei den Panzerspuren auf Wegen... Da verzerrt es sich unter bestimmten Blickwinkeln und es flimmert/zittert.

shadypepe
29.11.2007, 19:48
Bei mir ist das manchmal wen son wechsel von berghang auf gerade ebene ist, dann sieht das zum teil so aus, als wäre die fläche so nach unten versetzt - ist jetz schwer zu erklären aber ich glaub ihr meint das gleiche wie ich...

General.Jung
29.11.2007, 21:22
Hello shadypepe,

ja das ganze wirkt, wie als wenn eine Linse die Oberfläche verkrümmt. Habt Ihr alle Crysis unter Direct 3D 9? Ich könnte mir als einen Grund erklären, dass hier der Effekt aufhört, da dieser ja über eine client config variable auf eine maximal Entfernung begrenzt werden kann und wenn man auf dem Boden liegt oder in einem bestimmten Winkel sieht man die Heightmap als overlay, dass diese darüber gelegt ist!

Langenscheiss
29.11.2007, 22:00
Hello shadypepe,

ja das ganze wirkt, wie als wenn eine Linse die Oberfläche verkrümmt. Habt Ihr alle Crysis unter Direct 3D 9? Ich könnte mir als einen Grund erklären, dass hier der Effekt aufhört, da dieser ja über eine client config variable auf eine maximal Entfernung begrenzt werden kann und wenn man auf dem Boden liegt oder in einem bestimmten Winkel sieht man die Heightmap als overlay, dass diese darüber gelegt ist!

Also ich hab schon ein bissl Erfahrung mit POM, nicht als Programmierer sondern als Anwender bzw. als Nutzer eines Mod-Shaders für die Source Engine. Tot für POM sind meistens schlechte smoothing groups. Smoothing groups fallen bei der Geometrie nicht auf, wohl aber beim Shading und POM fällt unter die 2. Kategorie.
POM funktioniert ein bisschen wie ein RayTracer. Man hat die Polygon-Oberfläche und die Höhenmap-Oberfläche. Man sucht nun nach dem Schnittpunkt des View-Vektors mit der Höhenmap-Oberfläche. Dafür gibt es mehrere Ansätze, aber seid versichert, das CryTek hier ziemlich saubere Arbeit geleistet hat, denn die Art von Artefakte, welche bei schlechten Suchroutinen entstehen, fallen bei Crysis erfreulicher Weise kaum auf.
Also wenn der Schnittpunkt gefunden ist, dann schaut das Programm, welche Farbe der korrespondierende Pixel der Polygon-Oberfläche an dieser Stelle hätte. Diese Farbe wird an der stelle benutzt, an der der View-Vektor die korrespondierende Polygon-Oberfläche schneidet. Simples Parallax-Mapping hingegen verschiebt Pixel vereinfach gesagt. Dadurch ist aber das Self-Occlusion und Self-Shadowing nicht möglich.

Bei Crysis passieren jetzt meiner Meinung nach folgende Dinge bzw. folgende Dinge könnten der Grund sein.
Unter bestimmten Blickwinkeln setzt ein autosmoother für das shading ein. Die geometrischen Informationen für das Shading sind davon beeinflusst. Mit diesen falschen Werten werden dann auch falsche Schnittpunkte berechnet. Oder das Level hat an bestimmten Stellen schlechte smoothing groups. Ein anderes Problem könnte sein, dass schlicht gar kein Schnittpunkt gefunden werden kann, weil es keinen gibt. Eine intelligente Routine würde diesen Pixel ganz einfach ausblenden. Deshalb sind mit POM auch Silhouetten möglich (wobei man ja zunächst rein intiutiv vermutet, dass Silhouetten nur mit echter Geometrie möglich sind).

Gauss
29.11.2007, 22:24
Das passiert unter DX10 auch, allerdings selten.

General.Jung
30.11.2007, 01:41
Hallo Langenscheiss,

danke für die Ausführung. Ich kannte dieses einsetzen des Shaders bisher nur von der Unreal Engine 3. Cevat Yerli meinte ja, dass Crytek über Patches die Shader updaten will und hoffentlich auch die erwähnten besseren Texturen, bleibt nur noch Anti Aliasing Verbesserungen im Transparent Bereich und Crysis würde wirklich wesentlich besser aussehen. Ich bin nähmlich nicht zu frieden. Eben genannte Punkte. Die Texturen sind viel zu niedrig auflösend und eine Änderung der Detail Projection bringt auch nicht wirklich viel, da die Texturen nunmal nicht für einen Benutzung auf kleinere Areale optimiert sind. Das Anti Aliasing im Bereich der Vegetation is schlecht und ersteres Problem. Ich bin aber zuversichtlich, dass sich diese Dinge noch ändern werden. Nicht mit Patch 1.1 oder 1.2 aber danach. Ich hoffe es auf jeden Fall. Ich könnte mir aber vorstellen, dass dieses Problem unter dem Shader 4.0 seltener auftritt, kann das Jemand bestätigen? Ich habe zwar einen ASUS EN8800GTS 640MB aber bevor ich nicht einen QUADCore habe werde ich nicht umsteigen!

Langenscheiss
30.11.2007, 10:20
Japp, shader updates wären erwünschenswert. Performance könnte meiner Meinung nach besser sein. CPU sollte besser ausgelastet sein, gerade QuadCore-Unterstützung ist schlecht.
Aber wichtiger find ich, dass das POM endlich mal von einem Entwickler fehlerfrei implementiert wird. Diese Technik gibs schon so lange. Übrigens: ATI hat in seiner Toy-Shop-Demo zur Demonstration von POM auch herumgetrickst. Ist euch mal aufgefallen, dass das kaum gewölbte Oberflächen verwendet werden.
Was mich auch nervt, sind die schlichten Environmentmaps zur vorgetäuschten Wasserspiegelung bei Flüssen bzw. im Schiff. Das kann die Source-Engine bzw. die Lithtech-Engine (F.E.A.R.) bereits besser. Auch fehlen Stencil-Spiegelungen. Sind jetzt zwar keine Bugs, es nervt aber trotzdem.

Nochwas: Die Spiegelungen von kleinen Physik-Objekten wie Fässer auf dem Meerwasser poppen meist erst dann auf, wenn man kurz vor dem Objekt steht. Ich kann mir beim besten Willen nicht vorstellen, dass eine Spiegelung soviel Performance zieht, dass man sie so fies beschneiden muss.

General.Jung
30.11.2007, 12:50
Hallo Langenscheiss,


Japp, shader updates wären erwünschenswert. Performance könnte meiner Meinung nach besser sein. CPU sollte besser ausgelastet sein, gerade QuadCore-Unterstützung ist schlecht.

Aber wichtiger find ich, dass das POM endlich mal von einem Entwickler fehlerfrei implementiert wird. Diese Technik gibs schon so lange. Übrigens: ATI hat in seiner Toy-Shop-Demo zur Demonstration von POM auch herumgetrickst. Ist euch mal aufgefallen, dass das kaum gewölbte Oberflächen verwendet werden.
Was mich auch nervt, sind die schlichten Environmentmaps zur vorgetäuschten Wasserspiegelung bei Flüssen bzw. im Schiff. Das kann die Source-Engine bzw. die Lithtech-Engine (F.E.A.R.) bereits besser. Auch fehlen Stencil-Spiegelungen. Sind jetzt zwar keine Bugs, es nervt aber trotzdem.

Nochwas: Die Spiegelungen von kleinen Physik-Objekten wie Fässer auf dem Meerwasser poppen meist erst dann auf, wenn man kurz vor dem Objekt steht. Ich kann mir beim besten Willen nicht vorstellen, dass eine Spiegelung soviel Performance zieht, dass man sie so fies beschneiden muss.
Dem kann ich nur zustimmen. Die QUADCore Unterstützung sollte auf noch verbessert werden. Mit meinen Kritik Punkten wollte ich natürlich nicht sagen, dass es sonst keine Mängel gibt. Parallax Occlusion Mapping wird wirklich schon einige Zeit verwendet, jeder nennt es nur anders, und ist mir ebenfalls unerklärlich wieso es hier noch so viele Mängel gibt. Die Fade Ranges sind ebenfalls ein großes Problem.