Jump to content

FXShine shader


BarbaricCo

Recommended Posts

Hi All

 

To make a long story short, father in his middle 40-ties decided it's time to check are there any modern time "Close Combat" game for him and here we are. Finally:)

But on the road to Combat Mission it was obvious that some games are more "eye candy".

First decision was to make textures mod. But omg there are "billion" already top notch textures and community already provided great stuff here.

Then I discovered "War Movie" mode.  Why devs didn't made it default? But than again colors in movie mode are somehow too washed and not for everybody eyes. But Battlefront made right direction (they just weren't enough radical with movie shader settings) Textures are great we just need some fancy shader FX stuff. Being developed few iOS games myself I totally understand enormous amount of work small team like Battlefront can have with its own engine and all the assets.

As there is no SweetFX or Reshade for Mac OS X only solution was to try dig in into shaders and here we go:

 

- this is modified Battlefront “War Movie” shader

- this will replace the opt-M (alt-M) mode

- put the unzipped folder in "z" folder

- should work also with CMFI and CMBS

- don't know is this is allowed. Would be great if someone from Battlefront check it. Even greater if this is somehow putted in future official releases 

- tested on iMac OS X Yosemite with ATI 6750m

- little or no performance hit

- OS X only (someone can check it on Windows too -  not sure will it work)

- screenshots are unedited. Only used some community mods (aris mostly)

- experimental stuff

- please don't edit shader if You don't know what You are doing!

 

Combat Mission FXShine mod link:

https://www.dropbox.com/sh/49hc7e5cn0lve4d/AADjTuXSsx6l35wtx_4g3mnda?dl=0

 

Oops - long story!

 

Please enjoy and post Your best screenshoots!

post-74089-0-09641000-1442107316_thumb.jpost-74089-0-97735300-1442107328_thumb.jpost-74089-0-39237300-1442107342_thumb.jpost-74089-0-89279200-1442107357_thumb.jpost-74089-0-17079700-1442107377_thumb.j

Link to comment
Share on other sites

Like art - every one has their own view on what is and what is not, 'good' art. 

 

Whilst I admire the effort to produce these shaders that colour pallet is not for me. It's very garish and 'loud'. TBH I rather like the default settings (although I don't use a MAC and I'm not a fan of the war movie colour palette either) and I heavily mod the game (mostly using Kieme's terrain mods with Aris vehicles, plus Tanks a Lot's buildings and Vein's infantry) to produce an in-game 'look' that fits with my personal sense of aesthetics.

 

However I'm sure there will be many who like the look shown in your screenshots. That's a beauty of this game is you can nod the look to suit personal preferences.

Link to comment
Share on other sites

Although I'm more or less in the camp with GeorgeMC, I have to say that the screens really show that the different shader makes things "pop".

 

I don't normally use Movie mode, but since this doesn't replace the "normal" look, I'll give it a go and see how I like it as an alternative ( also, I use Windows 7, so will be able to confirm if it works or not on that platform ).

Cheers

:)

Edited by Baneman
Link to comment
Share on other sites

This forum never stops to amaze me. Someone comes up with a great idea, then it is

a) either not good

B) not good enough

c) old

 

If it is revolutionary and without any doubt fantastic, then it's

d) only a matter of taste

 

@BarbaricCo,

finally someone who is not half blind and had recognized, that for a realistic look things in shadows should be much darker than they are now (and a few other things).

THANKS A LOT FOR THIS BRILLIANT IDEA TO MODIFY THE SHADERS.

 

Would you mind to explain how did you do that?

Link to comment
Share on other sites

This forum never stops to amaze me. Someone comes up with a great idea, then it is

a) either not good

B) not good enough

c) old

 

If it is revolutionary and without any doubt fantastic, then it's

d) only a matter of taste

 

...

 

Not sure how you got any of that from the above posts. :rolleyes:

Link to comment
Share on other sites

Yeah I gave it a go and it is a great idea however it would need to be refined to suit me personally but others may like it.  In my opinion its like, as has been said previously a bit garish.. the colours really punch you in the face and the contrast appears to be a bit too much.  Im sure its a hard balance to get...deepen the shadows but leave the colours as they are but I think thats what i would prefer.  Good effort though and if your happy with it thats the main thing.  Well done.  :) 

Link to comment
Share on other sites

@kevinkin

Thanks

Screenshots are from few different battles -from Radzymin to Baranovichi :) if I’m remembering names.

It works with rain and night battles are over the top. Only for hard core fans :)

I’m also not advanced graphic programmer (what writing shaders means) but learned to tweak and adopt it to my games.

This opens up possibilities that different time of the day and different weather conditions can have different shaders/ or shader settings. (not war-game but best that I played on Mac is Grid 2; beautiful mornings, afternoons and night races)

This will probably involve different textures and different shaders for morning, afternoon, night and this is probably out of scope job for Battlefront but community can help. Only they must gave us directions.

@George MC

Thanks

Of course this does not magicaly works for all scenarios. Some areas a too “garish” especially the sky, some are too dark. This would involve new textures for this kind of shader or some other “under the hood” changes.

@Baneman

Please report is it working on Windows and some screenshot if it is. I think Windows have different gamma settings than Mac so that can also result in differences.

@CarlWAW

Thanks. This will open Pandora Box but as I can see @Bil Hardenberger is already doing this. You can’t stop the progress:)

You will see that CM developers already played with various settings, just keep in mind that this shader work on every pixel 60 FPS so any messing will crash software. But “BrightnesSaturationContrast” is understandable to everyone:)

But first better to hear from Battlefront developers what they think about this.

To my opinion this “little tweeks” makes Combat Mission (in some scenarios) already as good as anything outthere and it opens up lot’s of the marketing potential especially for newcomers.

We must understand that this is their “baby” and they spent years with their game.

As are developer I can tell You that it’s sometimes really hard to change the shade of green of the leaf (until good friend tells You and You are angry on him) - not to talk something dramatic like this.

@Bil Hardenberger

Thanks. Please post results

@ShaneGreer

Thanks.

From iPhone so excuse me for errors

Link to comment
Share on other sites

@kevinkin

Thanks

@George MC

Thanks

Of course this does not magicaly works for all scenarios. Some areas a too “garish” especially the sky, some are too dark. This would involve new textures for this kind of shader or some other “under the hood” changes.

No worries . To clarify I do think it's interesting but I know sweet feck all about shaders! I've tried it in game on windows, variety of times of day. Results are not to my taste but it sounds like this can be tweaked. So that has my interest. I'll post some screenshots from in-game so you can gauge what it looks like. I'm finding overall on my PC the shadows are very dark, overly so. Could be mods I use or the way my PC is calibrated via my graphics card. Still give me an hour and I'll post some screens.
Link to comment
Share on other sites

Thanks for trying Barbaricco! :) Not long ago I suggested in another thread someone to tinker with the shader files and you proofed, that it is doable at last!

Works well on my WinXP and NVidia graphics. For me personally the optimal balance of contrast likely would be between standard shader and the tweaked movie shader. With cloudy or rainy weather, the sky/cloud contours almost vanish completely, but on bright sunshine it likely looks more appropiate. Need to test some more, but your attempts are quite promising! Need something for rainy/wet weather in particular.

Link to comment
Share on other sites

All pics taken in-game on a Windows 7 based system with a Nividia GTX970 graphics card; all settings best.

 

Taken at around 0600Hrs - overcast and misty. Current in-game view (note game heavily modded)

CM%20Red%20Thunder%202015-09-13%2017-44-

 

Same view, same time, with shaders installed and in 'war movie' mode

 

CM%20Red%20Thunder%202015-09-13%2017-44-

 

Taken around 1400Hrs, clear weather. Current in-game view (again heavily modded).

 

CM%20Red%20Thunder%202015-09-13%2017-47-

 

Same view, time etc. In 'war movie' mode using new shaders.

 

CM%20Red%20Thunder%202015-09-13%2017-47-

Edited by George MC
Link to comment
Share on other sites

This is how it looks in ArmA Edit, a tool that can open and edit *.sqf files and such:

#version 120

#extension GL_EXT_gpu_shader4 : enable

float luma_mod;

vec3 avg_luma_vec;

// these need to stay up at the top apparently, to avoid some

// fun compilation bugs

uniform sampler2D RTScene;

uniform float rt_w;

uniform float rt_h;

//uniform vec2 rcpFrame;

noperspective varying vec2 pos;

// For all settings: 1.0 = 100% 0.5=50% 1.5 = 150%

vec3 BrightnessSaturationContrast(vec3 color, float brt, float sat, float con)

{

// Increase or decrease theese values to adjust r, g and b color channels seperately

/*const*/ float AvgLumR = 0.7; //avg_luma_vec.r; //0.5;

/*const*/ float AvgLumG = 0.7; //avg_luma_vec.g; //0.5;

/*const*/ float AvgLumB = 0.65; //avg_luma_vec.b; //0.5;

const vec3 LumCoeff = vec3(0.2125, 0.7154, 0.0721);

vec3 AvgLumin = vec3(AvgLumR, AvgLumG, AvgLumB);

vec3 brtColor = color * brt;

vec3 intensity = vec3(dot(brtColor, LumCoeff));

vec3 satColor = mix(intensity, brtColor, sat);

//vec3 conColor = mix((intensity - AvgLumin) / AvgLumin, satColor, con);

vec3 conColor = mix(mix(AvgLumin, intensity, 0.5) /*intensity*/, satColor, con);

return conColor;

}

// bleach bypass

vec3 overlay(vec3 previousmix, vec3 amount)

{

const vec3 lumcoeff = vec3(0.2125, 0.7154, 0.0721);

const vec3 one = vec3(1.0);

const vec3 two = vec3(2.0);

vec3 myInput = vec3(dot(previousmix, lumcoeff));

float luminance = dot(previousmix,lumcoeff);

float mixamount = clamp((luminance - 0.45) * 10.0, 0.0, 1.0);

vec3 branch1 = two * previousmix * myInput;

vec3 branch2 = one - (two * (one - previousmix) * (one - myInput));

vec3 result = mix(branch1, branch2, vec3(mixamount));

return mix(previousmix, result, amount);

}

vec4 bypass(vec4 base)

{

vec3 lumCoeff = vec3(0.25,0.65,0.1); //vec3(0.25,0.65,0.1);

float lum = dot(lumCoeff,base.rgb);

vec3 blend = vec3(lum);

float L = min(1,max(0,10.0*(lum- 0.45)));

vec3 result1 = 2.0f * base.rgb * blend;

vec3 result2 = 1.0f - 2.0f*(1.0f-blend)*(1.0f-base.rgb);

vec3 newColor = mix(result1,result2,L); // was lerp

float A2 = /*Opacity*/ 2.0 * base.a;

vec3 mixRGB = A2 * newColor.rgb;

mixRGB += ((1.0f-A2) * base.rgb);

return vec4(mixRGB,base.a);

}

void main()

{

vec2 rcpFrame = vec2(1.0 / rt_w, 1.0 / rt_h); //vec2(1.0 / rt_w, 1.0 / rt_h);

vec3 fxaa_color = texture2D(RTScene, pos).xyz;

//**********

// "overlay" is a bleach bypass, a la Saving Private Ryan or Black Hawk Down

//**********

fxaa_color = overlay(fxaa_color, vec3(0.7)); // 0.33 // 0.75

//**********

// sepia tones, if you like that sort of thing!

//**********

//const vec3 sepia = vec3(94.0, 38.0, 18.0) / 255.0;

//fxaa_color = mix(fxaa_color, sepia, 0.1); // * luma_mod;

// these were the original (and less than popular) settings

//fxaa_color = overlay(fxaa_color, vec3(0.70)); // was 0.75, but Bil suggested a BIT more color

//fxaa_color = BrightnessSaturationContrast(fxaa_color, 1.5, 0.8, 1.1);

//vec3 fxaa2_color = BlendSoftLight(fxaa_color, vec3(0.545, 0.27, 0.07));

// Red Thunder default

//fxaa_color = overlay(fxaa_color, vec3(0.75));

//fxaa_color = BrightnessSaturationContrast(fxaa_color, 1.1, 0.75, 0.75); //1.1);

fxaa_color = BrightnessSaturationContrast(fxaa_color, 1.0, 1.15, 1.1); //1.1);

///vec3 fxaa_color2 = overlay(fxaa_color, vec3(0.75));

///fxaa_color2 = BrightnessSaturationContrast(fxaa_color2, 1.1, 0.4, 0.5); //1.1);

///fxaa_color = BlendSoftLight(fxaa_color2, fxaa_color);

//fxaa_color = BrightnessSaturationContrast(fxaa_color, 1.1, 0.75, 0.75);

// holy crap, the parameters are actually brightness, saturation, contrast

//fxaa_color = BrightnessSaturationContrast(fxaa_color, 1.0, 0.8, 0.8); //0.8, 1.1, 1.1); //0.75, 0.5, 1.0); //1.05, 0.8, 1.0); //1.7, 0.6); //1.5, 0.8, 1.1);

gl_FragColor = vec4(fxaa_color, 1.0);

// a bypass filter (sort of Black Hawk Down-ish) that gives a nice effect

//gl_FragColor = bypass(gl_FragColor);

//gl_FragColor.xyz = BrightnessSaturationContrast(gl_FragColor.xyz, 1.0, 0.8, 0.8);

//gl_FragColor = mix(gl_FragColor, vec4(0.0, 0.0, 0.5, 1.0), 0.1);

//gl_FragColor = mix(gl_FragColor, vec4(139.0, 69.0, 19.0, 255.0) / 255.0, 0.07);

// and a final brightness modifier

gl_FragColor *= 1.35; //1.05;

// if you want this shader to have no effect, uncomment the following line

//gl_FragColor.xyz = texture2D(RTScene, pos).xyz;

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...