【问题标题】:Got a crash when using GPUImageFilter使用 GPUImageFilter 时发生崩溃
【发布时间】:2013-08-04 09:42:47
【问题描述】:

当我将这些代码添加到我的项目中时,我从 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 文件)

有人可以帮忙吗..非常感谢..

【问题讨论】:

    标签: ios gpuimage


    【解决方案1】:

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

    我应该注意,只有当您想为过滤器创建自己的自定义片段着色器时,才需要这样做。作为替代方案,您可以使用框架随附的 100 多个其他过滤器之一,并避免此过程。

    【讨论】:

    • 看来我目前不需要使用 .fsh。框架中的 100 多个过滤器已经足够好了。感谢布拉德的一百万。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-28
    • 2014-11-09
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 2022-07-06
    相关资源
    最近更新 更多