Anti-Jammer-Thread

Hier kann über allgemeine Themen diskutiert werden, die sonst in kein Forum passen.
Insbesondere über Szene, Games, Kultur, Weltgeschehen, Persönliches, Recht, Hard- und Software.
Benutzeravatar
Jonathan
Establishment
Beiträge: 2452
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag 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...
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Benutzeravatar
Schrompf
Moderator
Beiträge: 4924
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas
Wohnort: Dresden
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag 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 🥰
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Krishty
Establishment
Beiträge: 8290
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von Krishty »

Sehr geil! Gratulation!
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Matthias Gubisch
Establishment
Beiträge: 479
Registriert: 01.03.2009, 19:09

Re: Anti-Jammer-Thread

Beitrag von Matthias Gubisch »

Gratulation :) Freut mich für dich!
Bevor man den Kopf schüttelt, sollte man sich vergewissern einen zu haben
Mirror
Establishment
Beiträge: 285
Registriert: 25.08.2019, 05:00
Alter Benutzername: gdsWizard
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von Mirror »

Glückwünsche, hoffe Du kriegst den Job.
Hat den StormWizard 1.0 und 2.0 verbrochen. http://www.mirrorcad.com
Benutzeravatar
Jonathan
Establishment
Beiträge: 2452
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von Jonathan »

Noice!
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Tris
Beiträge: 1
Registriert: 31.05.2023, 21:31
Echter Name: Tristan

Re: Anti-Jammer-Thread

Beitrag 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!
mtorc1
Beiträge: 83
Registriert: 20.02.2021, 16:24

Re: Anti-Jammer-Thread

Beitrag von mtorc1 »

Daumen sind gedrückt, Schrompf!
Letztes Projekt: Grave of the Pumpkin (ZFX Halloween Action 2021)
Benutzeravatar
Schrompf
Moderator
Beiträge: 4924
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas
Wohnort: Dresden
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von Schrompf »

Danke, ist lieb, aber habe soeben gerade die Ablehnung erhalten. Naja, mach ich halt meinen eigenen Mist weiter
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Jonathan
Establishment
Beiträge: 2452
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag 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...
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Benutzeravatar
Schrompf
Moderator
Beiträge: 4924
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas
Wohnort: Dresden
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von Schrompf »

Sowas ist echt hart zu finden. Gute Arbeit!
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Antworten