當有一個碰撞,我從布拉德·拉爾森的教程Github.Here開始時,我添加了這些代碼到我的項目使用GPUImageFilter
- (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];
}
,我得到了在方法崩潰 - initWithVertexShaderFromString(ID):(的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文件)
可有人請help..thanks很多..
因此,目前看來我並不需要使用.fsh。框架中的100多個過濾器足夠好。百萬感謝布拉德。 – jokerdc