Ios GPUImage双通过滤器-第二个碎片着色器从未运行?
我的印象是(答案似乎证实了这一点),我可以从GPUImageTwoPassFilter中创建子类,在图像上连续运行两个片段着色器,但将所有代码等限制在一个类中。然而,在我的实验中,似乎从未编译过第二个片段着色器,更不用说执行了;下面的示例构建并运行时没有任何问题。生成的图像看起来与仅在单个着色器类中运行第一个片段着色器时相同 这里会出什么问题?我在GPUImage代码库中找到的所有示例都没有帮助,子类GPUImageTwoPassFilter只是对每个过程使用相同的片段着色器程序(如GPUImageGaussianBlurFilter)Ios GPUImage双通过滤器-第二个碎片着色器从未运行?,ios,opengl-es,glsl,gpuimage,Ios,Opengl Es,Glsl,Gpuimage,我的印象是(答案似乎证实了这一点),我可以从GPUImageTwoPassFilter中创建子类,在图像上连续运行两个片段着色器,但将所有代码等限制在一个类中。然而,在我的实验中,似乎从未编译过第二个片段着色器,更不用说执行了;下面的示例构建并运行时没有任何问题。生成的图像看起来与仅在单个着色器类中运行第一个片段着色器时相同 这里会出什么问题?我在GPUImage代码库中找到的所有示例都没有帮助,子类GPUImageTwoPassFilter只是对每个过程使用相同的片段着色器程序(如GPUIma
哎呀,gpuimagetowpassfilter.m的第55行有一个bug。以下一行:
if (!(self = [self initWithFirstStageVertexShaderFromString:kGPUImageVertexShaderString firstStageFragmentShaderFromString:firstStageFragmentShaderString secondStageVertexShaderFromString:kGPUImageVertexShaderString secondStageFragmentShaderFromString:firstStageFragmentShaderString]))
应该是
if (!(self = [self initWithFirstStageVertexShaderFromString:kGPUImageVertexShaderString firstStageFragmentShaderFromString:firstStageFragmentShaderString secondStageVertexShaderFromString:kGPUImageVertexShaderString secondStageFragmentShaderFromString:secondStageFragmentShaderString]))
感谢您指出这一点,现在应该在存储库中修复。但是,将来我是否可以建议将这样的特定框架问题发布到,而不是发布在这里?如果我认为这是框架中的错误造成的,而不仅仅是我误解了事情,我会使用GitHub问题。无论如何,我拉了你的代码,现在我有两个着色器按预期运行。谢谢。@GarrettAlbright-我之所以指出这一点,是因为我会很快将其视为GitHub的问题。我把所有这些都直接寄给了我,但我必须在这里搜索这些东西。我仍然感谢你指出这一点。
if (!(self = [self initWithFirstStageVertexShaderFromString:kGPUImageVertexShaderString firstStageFragmentShaderFromString:firstStageFragmentShaderString secondStageVertexShaderFromString:kGPUImageVertexShaderString secondStageFragmentShaderFromString:secondStageFragmentShaderString]))