使用GPUImageFilter时发生崩溃

我从Brad Larson的Github教程开始。在这里,我将这些代码添加到我的项目中

- (void)viewDidLoad { [super viewDidLoad]; GPUImageVideoCamera *videoCamera = [[GPUImageVideoCamera alloc] initWithSessionPreset:AVCaptureSessionPreset640x480 cameraPosition:AVCaptureDevicePositionBack]; videoCamera.outputImageOrientation = UIInterfaceOrientationPortrait; GPUImageFilter *customFilter = [[GPUImageFilter alloc] initWithFragmentShaderFromFile:@"CustomShader"]; GPUImageView *filteredVideoView = [[GPUImageView alloc] initWithFrame:self.view.bounds]; [self.view addSubview:filteredVideoView]; [videoCamera addTarget:customFilter]; [customFilter addTarget:filteredVideoView]; [videoCamera startCameraCapture]; } 

(id)initWithVertexShaderFromString:(NSString *)vertexShaderString fragmentShaderFromString:(NSString *)fragmentShaderString;

日志输出如下:

  013-08-04 17:17:37.567 ViewPack[36088:907] Failed to load vertex shader 2013-08-04 17:17:37.570 ViewPack[36088:907] Failed to compile fragment shader 2013-08-04 17:17:37.572 ViewPack[36088:907] Program link log: ERROR: OpenGL ES 2.0 requires exactly one vertex and one fragment shader to validly link. 2013-08-04 17:17:37.573 ViewPack[36088:907] Fragment shader compile log: (null) 2013-08-04 17:17:37.574 ViewPack[36088:907] Vertex shader compile log: (null) 2013-08-04 17:17:37.576 ViewPack[36088:907] *** Assertion failure in -[GPUImageFilter initWithVertexShaderFromString:fragmentShaderFromString:], /Users/dachang/Desktop/Files/Libs/GPUImage-master/framework/Source/GPUImageFilter.m:97 

我想我已经正确地将GPIImage添加到我的项目中,因为我可以导入所有这些标题。 我不知道“OpenGL ES 2.0需要一个顶点和一个片段着色器才能有效链接”。 意思是(我找不到CustomShader.fsh文件)

任何人都可以请帮忙..感谢很多..

上面的代码尝试从自定义片段着色器文件(在本例中为CustomShader.fsh)中创build一个filter。 为此,您需要在项目中使用该名称的文件,并且需要确保它处于项目的复制资源构build阶段,而不是编译源构build阶段。 它也必须是项目预期样式的有效片段着色器。 MultiViewFilterExample有其中之一。

我应该注意到,这只有在您需要为filter创build自己的自定义片段着色器时才是必需的。 或者,您可以使用框架附带的其他100多种filter之一,并避免此过程。