A friend asked today how to deal with chromatic aberration REMOVAL in shake or FCP.
Help me out with a shk or a link to a plugin![]()
|
|
A friend asked today how to deal with chromatic aberration REMOVAL in shake or FCP.
Help me out with a shk or a link to a plugin![]()
Last edited by SalaTar; October 5th, 2006 at 07:43 PM.
Interesting problem actually. Hmmm, I will think about it...![]()
Do you have examples of what needs to be done?
A really simple manual fix.. Toss a black and white grid up in front of your camera.. Shoot a frame. Flipping between the channels should point out any discrepancies in chroma aberration. To fix, toss a warp on the image, and push and pull your image until each channel lines up. It could be as simple as an individual lens warp on each channel, OR if your glass is really messed up, a warp on different sections on your image. As your aberration is inherent in the glass you're using, that one warp should work for all your shots, in motion. Course, you might be screwed if you have lens shifts and focus differences within the shot. Probaby better to keep the aberration and instead match to it.. Or, better yet, use better quality optics.![]()
attachedOriginally Posted by ShadowMaker SdR
![]()
Last edited by SalaTar; October 9th, 2006 at 06:33 AM.
The shot of the girl with the ball is nice. Where did the footage originate from?
Canon XLHD via sdi into fcp via a Kona 3 , I think is the workflow He just purchased Shake
Last edited by SalaTar; October 9th, 2006 at 08:37 AM.
Shoot grids with your different lenses and different zoom levels. Use that to create a master node that you can use on all future shots with the method Aruna described.
My understanding of chromatic abberation is that the amount is purely dependent on the distance from the center of the image.
Try this:
Checker1 = Checker(2048, 1556, 1, 128, xSize/GetDefaultAspect());
RGrad1 = RGrad(2048, 1556, 1, width/2, height/2, 1, 0, sqrt(pow(width/2, 2) + pow(height/2, 2)),
0.5, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0);
Invert1 = Invert(RGrad1, "rgba");
Lookup1 = Lookup(Invert1, JSplineV(x,1,0@0,1@1), JSplineV(x,1,0@0,1@1),
JSplineV(x,1,0@0,1@1), JSplineV(x,1,0@0,1@1));
DisplaceX4 = DisplaceX(Checker1, Lookup1, 1, x == (width/2) ? x : x - (strength * a * ((x - (width/2)) / sqrt(pow((x - (width/2)), 2) + pow((y - (height/2)), 2)))),
y == (height/2) ? y : y - (strength * a * ((y - (height/2)) / sqrt(pow((x - (width/2)), 2) + pow((y - (height/2)), 2)))),
1000, xDelta, float strength = 6);
DisplaceX5 = DisplaceX(Checker1, Lookup1, 1, x == (width/2) ? x : x - (strength * a * ((x - (width/2)) / sqrt(pow((x - (width/2)), 2) + pow((y - (height/2)), 2)))),
y == (height/2) ? y : y - (strength * a * ((y - (height/2)) / sqrt(pow((x - (width/2)), 2) + pow((y - (height/2)), 2)))),
1000, xDelta, float strength = 4);
DisplaceX6 = DisplaceX(Checker1, Lookup1, 1, x == (width/2) ? x : x - (strength * a * ((x - (width/2)) / sqrt(pow((x - (width/2)), 2) + pow((y - (height/2)), 2)))),
y == (height/2) ? y : y - (strength * a * ((y - (height/2)) / sqrt(pow((x - (width/2)), 2) + pow((y - (height/2)), 2)))),
1000, xDelta, float strength = 2);
Copy1 = Copy(DisplaceX4, DisplaceX5, 1, "g", 0);
Copy2 = Copy(Copy1, DisplaceX6, 1, "b", 0);
-------------------------
The alpha curve in the Lookup node will give you control over the curve as it gets towards the edge of the image. Last time I looked into this, I found that it didn't start falling off noticably until about a wuarter of the way to the edge.
The are local parameters in each of the DisplaceX nodes... These are for each of the colour channels.
thanks Hugh![]()
and the latest(this one is a CA hell shot)
http://www.salatar.com/SheerSisCC.pct
Last edited by SalaTar; October 25th, 2006 at 10:11 PM.
| « Previous Thread | Next Thread » |
| Thread Information |
Users Browsing this ThreadThere are currently 1 users browsing this thread. (0 members and 1 guests) |