草庐IT

android - 如何在没有设备的情况下在 Nexus 4 上调试 OPENGL ES 2.0 错误?

我有一个带有一堆照片滤镜的Android应用程序。过滤器是用OpenGLES2.0实现的,所以当我想保存最终图像时,我会调用glReadPixels。它适用于我测试过的每台设备,但它似乎不适用于Nexus4。用户报告说他们可以应用过滤器,但是当他们保存最终图像时,他们无法在设备上找到它。我想知道是否有任何方法可以让我模拟nexus4并在模拟器上测试我的应用程序?我已经在模拟器上进行了测试,它运行良好,如果有人对Nexus4有类似的问题,那将是一件好事。我的glReadPixels调用。GLES20.glReadPixels(0,0,saveWidth,saveHeight,GLES20

android - OpenGL ES 2 不适用于 Android API23

在我的应用程序中,我正在做一些图像像素操作。我的代码基于THIS示例。我所做的唯一更改是将FRAGMENT_SHADER更改为灰度,它看起来像这样:privatestaticfinalStringFRAGMENT_SHADER="#extensionGL_OES_EGL_image_external:require\n"+"precisionmediumpfloat;\n"+//highpheredoesn'tseemtomatter"varyingvec2vTextureCoord;\n"+"uniformsamplerExternalOESsTexture;\n"+"voidmai

android - Android 2D 游戏的 2D API 或 OpenGL ES?

我计划为没有专用GPU的Android设备(例如HTCWildfire)开发2D游戏。我记得在PC上,由于速度和功能的原因,对于2D图形通常选择OpenGL而不是SDL之类的东西。在Android上,有两个图形API:一个“普通”2DAPI(它有名字吗?)OpenGLES2.0对于一款无需专用GPU即可在Android设备上运行的2D游戏,我应该选择哪一款? 最佳答案 这取决于您的经验和游戏范围,两者各有利弊。我会观看ChrisPruettGoogleIO讲座,当我第一次开始在Android上进行游戏开发时,他们帮了我很多。就我个人

android - Nexus S 上的 OpenGL ES 黑色纹理

可在NexusOne上运行的OpenGL代码在NexusS上无法正常运行。纹理似乎没有渲染,我只剩下黑色应该是纹理的地方。有人有什么想法吗? 最佳答案 acceptedanswergivenhere比我更深入地解决了这个问题,但是虽然这个黑屏问题确实是由于NexusS(和其他一些设备)对二次幂纹理很严格,这并不意味着纹理需要具有Po2的维度。在纹理加载代码中,可能有如下几行:GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D,GLES20.GL_TEXTURE_MIN_FILTER,GLES20.

Android OpenGL ES 2.0 文本渲染

网络上似乎明显缺乏对如何在OpenGLES2.0中显示文本的支持。JVitela的回答:DrawtextinOpenGLES说使用Canvas,并在其上绘制文本以生成位图,然后使用GLUtils渲染文本位图,但答案仅显示直接绘制文本的部分,而不显示围绕它的其他内容。我也一直在尝试在http://www.learnopengles.com上课,在本例中是处理基本纹理的第4课。JVitela的方法是如何传递给顶点或fragment着色器的?关于背景的部分是否必要,或者将背景留在外面只会导致GLSurface其余部分的文本?他使用的textures变量到底是什么?我认为这是一个纹理数据句柄(

android - 如何提高 OpenGL ES 中乒乓渲染(模糊)的性能

我正在尝试在我的Android设备上使用OpenGLES进行高斯模糊。我使用中提到的方法http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/我的应用程序中有两个帧缓冲区(A和B)。一维模糊,把A画到B,另一维模糊,把B画到A。当只有一个图像模糊时,它可以catch50fps。但是如果更多的图像被模糊,甚至非常小,FPS会下降到4~5。使用这种方法很糟糕。我的问题是:是否是一帧内多次切换两个FBO导致的性能问题?有没有更好的方法在Android设备上进行乒乓渲染。

android - 将 OpenGL ES 2.0 渲染纹理转换为位图并返回

我想用RenderScript模糊渲染的纹理,为此我需要将它转换为位图格式并使用它我需要将它转换回OpenGL纹理。纹理渲染工作正常。问题一定出在这里,但我不明白为什么它不起作用。我遇到了黑屏publicvoidrenderToTexture(){GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER,fb[0]);GLES20.glClearColor(1.0f,1.0f,1.0f,1.0f);GLES20.glClear(GLES20.GL_DEPTH_BUFFER_BIT|GLES20.GL_COLOR_BUFFER_BIT);//speci

android - 如何在 OpenGL 图像查看器中跟踪 'highlights'

我正在尝试找出一种方法来为我的OpenGL图像查看器实现“突出显示”功能。我的想法是,我希望用户能够点击图像来突出显示一个区域,目前为止进展顺利。我面临的问题是用户第二次点击时。我想在放置它们的图像上保留两个高光渲染。在第二次点击到达的那一刻,第一个突出显示消失了。这是我当前的fragment着色器:precisionmediumpfloat;uniformvec4vColor;varyingvec2v_TexCoordinate;uniformsampler2Du_Image;uniformfloatu_touchX;uniformfloatu_touchY;voidmain(){f

android - 在 Android Canvas 或 OpenGL 上更快地绘制位图

我目前有一个使用AndroidCanvas编写的游戏。它是完全2D的,我在Canvas上将位图绘制为Sprite,技术上可行,但我需要添加一些功能,需要在屏幕上绘制更多位图,并且会有更多移动.应用程序需要更多功能。从这种在Canvas上绘制位图的方法到使用OpenGL以便我可以更快地绘制它们的最佳方法是什么? 最佳答案 有几个平台正在制作2dopengl游戏:http://www.rokonandroid.com/http://www.andengine.org/不幸的是,它们都没有像iPhone同类产品(cocos2d-iphon

java - 为什么像素颜色在 Android 上的 OpenGL ES 2.0 中不正确?

(编辑:我尝试了一个示例,它只绘制了一个三角形,没有任何纹理或着色器,并且在我的设备上只有OpenGL-ES1.1,并且可以看到相同的伪影。我在模拟器中尝试了相同的示例,那里没有伪影完全没有。这可能是Tegra2问题,还是我需要设置特定状态或模拟器中不需要的东西?)我正在屏幕上渲染一个像素正确的正方形,但是当我截屏并查看像素时,其中一些像素会稍微偏离,例如抗锯齿或过滤或类似的东西。您只有在放大它们时才能看到它,但这不是重点。我想在像素着色器中做一些数学运算,如果像素稍微偏离,那对我来说就不好了。我需要它们,就像我放入它们的位图中一样。这是问题的放大屏幕截图。在白线周围,暗值比应有的值稍