gpt4 book ai didi

ios - 从半色调滤镜上去除黑白效果

转载 作者:行者123 更新时间:2023-12-01 18:15:25 24 4
gpt4 key购买 nike

在布拉德·拉尔森(Brad Larson)出色的GPUImage中,有一个半色调滤镜也可将图片变为黑白。我只是想要没有黑白的半色调效果,我想知道有人能告诉我如何从以下代码中删除哪些内容来解决此问题吗?一直在玩它,但是实际上没有openGL的经验,并且不确定要消除什么。

NSString *const kGPUImageHalftoneFragmentShaderString = SHADER_STRING
(
varying highp vec2 textureCoordinate;

uniform sampler2D inputImageTexture;

uniform highp float fractionalWidthOfPixel;
uniform highp float aspectRatio;
uniform highp float dotScaling;

const highp vec3 W = vec3(0.2125, 0.7154, 0.0721);

void main()
{
highp vec2 sampleDivisor = vec2(fractionalWidthOfPixel, fractionalWidthOfPixel / aspectRatio);

highp vec2 samplePos = textureCoordinate - mod(textureCoordinate, sampleDivisor) + 0.5 * sampleDivisor;
highp vec2 textureCoordinateToUse = vec2(textureCoordinate.x, (textureCoordinate.y * aspectRatio + 0.5 - 0.5 * aspectRatio));
highp vec2 adjustedSamplePos = vec2(samplePos.x, (samplePos.y * aspectRatio + 0.5 - 0.5 * aspectRatio));
highp float distanceFromSamplePoint = distance(adjustedSamplePos, textureCoordinateToUse);

lowp vec3 sampledColor = texture2D(inputImageTexture, samplePos ).rgb;
highp float dotScaling = 1.0 - dot(sampledColor, W);

lowp float checkForPresenceWithinDot = 1.0 - step(distanceFromSamplePoint, (fractionalWidthOfPixel * 0.5) * dotScaling);

gl_FragColor = vec4(vec3(checkForPresenceWithinDot), 1.0);
}
);

最佳答案

您可以将最后一行更改为

gl_FragColor = vec4(checkForPresenceWithinDot * sampledColor, 1.0);

这将使效果具有颜色,而不仅仅是黑色和白色。

关于ios - 从半色调滤镜上去除黑白效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22471015/

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