Articles of opengl es

如何在android中实现Drag Distortion Imagefilter?

我正在研究自定义图像filter项目。 我遇到了一个具有挑战性的任务,我应该应用扭曲filter,这可以在Funny face effect app中看到。 我想开发Funny Face Effects中提供的前3个滤镜。 所以为了实现这样的效果,我开始使用GPUImageView GPUImage ,在这里,它使用搜索条来扭曲来自中心的图像。 我已经实现了Bulge失真。 但有什么方法可以实现拖动filter,我可以通过拖动手势扭曲我的图像? 我们尝试搜索除GPUImage之外的任何其他第三方类。 但我们找不到有用的东西。 我们的查询如下: – 1)是否可以使用拖动手势应用拖动filter? (任何代码段或引用都很明显) 2)除GPU之外的任何其他第三方类可以帮助我们获得上述结果。 提前致谢!

Android游戏,帆布还是opengl?

我要写一个Android游戏,我必须在canvas或opengl之间进行选择。 我读过canvas没有很好的帧率,但有什么好处? 想象一下,你要写一个愤怒的小鸟游戏,canvas帧速度是否足够?

Android:GLES20:称为未实现的OpenGL ES API

我在尝试使用developer.android.com提供的GLES20示例时遇到“调用未实现的OpenGL ES API”错误。 我修改了样本。 原因是因为我在GLSurfaceView.BaseConfigChooser.chooseconfig中得到了IllegalArgumentException,所以我替换了mGLSurfaceView.setEGLContextClientVersion( 2 ); 新的OnCreateMethod: protected void onCreate( Bundle savedInstanceState ) { super.onCreate( savedInstanceState ); mGLSurfaceView = new GLSurfaceView( this ); mGLSurfaceView.setEGLConfigChooser( new EGLConfigChooser() { @Override public EGLConfig chooseConfig( EGL10 egl, EGLDisplay display ) { EGLConfig[] configs = new EGLConfig[1]; int[] num_config = new int[1]; boolean check = false; int[] configSpec = […]

Android上的OpenGLES – IllegalStateException:已经为此实例调用了setRenderer

我是Android上的OpenGL-ES的新手,请原谅我的愚蠢问题。 我正在为Android v2.2 – SDK#8构建这个程序。 我的平板电脑最多支持Android v3.1 我正在尝试通过developer.android.com上的教程为Android设置OpenGL-ES环境。 程序编译得很好,它应该在设备上显示一个简单的蓝屏。 但是,当我尝试在我的Android设备上运行它时,我得到了“IllegalStateException:已经为此实例调用了setRenderer”错误。 以下是我的代码: public class TA_SpaceActivity extends Activity { private MyGLSurfaceView myGLView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); myGLView = new MyGLSurfaceView(this); //NOTE: this is where the app crashed setContentView(myGLView); } } class MyGLSurfaceView extends GLSurfaceView { public MyGLSurfaceView(Context context) { super(context); setRenderer (new MyRenderer()); setEGLContextClientVersion(2); […]

Android Emulator是否支持OpenGL ES 2.0?

这篇文章http://cobworks.ca/2010/04/19/why-android-market-has-no-games/表明它没有,但我希望自4月以来可能会发生一些变化。

如何学习和使用OpenGL ES 2.0? 我只是不明白 – 严肃的Qn。

这是一个严肃的问题,我在理解它与完全没有之间“陷入困境”。 我对阅读不同资源的时间非常困惑,并希望有人指出我正确的方向。 我正在使用Android平台,直到现在我已经使用了Canvas ,一些OpenGL ES 1.0 ,但主要是通过引擎或已经构建的代码来尝试和理解它。 我的目标是实际了解OpenGL ES 2.0 。 我不想直接去复杂的东西,从简单的东西开始,但我只是不知道怎么做。 我可以得到一个正方形,我可以设置相机和矩阵; 告诉你实话我真的不了解整个矩阵系统及其工作原理,如果我是对的,它是一个固定function管道 ,你不需要在OpenGL ES 1.0进行更改,但现在它是可编程的 –你必须自己设置的管道 。 我不知道如何使用坐标系,我知道原点是设备的中心,每次转向边缘都是1,所以从中心到左边它将是负1。 然而,有一些方法可以将它变成一个不同的坐标系,也许只是使用比例或乘法矩阵来将协调设置为我从Canvas习惯的东西。 基本上我需要帮助的是如何从这里进步? 我觉得好像到了某个地方,但我仍然无处可去。 我真的需要一些关于如何正确使用OpenGL ES 2.0 ,现在我正在计划的是一个简单的2D游戏,也许是侧滚动,所以我将不得不弄乱相机矩阵。 感谢您的时间,我将非常感谢您的帮助。 *我对变换矩阵不太感兴趣,因为我不认为2D游戏真的会使用它,也许只有当我镜像角色的精灵所以它看起来好像是在朝着不同的方向行走时,我很确定通过改变协调和宽度可以使这变得简单。

防止onPause破坏OpenGL Context

我正在编写一个使用OpenGL ES(GLSurfaceView和GLSurfaceView.Renderer)的Android应用程序。 问题是当用户切换应用程序然后切换回我的应用程序时,GLSurfaceView会破坏并重新创建GL上下文。 这是根据文档应该做的,但有没有办法防止这种情况发生? 将纹理加载到上下文中需要很长时间,并且我希望防止必须重新加载它们。

Android openGL ES glDrawArrays还是glDrawElements?

什么是最好的方法? 如果我使用drawarrays,或者我使用drawelements? 有什么不同的?

从GLSurfaceView转换为TextureView(通过GLTextureView)

当Android 4.0(冰淇淋三明治)发布时,新的视图被引入到sdk中。 此视图是TextureView。 在文档中,它表示TextureView可用于显示OpenGL场景的内容。 当您查找如何执行此操作时,您将find一个示例链接。 https://groups.google.com/forum/?fromgroups=#!topic/android-developers/U5RXFGpAHPE 但是我想用TextureView替换GLSurfaceView,并保持我的其余代码相同,并且只是接受TextureView的优点。

CropView的裁剪相机预览

我有一个固定宽度和高度的TextureView,我想在其中显示相机预览。 我需要裁剪相机预览,以便它看起来不会在我的TextureView中拉伸。 怎么做种植? 如果我需要使用OpenGL,如何将Surface Texture绑定到OpenGL以及如何使用OpenGL进行裁剪? public class MyActivity extends Activity implements TextureView.SurfaceTextureListener { private Camera mCamera; private TextureView mTextureView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_options); mTextureView = (TextureView) findViewById(R.id.camera_preview); mTextureView.setSurfaceTextureListener(this); } @Override public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) { mCamera = Camera.open(); try { mCamera.setPreviewTexture(surface); mCamera.startPreview(); } catch (IOException ioe) { […]