@froyok@mastodon.gamedev.place
@froyok@mastodon.gamedev.place avatar

froyok

@froyok@mastodon.gamedev.place

Aka Lady Bloom.

Principal Product manager on Substance 3D Painter :substance:, but stay up at night to fiddle with shader stuff.

Speaking French/English.

#gamedev #art #unrealengine #substance #opengl

nobot

This profile is from a federated server and may be incomplete. Browse more on the original instance.

MostlyCoraGrace, to random
@MostlyCoraGrace@mastodon.gamedev.place avatar

bought helldivers
servers full
why are there servers?
its not an mmo
its not a competative game
what does it need servers for
now im just sad

froyok,
@froyok@mastodon.gamedev.place avatar

@Jeffool @MostlyCoraGrace There is a global shared map, which will trigger special events when fully done (before a reset).
So servers are used for the tracking.

NOTimothyLottes, to random
@NOTimothyLottes@mastodon.gamedev.place avatar

Re @froyok 's question about getting from linear HDR to a perceptual space and back to linear HDR.

What I prefer to use is below. It's fast (one rcp instead of 3), and scaling by the max channel keeps it saturated during perceputal processing. There are some important details like restoring to {0 16384} which can be important for FP16 portability.

froyok,
@froyok@mastodon.gamedev.place avatar

@NOTimothyLottes I wanted to try it out, but that first part (the HDR to 0-1 range conversion) is giving me strange results. 🤔

The output range is 0-0.5 for example, and color are looking strange and clamped very strongly.

(Comparison of output vs input below.)

image/png

froyok,
@froyok@mastodon.gamedev.place avatar

@NOTimothyLottes Ha, it makes more sense to me now haha !

froyok, to random
@froyok@mastodon.gamedev.place avatar

The Table API of ImGui is great... when it works.

Tried almost all the flags I could and these columns freaking don't want to resize properly. Gaaaah !

froyok,
@froyok@mastodon.gamedev.place avatar

There, hardcoded the width.

froyok,
@froyok@mastodon.gamedev.place avatar

@dougbinks Yep !
I even copied the implementation !
No idea why it didn't want to auto-resize based on the content and instead even out all the columns. All the stretch flags and mixing or fix/stretch column flags mattered. :/

froyok,
@froyok@mastodon.gamedev.place avatar

@GabeMoralesVR Nah I don't want to bother him with this kind of stuff. If I really needed help I would have opened an issue on the github anyway. :)

froyok,
@froyok@mastodon.gamedev.place avatar

@GabeMoralesVR I don't think that would worth of your time honestly, just wanted to rant a bit after spending an hour on this. 😅
(I got something working which is good enough for the usecase.)

But thx for offering !

NOTimothyLottes, to random
@NOTimothyLottes@mastodon.gamedev.place avatar

I suspect a lot of the underpinning for the desire for high resolution in moving graphics has more to do with getting a brute force reduction in apparent lack of energy conservation of the visual field in sub-pixel motion.

froyok,
@froyok@mastodon.gamedev.place avatar

@philipgfx @NOTimothyLottes Something I personally tried out with animating a grain texture is to use a stepped/truncated time offset instead of a fast smooth one. This helps in making the noise harder to track by our eyes. Also with random direction inversions.
So it's much closer to a flicker than something panning.

froyok, to random
@froyok@mastodon.gamedev.place avatar

I wonder if anybody tried to use FXAA before doing display mapping BUT by still applying and reverting a curve ? 🤔

Aka:
1 - Switch from HDR to SDR
2 - Apply FXAA
3 - Switch back from SDR to HDR
4 - Apply regular post-process stuff

froyok,
@froyok@mastodon.gamedev.place avatar

Been tweaking my lens-flare again for the past few days and now reaching a point where I want to try some kind of anamorphic bloom.

Right now I went with a hack where I modify one of the downsample texture when it is fed for the upsample pass. It is giving me a rough idea of what to expect, but it's not good enough yet (not sharp enough, and some flickering issue to manage still).

Will likely need to do a proper downsample/upsample process too.

A screenshot of my game engine showing a bright white neon behind a pillar emitting a vertical light streak.

froyok,
@froyok@mastodon.gamedev.place avatar

I tweaked a bit more and properly integrated my bloom streak pass in the engine.

Combined with the regular bloom and the lens-flare this is all coming together well ! :)

Screenshot of my engine showing a neon light below an arch glowing up vertically behind a column.
Screenshot of my engine showing a point light above a cube reflecting as a vertical line.

froyok,
@froyok@mastodon.gamedev.place avatar

@krisso I don't plan on open-sourcing the engine itself, but I have been thinking about writing articles about some of the effects it is using. :)

froyok,
@froyok@mastodon.gamedev.place avatar

I couldn't stop at two bloom passes, so I added a third one to fake atmospheric scattering.

So... how much humidity do you want in the air ? 😄

It is based on: https://github.com/OCASM/SSMS
(But I'm planning on improving some things.)

Screenshot of my game engine showing a new fog effect that blurs the image based on a distance in a scene with arches and pillars.
Screenshot of my game engine showing a new fog effect that blurs the image based on a distance in a scene with arches and pillars.

froyok,
@froyok@mastodon.gamedev.place avatar

@NOTimothyLottes Too bad that my project is about snowy conditions. But I like those ideas ! :D

froyok,
@froyok@mastodon.gamedev.place avatar

I tweaked a bit further that fog blur and plugged in my fog function in it.
This way I can also use it to emulate height fog with it too. :)

froyok,
@froyok@mastodon.gamedev.place avatar

This morning I also quickly tried to add some fake halation effect (light bleeding into darker areas).

It's basically a highpass filter using the bloom downsamples and the current scene color texture, and then isolating the bright parts to make them bleed into the dark areas.

Currently it's an additive blend done with the HDR color, so it adds light. It low enough to no matter too much. Maybe I should use a lerp too to be more energy preserving ?

Screenshot of my game engine showing a bright white light glowing behind a pillar.

froyok,
@froyok@mastodon.gamedev.place avatar

Woops, I had a Saturate() in there when setting up the highpass. Now I get why my halation edges where so sharp ! 🙃

Also switched to a combination of mix/lerp for blending and it works as good as before. So no additional energy yeay !

froyok,
@froyok@mastodon.gamedev.place avatar

Turns out the Love framework had a bug for a few months and wasn't loading sRGB texture properly.
Got fixed today after my report, so now colors match properly:

froyok,
@froyok@mastodon.gamedev.place avatar

I didn't notice it until today, because I decided to draw a texture straight to the screen for a temporary loading screen.

All fixed, so it looks like this now:

froyok,
@froyok@mastodon.gamedev.place avatar

My current struggle.

I'm already doing the firefly attenuation based on Jimenez slides.

I'm trying to think about possible solutions:

  • Clamping max brightness ?
  • Reducing emissive intensity based on distance ?
  • Doing some temporal stabilization (like TAA but only for bloom/fog downsample) ?

I'm open to suggestions.

A video of my game engine showing a camera moving forward toward a neon light. The light flickers as the camera move.

froyok,
@froyok@mastodon.gamedev.place avatar

@EeroMutka Interesting, I will have to give it a try 🤔

froyok,
@froyok@mastodon.gamedev.place avatar

I gave a try at clamping (like @EeroMutka suggested) but as I expected, because I use a non-thresholded and energy preserving bloom method, clamping kills off the HDR range and bloom becomes non-existent.

Here is with and without clamping:

Screenshot a my game engine showing a white neon light. Clamping is disabled and a wide halo/veil is visible around the light.

froyok,
@froyok@mastodon.gamedev.place avatar

The current idea I wanna try is doing a copy of the first downsample (full or smaller res) and blend it into the next frame downsample. Just to see if it helps with the spatial/temporal aliasing.
Will figure out ghosting issues afterward if it becomes promising.

froyok,
@froyok@mastodon.gamedev.place avatar
froyok, to gamedev
@froyok@mastodon.gamedev.place avatar

New thread: I'm building my own game engine !

The goal is to support the needs for my custom FPS game project. 😄

Feature set goal:

  • Forward(+) renderer
  • Stencil/Shadow Volumes
  • Portals (with recursion)
  • FXAA and MSAA
  • Oren-Nayar diffuse shading
  • PBR Specular/Gloss workflow
  • Fancy Post-Effects (ex natural Bloom, SSAO)
  • HDR reflections (parallax corrected cubemap) + proxies
  • Blurry glass/window (like Doom 2016)
  • Parallax/Relief mapping + shadow

froyok,
@froyok@mastodon.gamedev.place avatar

Looks like I broke my long on-going thread without noticing, so here is where it continues: https://mastodon.gamedev.place/@froyok/111706732315692207

  • All
  • Subscribed
  • Moderated
  • Favorites
  • JUstTest
  • kavyap
  • DreamBathrooms
  • thenastyranch
  • magazineikmin
  • tacticalgear
  • cubers
  • Youngstown
  • mdbf
  • slotface
  • rosin
  • osvaldo12
  • ngwrru68w68
  • GTA5RPClips
  • provamag3
  • InstantRegret
  • everett
  • Durango
  • cisconetworking
  • khanakhh
  • ethstaker
  • tester
  • anitta
  • Leos
  • normalnudes
  • modclub
  • megavids
  • lostlight
  • All magazines