site_archiver@lists.apple.com Delivered-To: pro-apps-dev@lists.apple.com So let's say the grayscale version of your map image looked like this: 0.75 0.89 0.23 0.52 It takes (0.75 - 0.89) = -0.14 as the x offset It takes (0.75 - 0.23) = .52 as the y offset Does that make sense? Darrin On Apr 27, 2009, at 5:53 PM, Patrick Sheffield wrote: Thank you Darrin - this helps a lot. Thanks, -- Darrin Cardani dcardani@apple.com _______________________________________________ Do not post admin requests to the list. They will be ignored. Pro-apps-dev mailing list (Pro-apps-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/pro-apps-dev/site_archiver%40lists.ap... Glad it helps! It looks to me like Displacement Distortion is using the magnitude and direction of edges in the map image to offset pixels in the source image. I believe it first converts the map image to grayscale, then finds the difference of each pixel with its neighbors in the x and y directions. It multiplies the x and y differences by the scale parameter and uses the resulting vector as an offset from the current pixel in the source image. It then multiplies those values by the scale parameter. Let's say it's set to 25, so it comes up with an offset of (-3.5, 13). It adds that to the current (x,y) coordinate and samples the input image at (x - 3.5, y + 13). I wonder if you could shed some light on a specific CoreImage filter - specifically DisplacementDistortion... In Shake and in FxScript, the X-Displacement is governed by one channel in the displace image and the Y-Displacement by another. I can't find any documentation on the CI filter as to how it handles this. Patrick This email sent to site_archiver@lists.apple.com