我想将一堆(比方说……大约 40 个)帧混合在一起以获得一个运动模糊帧。到目前为止,我的应用程序只是以 10% 的不透明度将所有帧绘制在第一个帧之上,但这对我来说看起来不够令人信服。
Premiere Pro 或当前的游戏引擎如何进行运动模糊?我使用的帧是离线渲染的,因此渲染速度(或缺乏渲染速度)不是问题。我很感激帮助和/或以编程方式完成的正确帧混合的示例。
我想将一堆(比方说……大约 40 个)帧混合在一起以获得一个运动模糊帧。到目前为止,我的应用程序只是以 10% 的不透明度将所有帧绘制在第一个帧之上,但这对我来说看起来不够令人信服。
Premiere Pro 或当前的游戏引擎如何进行运动模糊?我使用的帧是离线渲染的,因此渲染速度(或缺乏渲染速度)不是问题。我很感激帮助和/或以编程方式完成的正确帧混合的示例。
为什么不使用Cocoa Core Image?对于您的目的,它是一个非常强大的框架。您所需要的只是对图像应用简单的过滤器(在您的情况下是框架)。看看这个页面的代码片段:
CIContext *context = [CIContext contextWithOptions:nil];
CIImage *image = [CIImage imageWithContentsOfURL:myURL];
CIFilter *filter = [CIFilter filterWithName:@"CISepiaTone"];
[filter setValue:image forKey:kCIInputImageKey];
[filter setValue:@0.8f forKey:kCIInputIntensityKey];
CIImage *result = [filter valueForKey:kCIOutputImageKey];
CGRect extent = [result extent];
CGImageRef cgImage = [context createCGImage:result fromRect:extent];
只需将过滤器名称设置为CIMotionBlur
(Core Image Filter Reference)并设置其值。