[Projekt] Falling Sand Voxel Engine

Hier könnt ihr euch selbst, eure Homepage, euren Entwicklerstammtisch, Termine oder eure Projekte vorstellen.
Forumsregeln
Bitte Präfixe benutzen. Das Präfix "[Projekt]" bewirkt die Aufnahme von Bildern aus den Beiträgen des Themenerstellers in den Showroom. Alle Bilder aus dem Thema Showroom erscheinen ebenfalls im Showroom auf der Frontpage. Es werden nur Bilder berücksichtigt, die entweder mit dem attachement- oder dem img-BBCode im Beitrag angezeigt werden.

Die Bildersammelfunktion muss manuell ausgeführt werden, die URL dazu und weitere Details zum Showroom sind hier zu finden.

This forum is primarily intended for German-language video game developers. Please don't post promotional information targeted at end users.
Benutzeravatar
x1m4
Establishment
Beiträge: 103
Registriert: 02.04.2022, 22:56
Kontaktdaten:

Re: [Projekt] Falling Sand Voxel Engine

Beitrag von x1m4 »

marcgfx hat geschrieben: 29.06.2022, 16:30 sieht für mich super aus. was genau geht kaputt? ich kann es nicht erkennen.
Ab Sekunde 7 sieht man, dass der Nebel an der linken Seite der Welt viel zu stark ist. Eigentlich sollte das nicht passieren, hab den Grund immer noch nicht gefunden..

Ich hab einen kleinen temporalen Upscaler gebaut, der bisher ganz gute Ergebnisse liefert:
Bild
- Links: Ohne temporalem Upscaling
- Rechts: Mit temporalem Upscaling

Im Bild wird das volumetrische Licht und das volumetrische Sonnenlicht auf 1/4 der Bildschirmauflösung berechnet. Davor 6ms pro Frame, jetzt 0.6ms und ich erkenne kaum einen Verlust an Qualität.

Und hier ist der rohe Input ohne Filterung (yikes):

Bild
Benutzeravatar
marcgfx
Establishment
Beiträge: 1943
Registriert: 18.10.2010, 23:26

Re: [Projekt] Falling Sand Voxel Engine

Beitrag von marcgfx »

Wenn so kleine Lichter schon so stark sichtbar sind, wäre es ja logisch das es bei mehr Licht im Raum dichter wird? Vielleicht ist einfach zu viel Licht im Raum. Oder kannst du vielleicht gewisse Lichter dichter als andere machen?
Benutzeravatar
x1m4
Establishment
Beiträge: 103
Registriert: 02.04.2022, 22:56
Kontaktdaten:

Re: [Projekt] Falling Sand Voxel Engine

Beitrag von x1m4 »

Mit dem volumetrischen Licht kann man Szenen jetzt deutlich mehr Tiefe geben:
Bild
Bild
Bild
Benutzeravatar
x1m4
Establishment
Beiträge: 103
Registriert: 02.04.2022, 22:56
Kontaktdaten:

Re: [Projekt] Falling Sand Voxel Engine

Beitrag von x1m4 »

marcgfx hat geschrieben: 30.06.2022, 00:47 Oder kannst du vielleicht gewisse Lichter dichter als andere machen?
Ja das hab ich mir auch schon überlegt. Eine Möglichkeit, Informationen über die Dichte eines Voxels in der Welt zur Verfügung zu haben, könnte für dynamischen Nebel, aber auch für so Kram wie volumetrische Wolken sehr nützlich sein. Ich habe neben der Licht Engine ja auch eine Falling Sand bzw. CA simulation, mit der ich neben Strom auch sowas wie Dichte (oder auch Hitze) ausbreiten könnte. Wolken wollte ich eh schon lange mal versuchen, vielleicht bekomme ich da demnächst mal was hin^^
scheichs hat geschrieben: 30.06.2022, 21:41 Sieht richtig gut aus!
Danke!
Benutzeravatar
x1m4
Establishment
Beiträge: 103
Registriert: 02.04.2022, 22:56
Kontaktdaten:

Re: [Projekt] Falling Sand Voxel Engine

Beitrag von x1m4 »

Noch Autofokus und Auto Exposure für die Kamera eingebaut.
Autofokus stellt automatisch die fokale Länge der Kamera auf die Mitte des Bildschirms ein.
Auto Exposure stellt automatisch den Gamma Wert anhand der durchschnittlichen Helligkeit des Bilds ein.

Für beide Effekte verwende ich temporale Akkumulation, so dass z.B. der Autofokus bei einer Mausbewegung nicht instant ist, sondern smooth über mehrere Frames verteilt wird.

bruebaker
Establishment
Beiträge: 360
Registriert: 08.12.2015, 10:42
Benutzertext: Sven Rahn
Echter Name: Sven Rahn

Re: [Projekt] Falling Sand Voxel Engine

Beitrag von bruebaker »

Schaut schick aus
Benutzeravatar
x1m4
Establishment
Beiträge: 103
Registriert: 02.04.2022, 22:56
Kontaktdaten:

Re: [Projekt] Falling Sand Voxel Engine

Beitrag von x1m4 »

bruebaker hat geschrieben: 02.07.2022, 10:37 Schaut schick aus
Danke! :-)

Hab heute "Checkerboard Upscaling" eingebaut. Das wird meistens benutzt, um Bilder über Zeit hoch zu skalieren. Die Idee ist dabei, dass nur die Hälfte der Pixel berechnet wird, und im nächsten Frame dann der andere Teil. Eine einfache Methode, die auch schon lange zum Einsatz kommt.

Anstatt die Texture runter zu skalieren und und die Koordinaten zu shiften, benutze ich einen Trick, der es ausnutzt, dass Fragment Shader in 2x2 Blöcken ausgeführt werden. Hierbei setze ich die Pixel Koordinaten, welche weggelassen werden sollen einfach zu den Koordinaten eines Nachbar Pixels, was dazu führt, dass die GPU das optimieren kann, da die beiden Pixel dann ja auf das gleiche Ergebnis kommen bzw. die gleichen Rechenkonditionen beim Start haben. Das hat die Rechenzeit für die Lichtberechnung um fast die Hälfte reduziert.

Hier ein Closeup Vergleich:
Bild

Scheinbar unterstützt das Checkboard Upscaling sogar mein TAA. Meine TAA Implementierung scheint also nicht ganz vom feinsten zu sein^^

Und hier der komplette Vergleich:
Bild
Benutzeravatar
xq
Establishment
Beiträge: 1557
Registriert: 07.10.2012, 14:56
Alter Benutzername: MasterQ32
Echter Name: Felix Queißner
Wohnort: Stuttgart & Region
Kontaktdaten:

Re: [Projekt] Falling Sand Voxel Engine

Beitrag von xq »

Der Vergleich ist so leider schwer abzuschätzen, denn den einzigen Unterschied, den ich in den Bildern sehen kann, sind JPEG-Artefakte. Kannst du die Bilder hier im Forum verlustfrei komprimiert hochladen? Bestfalls als PNG?

Ansonsten klingt das aber nach ner smarten Optimierung, grade bei so gleichmäßig ausgeleuchteten Szenen
War mal MasterQ32, findet den Namen aber mittlerweile ziemlich albern…

Programmiert viel in ⚡️Zig⚡️ und nervt Leute damit.
Benutzeravatar
x1m4
Establishment
Beiträge: 103
Registriert: 02.04.2022, 22:56
Kontaktdaten:

Re: [Projekt] Falling Sand Voxel Engine

Beitrag von x1m4 »

Beim Vergleich kann man wenn man genau hinschaut sehen, dass die Kanten mit dem Checkboard Upscaling ein bisschen smoother sind. Ansonsten konnte ich keinen großen Unterschied feststellen. Vielleicht findest du ja was^^

Hier unkomprimiert:
Bild

Bild
Benutzeravatar
Lord Delvin
Establishment
Beiträge: 455
Registriert: 05.07.2003, 11:17

Re: [Projekt] Falling Sand Voxel Engine

Beitrag von Lord Delvin »

Wenn die Bilder deterministisch sind ist das Differenzbild vermutlich für Menschen leichter zu verarbeiten. Würde erwarten, dass es relativ schwarz ist, bin aber auch nicht gut in sowas. Also einfach abs(l-r) für jeden Kanal.
XML/JSON in schnell: OGSS
Keine Lust mehr auf C++? Versuche Tyr: Get & Get started
Benutzeravatar
x1m4
Establishment
Beiträge: 103
Registriert: 02.04.2022, 22:56
Kontaktdaten:

Re: [Projekt] Falling Sand Voxel Engine

Beitrag von x1m4 »

Wieder Doppelpost ups --
Zuletzt geändert von x1m4 am 04.07.2022, 18:44, insgesamt 1-mal geändert.
Benutzeravatar
x1m4
Establishment
Beiträge: 103
Registriert: 02.04.2022, 22:56
Kontaktdaten:

Re: [Projekt] Falling Sand Voxel Engine

Beitrag von x1m4 »

Stimmt damit könnte man wahrscheinlich ein sauberes Differenzbild erstellen. Mein Renderer ist aber nur teilweise deterministisch, bzw. eigentlich nur beim temporalen Jittering (über Halton Sequenz) und dem RNG für die stochastische Lichtberechnung (mit TEA - Tiny Encryption Algorithm). Ich denke mal spätestens bei meinem Upscaling und der temporalen Akkumulation geht der Determinismus bei mir futsch, und das umzustellen klingt schmerzhaft.

Hier nochmal ein paar Screenshots von gestern, nachdem ich ein bisschen an den Reglern rumgespielt hab. Wenn ich das Programm endlich mal public machen kann, bin ich wirklich gespannt was ein Designer hier rausholen kann. Meine Design Kenntnisse sind leider sehr begrenzt, gerade bzgl. Farbwahl und genereller Ästhetik. Saubere Sub-voxel Modelle mit ausgewogenen Farben würden solche Szenen um ein vielfaches verbessern.

Bild
Bild
Bild
Bild
Benutzeravatar
x1m4
Establishment
Beiträge: 103
Registriert: 02.04.2022, 22:56
Kontaktdaten:

Re: [Projekt] Falling Sand Voxel Engine

Beitrag von x1m4 »

Noch Bloom wie folgt eingebaut:
Das HDR Bild (ohne Tonemapping, ohne Gamma Korrigierung) wird erst mit bilinearer Filterung und einem Weichzeichner von der original Größe bis auf z.B. 1/8 runter gerechnet. Im Anschluss wird das Verfahren umgekehrt, und von 1/8 wieder auf die originale Größe hoch gerechnet mit einem Schwellwert. Am Ende wird der Bloom dann (wieder mit einem Schwellwert) auf das Bild addiert. Ist relativ schnell das Verfahren und minimiert die üblichen Bloom Probleme wie z.B. flackern und verteilt den Bloom-Effekt auch schön weit (aber subtil) über den Bildschirm.



Bild
Zuletzt geändert von x1m4 am 09.07.2022, 10:48, insgesamt 1-mal geändert.
Mirror
Establishment
Beiträge: 177
Registriert: 25.08.2019, 05:00
Alter Benutzername: gdsWizard
Kontaktdaten:

Re: [Projekt] Falling Sand Voxel Engine

Beitrag von Mirror »

Sieht schon faszinierend aus. Echt cool.
ehemals gdsWizard, http://www.mirrorcad.com
Benutzeravatar
x1m4
Establishment
Beiträge: 103
Registriert: 02.04.2022, 22:56
Kontaktdaten:

Re: [Projekt] Falling Sand Voxel Engine

Beitrag von x1m4 »

Mirror hat geschrieben: 09.07.2022, 00:51 Sieht schon faszinierend aus. Echt cool.
Schön dass es dir gefällt!^^

Eine weitere Szene mit Partikeln:
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4152
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: [Projekt] Falling Sand Voxel Engine

Beitrag von Chromanoid »

Sieht richtig cool aus.
Benutzeravatar
x1m4
Establishment
Beiträge: 103
Registriert: 02.04.2022, 22:56
Kontaktdaten:

Re: [Projekt] Falling Sand Voxel Engine

Beitrag von x1m4 »

Chromanoid hat geschrieben: 12.07.2022, 08:06 Sieht richtig cool aus.
Thx!

Hier ein kleines Video das zeigt, wie meine Schaltungen funktionieren:

Benutzeravatar
x1m4
Establishment
Beiträge: 103
Registriert: 02.04.2022, 22:56
Kontaktdaten:

Re: [Projekt] Falling Sand Voxel Engine

Beitrag von x1m4 »

Das Projekt hat jetzt eine Webseite! :)
Benutzeravatar
x1m4
Establishment
Beiträge: 103
Registriert: 02.04.2022, 22:56
Kontaktdaten:

Re: [Projekt] Falling Sand Voxel Engine

Beitrag von x1m4 »

Ein Nutzer hat einen sehr kompakten 7 Segment Display und eine kleine Casino Gamble Maschine gebaut:
- 7 Segment Display
- Gamble Maschine
Antworten