@froyok@mastodon.gamedev.place cover

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. View on remote instance

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 OP ,
@froyok@mastodon.gamedev.place avatar

I have been banging my head quite a bit the past two days.

I know I'm in corner case, but I'm once again astonished at the lack of good tooling out there for writing in this kind of format.

I would really like avoid writing my own DDS encoder, because I feel it's one of those rabbit holes it will be difficult to get out of. But it's starting to feel like I won't have a lot of options.

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

Last silly idea I got: storing my RG11B10 cubemaps in RGBA8 with RGBM compression instead. That will require some on the fly decoding but that's might be tolerable.

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

@shram86 It will happen at some point, it's the second time that I end-up facing a wall, but I just don't want to spend the time on it right now unfortunately. Hence my frustration. 😅

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

@k_narkowicz Hooo, thx, this looks promising !

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

Went with RG11B10 as expected to store my cubemap. Each mip as an individual file stored as a binary blob into a common zip file per probe.
Not the prettiest but it does the job for now. I don't have to deal with RGBM at least.

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

I also had to do the pbr balls test !
No that I only take care of radiance here. There is no IBL irradiance. I will see if I do something for it or not via cubemaps.

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

here is what it looks like in my usual scene with the probe pushed in the back. Everything looks grayish because of the neon light in the background.

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

I need to rethink how I manage my lights (once again) because right now the light casting shadows are rendered as additive light, which means the IBL contributions is applied several times.

Until now I didn't have a notion of "ambient" lighting.

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

Working on my cubemap generation pipeline I was still puzzled on why the IBL would be so strong compared to the actual lights.

I decided to verify that my PBR wasn't broken by using red PBR balls this time and well...

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

Took me a day to figure out what was happening.
After checking my code a few times I isolated it out on being related to the DFG LUT.

Inverting its value (one minus) was somehow fixing the shading and brightness issue. This was very confusing.

Then I extracted the LUT from Filament and compared it from Learn OpenGL and mine.

Here is what they look like in Designer:

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

Notice what's wrong ?

Filament LUT use swapped Red and Green channels in its LUT.
My initial one minus trick was just a lucky fix. I'm glad I took the time to figure out what was happening.

In their doc, Filament doesn't mention that swap: https://google.github.io/filament/Filament.md.html#table_texturedfg

Anyway, once I figured this out, the fix was immediate and my shiny balls were now looking great:

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

So once that was working, I quickly hacked in parallax correction for the cubemap and overriden Sponza floor to be mirror-like.

It now looks really great ! Time to clean up the code and expose everything on the editor side. :D

A looping gif of a camera panning inside Intel's Sponza scene. The floor reflects the pillar and a neon light.

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

@frguthmann That's the issue with scary math like that, I'm too afraid to read it properly. :p

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

@nick It's pretty fresh and requires specific hardware I believe, it just got introduced in DX12 so I don't know about OpenGL and also my framework would need to support it too which isn't the case yet.
Anyway, BC6h is the ideal target here. :)

  • All
  • Subscribed
  • Moderated
  • Favorites
  • random
  • tech
  • kbinEarth
  • testing
  • interstellar
  • wanderlust
  • All magazines