Skip to content
This repository has been archived by the owner on May 24, 2018. It is now read-only.

关于滤镜组 #2

Open
wnpllrzodiac opened this issue Jan 8, 2016 · 2 comments
Open

关于滤镜组 #2

wnpllrzodiac opened this issue Jan 8, 2016 · 2 comments

Comments

@wnpllrzodiac
Copy link

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

@ongakuer
Copy link
Owner

ongakuer commented Jan 8, 2016

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

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

@wnpllrzodiac
Copy link
Author

我现在的情况是 已经可以运行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

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants