Seite 70 von 70

Re: Anti-Jammer-Thread

Verfasst: 06.07.2024, 20:55
von Jonathan
Ja, ich arbeite noch an den Ergebnissen.

Zu den Quads: Hier gibt es eine Übersicht, nach welchen Mustern Tessellation zusätzliche Geometrie erzeugt: https://www.khronos.org/opengl/wiki/Tes ... primitives

Gibt man statt Vierecken jeweils zwei Dreiecke rein, kriegt man also eine ganz andere Verteilung heraus (weniger gleichmäßig, und abhängig davon, welche der zwei möglichen Diagonalen benutzt wird). Lustigerweise produziert aber auch der Quad-Tessellation-Modus am Ende bloß Dreiecke, aber halt im Quad-Layout. Und will man dieses "schöne" Layout haben (wollte ich) müssen vorne halt Quads reingeschmissen werden (nur der Indexbuffer ändert sich). Und um sicher zu stellen, dass immer die richtigen 2 Dreiecke zu einem Quad werden, sollte das Layout halt schon vor dem Export in Blender definiert sein, sprich Quads all the way through.

Gut, heutzutage ist Tessellation vielleicht selbst überholt und man sollte Nanite oder ähnliches verwenden. Aber das bau ich jetzt nicht mal eben so nach...

Re: Anti-Jammer-Thread

Verfasst: 15.08.2024, 21:13
von Schrompf
Godot will mich doch noch haben! Ich bin in der engeren Auswahl!

Godot hat ne Stiftung dahinter und bissl finanziellen Spielraum. Daher haben sie vor paar Monaten nach nem Coder gesucht, der auf Rechnungsbasis daran mitarbeitet. Ich hab mich damals beworben, hab ja schon einiges an OpenSource gemacht und hab 30 Jahre on and off Erfahrung mit 3DEngine-Entwicklung. Aber die haben halt auch jetzt schon viele Dutzend Freizeitcoder, die bei jedem Release aushelfen. Und daher hat es mich gar nicht gewundert, dass ich jetzt monatelang gar nix mehr von denen gehört habe.

Bis gerade eben 🥰

Re: Anti-Jammer-Thread

Verfasst: 16.08.2024, 09:02
von Krishty
Sehr geil! Gratulation!

Re: Anti-Jammer-Thread

Verfasst: 16.08.2024, 09:39
von Matthias Gubisch
Gratulation :) Freut mich für dich!

Re: Anti-Jammer-Thread

Verfasst: 16.08.2024, 11:33
von Mirror
Glückwünsche, hoffe Du kriegst den Job.

Re: Anti-Jammer-Thread

Verfasst: 16.08.2024, 14:39
von Jonathan
Noice!

Re: Anti-Jammer-Thread

Verfasst: 03.09.2024, 02:38
von Tris
Schrompf hat geschrieben: 15.08.2024, 21:13 Godot will mich doch noch haben! Ich bin in der engeren Auswahl!

Godot hat ne Stiftung dahinter und bissl finanziellen Spielraum. Daher haben sie vor paar Monaten nach nem Coder gesucht, der auf Rechnungsbasis daran mitarbeitet. Ich hab mich damals beworben, hab ja schon einiges an OpenSource gemacht und hab 30 Jahre on and off Erfahrung mit 3DEngine-Entwicklung. Aber die haben halt auch jetzt schon viele Dutzend Freizeitcoder, die bei jedem Release aushelfen. Und daher hat es mich gar nicht gewundert, dass ich jetzt monatelang gar nix mehr von denen gehört habe.

Bis gerade eben 🥰
Sehr cool, ich drück die Daumen!

Re: Anti-Jammer-Thread

Verfasst: 05.09.2024, 20:16
von mtorc1
Daumen sind gedrückt, Schrompf!

Re: Anti-Jammer-Thread

Verfasst: 05.09.2024, 22:19
von Schrompf
Danke, ist lieb, aber habe soeben gerade die Ablehnung erhalten. Naja, mach ich halt meinen eigenen Mist weiter

Re: Anti-Jammer-Thread

Verfasst: 07.09.2024, 11:55
von Jonathan
Fiesen Bug gefixt:

Kaputt:
2024-09-07_11-39-16_Landvogt.jpg
Richtig:
2024-09-07_11-35-56_Landvogt.jpg
Was war los? Ignorieren wir mal kurz auf der rechten Seite die Shadow-Mapping Probleme und schauen uns den linken Rand des Flusses an. Das Wasser am Ufer ist seicht, also wird es langsam transparent und es gibt keinen harten Übergang. Im kaputten Bild erkennt man aber eine sehr harte und hässliche Kante. Witzigerweise aber nur links, rechts ist der Übergang weich (wie gesagt, man muss den Schatten da erstmal ignorieren).

Die Landschaft wird von einer Heightmap per Tessellation gerendert. Das Wasser ist eine simples Viereck, und hat auch Zugriff auf die Terrain Heightmap. Aus Fragment-Position und Heightmap-Wert kann man dann sehr leicht die Wassertiefe bestimmen und den Alpha-Wert anpassen. Nun gibt es da irgendeine Art von dusseligen Offset, schaltet man das Terrain aus, sieht man, dass auch links das Wasser ausgeblendet wird, nur halt ein wenig zu spät. Mist.

Ich habe dann lange nach dem Fehler gesucht. Ich dachte, ich hätte im Tessellation irgendwo einen Offset-Bug. Denn Wasser hatte ich ja früher schon, und da funktionierte das Blending. Vielleicht ist auch die Terrain Auflösung zu niedrig, und Heightmap und Mesh haben unterschiedliche Höhen - aber eigentlich sollte ja Texturpixelinterpolation und lineare Interpolation zwischen den Vertexen des Dreiecks die selben Werte liefern. Hundert Kleinigkeiten die schief gehen könnten.

Am Ende war der Fehler mal wieder komplett woanders. Ich erstelle für das Terrain erst das Mesh zum Rendern (flach, weil ja später Tessellation kommt) und dann aus der selben Heightmap ein Triangle-Mesh für Bullet-Physics für Kollisionsbehandlung. Dabei muss ich auf die Pixel der Heigthmap zugreifen und bin entsprechend von 0 bis Auflösung-1 gegangen. Fürs Rendern hatte das Mesh aber einen Zeile und Spalte mehr (3x3 Vertexe für 2x2 Pixel der Heightmap, jajaja, ich weiß jetzt selber, dass das falsch war :P). Ok, aber was hat das Wasser mit Kollissionsabfrage zu tun? Nun, das Wassermesh wird etwas später erstellt, anhand der Größe der Landschaft, die sich aus der Bounding-Box des Kollissionsobjektes von Bullet ergibt. Die UV Koordinaten und Vertexpositionen wurden korrekt berechnet, nur war das Mesh leider 1/512 zu klein, was zu einem Mini-Offset führte, der jetzt mein Blending vom Wasser kaputt gemacht hat.

Ein richtig fieser Fehler also, einmal quer durchs gesamte Programm. Bin froh, dass ich das gefunden habe, rückblickend hätte ich daran auch noch sehr viel länger suchen können...

Re: Anti-Jammer-Thread

Verfasst: 07.09.2024, 12:47
von Schrompf
Sowas ist echt hart zu finden. Gute Arbeit!