Chromatic Aberration

Started by
1 comment, last by Aqua Costa 11 years, 9 months ago
Hi ,

As for this effect , I am trying to find a nice way to make "horizontal/vertical leak lines" to disappear.

( Horizontal example : http://active.tutsplus.com/tutorials/effects/create-a-retro-crt-distortion-effect-using-rgb-shifting/
2nd cat photo in the page )

( Vertical example :
)

So for such an effect like this , how would you suggest me to implement it ?
( Not asking how to do it , but asking what to do )

Many thanks
Advertisement
Looks like you could pull that off with storing a certain number of frame buffers, then colorizing them how ever you'd like, then when you render your frame have each pixel take a weighted average of all the frames. Might be a bit memory heavy though.
Perception is when one imagination clashes with another
It's easy (I think rolleyes.gif ):

-Render the scene to a render target.
-In post processing:
Chose 2 random texture offsets (small values) that will be used as offsets to sample the scene texture.
Draw a fullscreen quad and sample the scene texture 3 times:
1 - using no offsets;
2 - using the first texture offset.
3- using the second texture offset.
Ouput the pixel color like this:
return float4(sample1.r, sample2.g, sample3.b, 1.0f);

I think this should work.


Texture2D sceneTexture;

SamplerState triLinearSampler;

float4 PS(PSInput pIn) : SV_TARGET
{
float4 sample1 = sceneTexture.Sample(triLinearSampler, pIn.texC, int2(0, 0));
float4 sample2 = sceneTexture.Sample(triLinearSampler, pIn.texC, int2(-5, 0));
float4 sample3 = sceneTexture.Sample(triLinearSampler, pIn.texC, int2(5, 0));

return float4(sample1.r, sample2.g, sample3.b, 1.0f);
}

This topic is closed to new replies.

Advertisement