@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.

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

Dropbox has a "fun" bug since a few weeks on my machine.

Each time I wake it up from sleep, and a file is modified, Dropbox app becomes crazy and eat up all my ram.

Take 5 minutes for the system to notice and kill it (or maybe it crashes because it can't allocate further).

I doubt I will bother report the issue, given how unhelpful their support is on their forums.

froyok,
@froyok@mastodon.gamedev.place avatar

Currently writing a Python script to auto-kill it before it slows down the machine and relaunch it.

I guess I could also put it into the sleep schedule. 🤔

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

Love the first game, very happy to see a second one is coming up ! ❤️

"INDUSTRIA 2 Announcement Trailer"
https://www.youtube.com/watch?v=IOBqaS5pcFM

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

Ho hey, looks like Halo Infinite finally works on my Linux ! About time.

I love the HUD style, looks like it's very close to the one in Halo 5.

Time to make a GPU capture... :3

froyok,
@froyok@mastodon.gamedev.place avatar

Still playing, nearing the end of the singleplayer campaign.

Things are going well.

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

Quite a few days later and the refactoring is almost done. The engine is rendering again and this time in a more contained way, so I should be able to render cubemaps soon ! :D

I even made a neat image of my engine layout now:

froyok,
@froyok@mastodon.gamedev.place avatar

With the post-process chain now working again, I thought I could try to add a depth of fieldpass as well, re-using some of the recent bokeh shader I used for my lens-flares.

It didn't go as planned, but it made some nice colors at least ! :D

froyok,
@froyok@mastodon.gamedev.place avatar

I was able to get this far... using a separable filter (with Brisebois2011 method).

However I can't seem to find a good way to avoid foreground pixels to bleed into the background even when only computing the background blur.

So I decided to switch towards another method instead. That's really too bad because I really liked the simplicity of it.

froyok,
@froyok@mastodon.gamedev.place avatar

Here is an example of the bleeding. I used pre-multiplied CoC but it's not enough and any kind of pixel rejection breaks the separable nature of the blur.

Here the bright lights are visible behind the limit of the character silhouette, showing the bleed into the foreground.

Video showing the camera moving back and forth, showing the artifact.

froyok,
@froyok@mastodon.gamedev.place avatar

I'm currently looking at the Scatter & Gather approach, but I wonder if anybody tried an hybrid method. Like using S&G for small bokeh and sprites for large bokeh ? Or maybe using S&G for far DOF and sprites for near DOF ?

I wonder at which points sprites could help performance, but because large ones cause overdraw. 🤔

Slide named "depth of field, a plausible and efficient dof reconstruction filter" from the presentation "Graphics games from CryEngine 3".

froyok,
@froyok@mastodon.gamedev.place avatar

@BartWronski @mjp Thx, I'm going to check that out ! :)

froyok,
@froyok@mastodon.gamedev.place avatar

@mjp @BartWronski Neat, thx ! :)

froyok,
@froyok@mastodon.gamedev.place avatar

Progress !

Got Crytek kernel computation working, very fun to tweak on the fly ! (Generated CPU side then sent to the shader as a buffer of sampling positions.)

Focus range isn't yet working, that's the nest step.

A video showcasing the depth of field settings available in my engine. Tweaked the parameters changes the shape of the bokeh.

froyok,
@froyok@mastodon.gamedev.place avatar

A few days have passed and I finally got most of the DOF post-process working !
My hexagonal bokeh works well and is relatively cheap. I even got some nice additional effects like chromatic aberration on the bokeh itself.

froyok,
@froyok@mastodon.gamedev.place avatar

The effect is done at half-resolution, I haven't figured out yet a good way to blend in back to the main image so there is a slight bleed of colors.

froyok,
@froyok@mastodon.gamedev.place avatar

Example of the chromatic aberration on the bokeh:

froyok,
@froyok@mastodon.gamedev.place avatar

The last detail I'm trying to figure out is how to properly fade the center of the bokeh pattern to make "holes" in the shape.
I have already something working, but it's not perfect yet:

image/png

froyok,
@froyok@mastodon.gamedev.place avatar

Bonus: for fun I'm trying to do an heart shaped bokeh.
First results are quite funny, but not really useful. 😅
(I currently rethinking how I should distributes the sample to fill the shape.)

image/png

froyok,
@froyok@mastodon.gamedev.place avatar

I got an heart-like bokeh shape working ! 😄

froyok,
@froyok@mastodon.gamedev.place avatar

I didn't make a lot of progress the pas few days, thx to Helldivers 2.

I managed to try out some optimization tricks this week however to improve my shadow volumes. One worked, the other didn't.

froyok,
@froyok@mastodon.gamedev.place avatar

I tried to use a custom projection matrix with different clip planes to constrain the rendering to the light volume.

I even went with masking the depth buffer by the light radius to help discarding triangles/fragments via the depth test.

It didn't improve performance, it even made things slower on my old laptop. 😩

froyok,
@froyok@mastodon.gamedev.place avatar

Like when I used the depth bounds extension at the time, this tricks had almost no impact and I presume the extra cost was coming from the depth buffer copy stuff.

So this is making me think that performance improvement will only come with smarter geometry setup.

I think I need to look in ways to subdivide the geometry but in a less taking way during the compute pass.

froyok,
@froyok@mastodon.gamedev.place avatar

The optimization that actually worked meanwhile was the fact I was launching threads during my compute dispatch just to discard them afterward in the shader code.

Now instead I launch exactly the number I need and compute a better index for processing my geometry.

So just helping the GPU schedule things better gave me 0.04ms saving on around 140K meshes (went from 0.1ms to 0.065ms). That's on my beefy GPU, I presume on my old laptop this will be even better.

froyok,
@froyok@mastodon.gamedev.place avatar

@GabeMoralesVR I'm thinking of Portals for culling yeah, either in an automated way or hand-authored. It's something I would like to tackle this year.
No plans with ECS system/design for now, will see if I need it when I will start to scale things up.
And if you are curious, for Physics I plan to integrate an engine (likely ODE or Jolt).

froyok,
@froyok@mastodon.gamedev.place avatar

@GabeMoralesVR For sure ! :)

froyok,
@froyok@mastodon.gamedev.place avatar

Confirmed: went from 0.6 to 0.22ms on my laptop in the same scenario ! :D

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