CameraFilter icon indicating copy to clipboard operation
CameraFilter copied to clipboard

关于滤镜组

Open wnpllrzodiac opened this issue 10 years ago • 2 comments

试了一下filtergroup 高斯模糊,无法运行。研究了以后发现第二个滤镜必须使用image类型的,因为纹理类型不同。但是摄像头预览画面变的旋转,不完整了。一直没有找到问题原因。希望能协助解决,谢谢!

wnpllrzodiac avatar Jan 08 '16 11:01 wnpllrzodiac

抱歉,高斯模糊滤镜只是仿造GpuImage写的,视频上无法运行,GL_TEXTURE_EXTERNAL_OES 的FBO多次处理我不会,怎么调试都没走通…… 如果能走通了话,FilterGroup就可以使用了……

另外,相机纹理和叠加纹理旋转是存在Bug的。应该是当拿到相机纹理矩阵(texMatrix)后,先旋转处理好,mvpMatrix则使用默认值,这样其他叠加纹理才是没有旋转过的。

ongakuer avatar Jan 08 '16 11:01 ongakuer

我现在的情况是 已经可以运行2 filter的情况。

CameraFilterGaussianBlur.java 修改为

addFilter(new CameraFilterGaussianSingleBlur(context, blur, false)); addFilter(new ImageFilterGaussianSingleBlur(context, blur, true));

即可。 这个也是琢磨了许久,想到的。 如果出来的画面旋转+被放大裁切了。 原因我想应该是 两个纹理大小不同导致。 camera preview的size为 640x480 而我测试手机的屏幕分辨率是 1280x720 导致几次纹理渲染时,位置发生了错位。 你的处理中用到了 FBO FRenderd等,不是很清楚其原理。

还有个问题。我发现Surfacechanged 时设置glViewPort(0,0,w,h) 只是让显示全屏。如果设置为w/2 h/2. 只是显示的位置变化了。还是完整的画面。andorid的ogles默认的vertex 坐标就是归一化为 (-1,1)对应为视口的全屏范围?没有看到 设置 平截头 或者正交投影的 地方。

你有qq方便联系吗?周围是在找不到交流opengles这块的人。 我的qq 364953305

wnpllrzodiac avatar Jan 08 '16 13:01 wnpllrzodiac