gpt4 book ai didi

android - 是否可以为 Android Camera Preview 提供 Vertex Shader 和 Fragment Shader 等效果,并使用 OpenGLES 保存捕获的图像?

转载 作者:太空狗 更新时间:2023-10-29 15:20:58 26 4
gpt4 key购买 nike

这两个是我的 VertexShader 和 Fragment Shader 文件:

顶点着色器文件:

    attribute vec4 position;
attribute vec4 inputTextureCoordinate;

varying vec2 textureCoordinate;
varying vec4 co;

void main()
{
gl_Position = position;
textureCoordinate = inputTextureCoordinate.xy;
co = inputTextureCoordinate;
}

fragment 着色器文件:

    uniform sampler2D videoFrame; // the texture with the scene you want to blur
varying mediump vec2 textureCoordinate;
varying mediump vec4 co;
precision mediump float;

vec4 nightVision()
{
float luminanceThreshold = 0.2; // 0.2
float colorAmplification = 2.0; // 4.0
float effectCoverage = 1.0; // 1.0
vec4 finalColor;
// Set effectCoverage to 1.0 for normal use.
if (co.x < effectCoverage)
{
vec3 c = texture2D(videoFrame, co.st).rgb;

float lum = dot(vec3(0.30, 0.59, 0.11), c);
if (lum < luminanceThreshold) {
c *= colorAmplification;
}
vec3 visionColor = vec3(0.1, 0.95, 0.2);
finalColor.rgb = (c) * visionColor;
} else {
finalColor = texture2D(videoFrame, co.st);
}
vec4 sum = vec4(0.0, 0.0, 0.0, 1.0);
sum.rgb = finalColor.rgb;
return sum;
}


void main(void)
{
gl_FragColor = nightVision();
}

现在,我想使用此代码在 Android 相机预览中提供相机预览效果。并且还想保存该效果捕获的图片。

那么这样做有可能吗???如果是,那么请帮助我编写一些代码,因为我是使用 Android Camera 的 OpenGles 的新手。

最佳答案

是的,这绝对有可能。有很多不同的方法来构建它,一个小的代码示例不会有太大帮助。基本思想是将从相机获得的帧作为纹理提供给 OpenGL。

查看 Camera image as an OpenGL texture on top of the native camera viewfinder .源代码应该让您了解如何继续。

关于android - 是否可以为 Android Camera Preview 提供 Vertex Shader 和 Fragment Shader 等效果,并使用 OpenGLES 保存捕获的图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7847912/

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