【问题标题】:GPUImage and SyphonGPUImage 和虹吸管
【发布时间】:2015-12-01 02:53:22
【问题描述】:

我在 GPUImage 应用程序中实现了虹吸服务器。但是,它会产生一个三角形区域,如附图所示。

谁能说看图片有什么问题?

还是代码?

  1. 在我的视图中#viewDidLoad

    NSOpenGLContext *ctx = [[GPUImageContext sharedImageProcessingContext] context]; syphonServer = [[SyphonServer alloc] initWithName:@”MyServer” context:ctx.CGLContextObj options:[NSDictionary dictionaryWithObject:SyphonImageFormatRGBA8 forKey:SyphonServerOptionImageFormat]];

  2. 在 myFilter#renderToTextureWithVertices 的末尾

    [myServer publishFrameTexture:[firstInputFramebuffer texture] textureTarget:GL_TEXTURE_RECTANGLE_EXT imageRegion:NSMakeRect(0, 0, size.width, size.height) textureDimensions:size flipped:YES];

感谢您的意见。

【问题讨论】:

  • 我不知道那些框架,但是三角形区域看起来像未清除的视频内存。
  • @Dudeson:确实如此。似乎纹理布局在某种意义上是错误的,所以它没有填满这个三角形。
  • 会不会是您要绘制的矩形没有覆盖整个屏幕(省略三角形区域)?
  • @Dudeson:不,正好等于屏幕的面积

标签: gpuimage syphon


【解决方案1】:

我的假设是有两件事是错误的:

  1. 您没有在绘制纹理之前清除后台缓冲区,导致您看到的文本出现乱码。
  2. 您绘制的全屏矩形对第二个三角形使用了错误的索引。如果编号为 0、1、2、3(顺时针,从左上角开始),看起来索引是 [0, 1, 3] 和 [0, 2, 3],而不是 [0, 1, 3] 和[1, 3, 2]。

【讨论】:

  • 谢谢保罗。你的回答让我走了。我发现如果我将 SyphonServer.m(Syphon 框架)中的 GL_TRIANGLE_FAN 更改为 GL_TRIANGLE_STRIP,故障就不会再出现了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多