关于jpct-ae结合相机预览,半透明出错
来源:互联网 发布:apache工作模式 编辑:程序博客网 时间:2024/06/07 00:18
布局为
<FrameLayout>
<SurfaceView />
<GLSurfaceView />
</FrameLayout>
其中,SurfaceView是用于照相预览的,GLSurfaceView用于jpct-ae的3D绘图。
为了让相机预览显示出来,我将GLSurfaceView的背景设置为透明
mGLView.setZOrderOnTop(true);
mGLView.setEGLConfigChooser(8, 8, 8, 8, 16, 0);
mGLView.getHolder().setFormat(PixelFormat.TRANSLUCENT);
在完成上面设置后,相机预览在GLSurfaceView后正常显示出来。
然后用jpct-ae进行绘图时,发现了这么一个问题:
在GLSurfaceView中先画一个不透明的图,然后再画一个半透明的图,
混色出来的结果中缺会出现摄像头的图像,
也就是,不透明的图没有把相机预览的图像挡住。
百思不得其解,是否是引擎本身的算法没有考虑到这个问题?
现象如图:
这个问题初看到让我觉得莫名其妙,混色的结果完全就不符合常理,于是乎,网上各种查,jpct官网(http://www.jpct.net/jpct-ae/)论坛各种找,都没能找到问题所在,于是乎,反编译jpct-ae.jar引擎库,直接查看源码。
目前遇到的有三个类有相似现象,解决方法分别如下:
1.
Object3D.setTransparencyMode(TRANSPARENCY_MODE_ADD);
2.
Overlay.setTransparencyMode(TRANSPARENCY_MODE_ADD);
3.
FrameBuff.blit(tex, 0, 0, 0, 0, 128, 128, 128, 128, 10,true,null);// additive 设为true
查看GLRenderer 源码:
这是几个方法改变的值,最后的应用
private void setBlendingMode(int mode)
{
switch (mode)
{
case 0: // '\0'
gl10.glEnable(3042);
gl10.glBlendFunc(770, 771);
// GL10.GL_ONE_MINUS_SRC_ALPHA = 771
// GL10.GL_SRC_ALPHA = 770
break;
case 1: // '\001'
gl10.glEnable(3042);
gl10.glBlendFunc(770, 1);// GL10.GL_ONE = 1
break;
}
}
总结,
事实几个方法归结起来都是同一原理,修改对象在渲染时使用的ALPHA模式,这是属于opengl的知识范畴,
花了半天时间,彻底研究了下这个问题,发现还是opengl得基础知识不够牢固,老老实实打好opengl的基础知识才能在遇到问题时,最快最准确的察觉出问题的原理所在,OK这个问题告一段落····- 关于jpct-ae结合相机预览,半透明出错
- (Android)Vuforia Native版本与jpct-ae结合
- jpct-ae坐标系
- JPCT-AE资料相关
- jpct-ae引擎的坐标系
- jpct-ae Object3d rotateMesh() 和 translateMesh()
- jpct-ae 函数 setSortOffset(float offset)
- jpct-ae 选中3d对象代码
- 关于自定义相机预览问题的解决
- 关于自定义相机预览界面拉伸问题
- Android 开源3D游戏引擎调研(jPCT-AE)
- Android 3D jpct-ae 一个场景小例子
- JPCT-AE画的一个桌子(Android 3D)
- JPCT-AE for Android 3D (三)----------拾取
- jpct-ae引擎没有考虑到的地方, 背景透明时
- AE中如何预览音乐
- 自定义相机预览界面
- Android相机预览方向
- [Ubuntu]软件包管理工具APT和DPKG命令
- showModalDialog 禁止表单提交后打开新标签页
- 我就操蛋了---------我是程序员没读过这么多书所以薪资很低
- Myeclipse编辑文件保存时报background indexer crash recovery错误及解决方式
- nginx+fastcgi文件下载不全的问题
- 关于jpct-ae结合相机预览,半透明出错
- 关于Qt中自定义槽和信号的简单示例
- C转义字符表
- 双链表的插删改查
- Hive限制
- codec 增加lib库的参考
- 谈谈从开始工作到现在的一些经历
- wav文件格式分析详解
- UA信息