gpt4 book ai didi

ios - GPUImageView 的别名问题

转载 作者:行者123 更新时间:2023-11-29 13:15:27 25 4
gpt4 key购买 nike

我在透明文本 GPUImagePicture 与基本 GPUImagePicture 混合时出现奇怪的黑色锯齿,最终目标为 GPUImageView。这就是我正在做的:

textOverlay = [[GPUImagePicture alloc] initWithImage:self.rootViewController.previewImageTextOverlay];
GPUImageAlphaBlendFilter *textBlend = [[[GPUImageAlphaBlendFilter alloc] init] autorelease];
[upstreamOutputFilter addTarget:textBlend];
[textOverlay addTarget:textBlend];
[textBlend addTarget:gpuPreviewImageView];
[textOverlay processImage];

image
(来源:kevinharringtonphoto.com)

如何删除别名?

我想要这个(我通过堆叠两个 UIImages 得到的): image
(来源:kevinharringtonphoto.com)

最佳答案

我调查后发现这是 GPUImageAlphaBlendFilter 的错误。问题是着色器代码没有考虑第二个图像的预乘 alpha。

这是一个快速修复:

替换

gl_FragColor = vec4(mix(textureColor.rgb, textureColor2.rgb, 
textureColor2.a * mixturePercent), textureColor.a);

与:

if (textureColor2.a == 0.0) {
gl_FragColor = textureColor;
} else {
gl_FragColor = vec4(mix(textureColor.rgb, textureColor2.rgb / textureColor2.a,
mixturePercent * textureColor2.a), textureColor.a);
}

对于不涉及分支的着色器,可能有一些很好的方法可以做到这一点,但这工作正常。

关于ios - GPUImageView 的别名问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15934381/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com