2d Filter to make it look like in the camera? (see pictures)

While making my game, i tried sending a friend some videos to show how it looked…

Screenshot from my PC:


Screen from the Video on my phone:


As you can see in the video the effect just looks sooooooooooooooooooooooo much better.

How could i make this effect?
Is there any 2d Filter that can do this?
Would i have to use Nodes?

looks like bloom/hdr. but this could be achieved without a filter. but nodes will probably be required. “add” mix option will be your friend, color ramps too.

#edit

if that is something that just floats or rotates i would converd it into an image on a plane, you can get that effect with gimp.

Welcome to the world where screens are smart…
My work monitor has a ‘cinema mode’ where it twiddles the contrast, tweaks the gamma, runs an edge detect (uh sharpness) and so on. Makes things look horrible.

Ever notice that airplane seat screen brightness control is just a digital … subtract. Not even a multiply. At anything less than full brightness you can’t see dark colors at all.

Its probably a gamma scaling done by the video player - trying to make sure both whites and blacks are on screen. This effect tends to make things look vivid and crisp. Thow a couple white pixels around on the video so that it cuts back on the “enhancement” and it will look similar enough on both.

You wannt to replicate it? It’s not a bloom, it looks at the min and max pixel luminosity and twiddles from there. Could be a fun project - probably do a render to texture at low res, compute some exposures and gamma curves, then feed that into a 2d filter.

The easy way to teplicate it: realize that a light source, even a purple one, appears white in themiddle. Then make textures that replicate that. (Ie put white in your texture)

@sdfgeoff i tried learning to write 2dFilters, but i didnt find much that i understood.

Is there a way to access bge functions/objects in a 2d Filter? Maybe use a property of an object, or something like that?

2D filters used to confuse the heck out of me!

Here’s the magic: They run your program on every single pixel of the screen. Every singe one. The vec4 written to G:_FragColor is what you see as your output pixel. There are a handful of builtin bender things (likg bgl_RenderedTexture), and many glsl standard things (like Texture2D). You can pass in game properties as uniforms. (create a uniform with the same name as a game property).

To be honest, you don’t need a 2D filter for this, just slightly better textures.
Which one is glowing:


Using add type alpha in the engine:
First texture:


Second texture:

More complex color curve than just purple can be good:

Blend file:
GLOW.blend (511 KB)

Note:
A 2D filter would be about a zillion times slower than this method, but if you still want to learn let me know and I can give you more information.

wow thanks!!

never got how additive Alpha works till now, now i only have to change my alpha changes from the Object Color to RGB changes :smiley:

and I dont really want to learn to make 2d Filters right now if my game looks ok without them (maybe ill write you sometime later), but thanks :stuck_out_tongue:

edit:
now it looks like this :smiley: