gpt4 book ai didi

ios - 如何创建GPUImage网格效果

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:10:01 33 4
gpt4 key购买 nike

我正在使用 GPUimage 和 xcode 为 iOS 平台开发。

尝试获取实时视频流并将其转换为 9 个图 block ,例如 3x3 网格。

我已将视频缩放到 0.33 原始大小,然后尝试应用片段着色器将缩放后的视频重复到其他图 block 。

但着色器仅适用于缩放后的视频,而非整个 View 。

这是我的着色器:

varying highp vec2 textureCoordinate;
uniform sampler2D inputImageTexture;

uniform mediump float range;

void main()
{
mediump vec2 p = textureCoordinate;


if (p.x > 0.66) {
p.x = (p.x-0.66);
}
else if (p.x > 0.33) {
p.x = (p.x-0.33);
}

if (p.y > 0.66) {
p.y = (p.y-0.66);
}
else if (p.y > 0.33) {
p.y = (p.y-0.33);
}

lowp vec4 outputColor = texture2D (inputImageTexture, p);
gl_FragColor = outputColor;
}

有什么建议吗?

sample image

最佳答案

 // This is necessary for non-power-of-two textures
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);

并且视频输入会产生非二次幂的纹理。

所以使用的代金券是:

   varying highp vec2 textureCoordinate;
uniform sampler2D inputImageTexture;

// num tiles row x col
uniform mediump float range;


void main()
{
mediump vec2 p = mod( range * textureCoordinate - vec2( 1.0 ), 1.0 );

lowp vec4 outputColor = texture2D (inputImageTexture, p);
gl_FragColor = outputColor;
}

range 表示行数和列数。

关于ios - 如何创建GPUImage网格效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19671200/

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