我正在尝试使用opengl为android开发一个2D游戏。我知道如何在屏幕上打印图像并制作动画。但是在我的游戏中,我有一张map,并且想要放大和缩小并滚动map。但我想不出最好的方法。谁能帮帮我? 最佳答案 我没有任何api示例,但我在大学时做过游戏设计,所以我会给出我的两个位。您使用的方法取决于您的map样式、大小、功能和格式。例如,如果您正在寻找非常静态且不变的map,请使用简单的图片图像。您可以将API框架用于图片View,使您能够像在图库中一样放大和缩小并在缩放图像上滚动,或者在这种情况下,缩放map上的位置。或者,如果您
我真的在这里挣扎,它阻碍了我。处理OpenGL和Activity的正确方法是什么-启动子Activity或返回主屏幕。让它恢复到原来的位置。我让它处于半工作状态,纹理/VBO在需要时在onResume()重新加载。但有时,当启动子Activity并返回时,或转到主屏幕并返回时,onCreate会再次被触发。这把整个事情搞砸了,最后我看到了黑屏。我确定我做错了整件事。有人可以解释应该如何处理这样的Activity吗? 最佳答案 您使用的是什么平台?我问的原因是,在Eclair之前,整个区域都充满了错误,导致暂停/恢复OpenGL基本上
openGL将纹理存储多长时间?当您离开Activity时,纹理内存是否会被回收?例如,如果我有以下代码:mGL.glGenTextures(1,mTextures,0);mGL.glBindTexture(GL10.GL_TEXTURE_2D,mTextures[0]);//Aboundtextureis//anactivetexture//mGL.glTexImage2D(GL10.GL_TEXTURE_2D,0,GL10.GL_RGBA,bitmap.getWidth(),bitmap.getHeight(),0,GL10.GL_RGBA,GL10.GL_FLOAT,textur
我正在开发一个Android应用程序类型的手指绘画。我正在使用OpenGLES2.0。基本上我有一个图像,其中每个触摸屏都应该对应一个要应用的圆形alpha,它显示在下方的其他图像。我尝试了不同的技术,但速度相当慢,因为它的功能类似于使用有机glTexSubImage2D来减慢渲染阶段。我试图了解FBO的使用,因为它们允许离屏渲染。谁能更好地解释离屏渲染的含义以及可以加快我的方法的哪些优势?我想离屏意味着你可以改变我创建的帧缓冲区,不影响onDrawFrame?在另一个线程中? 最佳答案 除了能够使用OpenGL渲染到屏幕上的窗口之
我有一个带有一堆照片滤镜的Android应用程序。过滤器是用OpenGLES2.0实现的,所以当我想保存最终图像时,我会调用glReadPixels。它适用于我测试过的每台设备,但它似乎不适用于Nexus4。用户报告说他们可以应用过滤器,但是当他们保存最终图像时,他们无法在设备上找到它。我想知道是否有任何方法可以让我模拟nexus4并在模拟器上测试我的应用程序?我已经在模拟器上进行了测试,它运行良好,如果有人对Nexus4有类似的问题,那将是一件好事。我的glReadPixels调用。GLES20.glReadPixels(0,0,saveWidth,saveHeight,GLES20
在我的应用程序中,我正在做一些图像像素操作。我的代码基于THIS示例。我所做的唯一更改是将FRAGMENT_SHADER更改为灰度,它看起来像这样:privatestaticfinalStringFRAGMENT_SHADER="#extensionGL_OES_EGL_image_external:require\n"+"precisionmediumpfloat;\n"+//highpheredoesn'tseemtomatter"varyingvec2vTextureCoord;\n"+"uniformsamplerExternalOESsTexture;\n"+"voidmai
我计划为没有专用GPU的Android设备(例如HTCWildfire)开发2D游戏。我记得在PC上,由于速度和功能的原因,对于2D图形通常选择OpenGL而不是SDL之类的东西。在Android上,有两个图形API:一个“普通”2DAPI(它有名字吗?)OpenGLES2.0对于一款无需专用GPU即可在Android设备上运行的2D游戏,我应该选择哪一款? 最佳答案 这取决于您的经验和游戏范围,两者各有利弊。我会观看ChrisPruettGoogleIO讲座,当我第一次开始在Android上进行游戏开发时,他们帮了我很多。就我个人
可在NexusOne上运行的OpenGL代码在NexusS上无法正常运行。纹理似乎没有渲染,我只剩下黑色应该是纹理的地方。有人有什么想法吗? 最佳答案 acceptedanswergivenhere比我更深入地解决了这个问题,但是虽然这个黑屏问题确实是由于NexusS(和其他一些设备)对二次幂纹理很严格,这并不意味着纹理需要具有Po2的维度。在纹理加载代码中,可能有如下几行:GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D,GLES20.GL_TEXTURE_MIN_FILTER,GLES20.
网络上似乎明显缺乏对如何在OpenGLES2.0中显示文本的支持。JVitela的回答:DrawtextinOpenGLES说使用Canvas,并在其上绘制文本以生成位图,然后使用GLUtils渲染文本位图,但答案仅显示直接绘制文本的部分,而不显示围绕它的其他内容。我也一直在尝试在http://www.learnopengles.com上课,在本例中是处理基本纹理的第4课。JVitela的方法是如何传递给顶点或fragment着色器的?关于背景的部分是否必要,或者将背景留在外面只会导致GLSurface其余部分的文本?他使用的textures变量到底是什么?我认为这是一个纹理数据句柄(
我正在尝试在我的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设备上进行乒乓渲染。